Znajdź i usuń urządzenie USB na podstawie jego VID/PID
Chcę wysłać polecenie wysunięcia do określonego urządzenia USB zidentyfikowanego przez jego VID i PID. Mogę znaleźć urządzenie za pomocą SetupDiEnumDeviceInfo () i SetupDiGetDeviceRegistryProperty () oraz pasujących numerów VID/PID w ciągu HARDWAREID, ale to wszystko, co mam.
Mam strukturę SP_DEVINFO_DATA i deskryptor HDEVINFO. Jak skojarzyć je z literą dysku lub ścieżką woluminu, aby wysłać do niego polecenie wysuwania?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
1 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Musiałem dowiedzieć się, jak znaleźć instancję urządzenia dla mojego urządzenia USB i znaleźć sposób na zmapowanie go do interfejsu urządzenia. Kluczem do tego były funkcje CM_Locate_DevNode () i CM_Get_Child (). Wreszcie mogę użyć IOCTL do odzyskania urządzenia.
Urządzenie z którym mam do czynienia to napęd CD-ROM USB, więc zakodowałem na stałe typ urządzenia na CDROM. Nie mogę uwierzyć, ile kodu potrzeba, aby wykonać to, co uważałem za całkiem proste zadanie (cytuję mojego klienta przez 2 godziny, aby napisać ten kod, zajęło mi cztery dni, aby to wszystko rozgryźć!). Oto ostatni działający kod, który, miejmy nadzieję, uratuje jednego z was przed przejściem przez to samo piekło, które właśnie zrobiłem: