Maksymalny pobór prądu urządzenia jest częścią deskryptora urządzenia. Ogólnie mówiąc to jest kilka(dziesiąt) bajtów danych tworzących strukturę, za pomocą której urządzenie USB "przedstawia się" dla hosta. W skład desktyptora wchodzą pola informujące o producencie i modelu urządzenia, klasie (a więc np. czy to jest pamięć masowa, czy może urządzenie wejściowe typu klawiatura/mysz), prędkości działania i kupie innych rzeczy, wśród których jest także _maksymalne_ zapotrzebowanie na prąd. Przy czym to zapotrzebowanie wcale nie musi być prawdziwe: czytałem o klawiaturze, która podawała zapotrzebowanie jako 0mA, co było uznane przez sterownik USB windowsa CE za wartość nieprawidłową , wskutek czego sterownik odrzucał próbę jej podłączenia. Z kolei joypad ligitecha rumblepad2 (z vibration feedback, a więc dwoma silnikami na pokładzie) ma podane zapotrzebowanie na prąd jako 500mA - mimo, że wibrację można zupełnie w nim wyłączyć. A nawet jeśli dwa silniki będą pracować na raz to i tak pół ampera nie pociągną - są na to po prostu za małe. Najwyraźniej logitech postanowił wstawić maksymalną możliwą wartość poboru prądu na wszelki wypadek.
Oczywiście po podłączeniu tego pada do tosi od razu wyskakuje komunikat, że urządzenie potrzebuje więcej niż 100mA, więc nie można go użyć (mimo, że fizycznie ciągnie góra 20mA).
Przerobienie kabla tak, żeby dołączyć zasilanie z zewnątrz nie da nic, bo w deskryptorze i tak jest podane 500mA. Co więcej, nawet zastosowanie aktywnego huba USB (z zewnętrznym zasilaczem) też nic nie da, bo hub przekazuje deskryptory podłączonych do niego urządzeń bez żadnych zmian, a w nich tą nieszczęsną informację o zapotrzebowaniu na prąd (sprawdzone). Zrobienie "przedłużacza", który pozwoliłby podłączyć takie prądożerne urządzenie jest niełatwe, bo trzeba byłoby użyć dodatkowego procesora, który na czas enumeracji urządzenia (a więc tego procesu przedstawiania się zaraz po podłączeniu) przechwyciłby oryginalny deskryptor, wyłapał w nim pole informujące o poborze prądu i je zmodyfikował, pozostawiając resztę deskryptora nietkniętą, a potem już przekazywał komunikację w obie strony bez zmian. Gra nie warta świeczki - łatwiej i taniej kupić inne urządzenie, ciągnące mniej prądu. A więc nie tędy droga.
Ale szukając informacji na ten temat natknąłem się na coś ciekawego
http://www.microsoft.com/technet/archive/wce/support/usbce.mspx?mfr=true (tak, wiem że artykuł jest dość stary, ale windows CE nie zmienia się za szybko).
Cytat z powyższej strony:
For both types of devices, the USBD module reads the power requirements of the device from the descriptor information, and rejects the device if the maximum power threshold is exceeded. OEMs can set this current-draw limit through a registry entry.
(mam nadzieję, że tłumaczyć nie muszę. A w razie czego-> translate.gogle.com

)
Czyli wygląda na to, że teoretycznie istnieje możliwość zmiany parametrów prądowych portu. Problem w tym, że po przejrzeniu logów operacji na rejestrze zapisanych regloggerem po podłączeniu i odłączeniu urządzenia USB do portu tosi nie znalazłem niczego, co wyglądałoby na sprawdzenie maksymalnego dopuszczalnego poboru prądu

Może to kwestia wersji sterownika USB (chyba usbd.dll jest za to odpowiedzialny)? Ciekawe jak jest w innych urządzeniach z host USB?