Mam kilka napędów USB podłączonych do komputera WinXP SP3 i muszę je osobno od siebie odróżnić - Muszę znaleźć literę napędu odpowiadającą któremu urządzeniu (w tym przypadku jedno urządzenie ~ jeden wolumin). Mogę dostać swoje identyfikatory głośności i litery dysków przy użyciu mountvol
, szukając czegoś takiego:Znajdź napęd odpowiadający urządzeniu pamięci masowej USB w WinXP
C:\WINDOWS\> mountvol
\\?\Volume{bdb681b2-1ddf-11dd-bf71-806d6172696f}\
C:\
\\?\Volume{6a8784f8-7406-11dd-a8c3-001e8c829b67}\
A:\
również używając devcon lub Menedżera urządzeń, widzę identyfikatorów urządzenia:
C:\WINDOWS\> devcon resources *STOR*
STORAGE\REMOVABLEMEDIA\7&190C24E5&0&RM
Name: Generic volume
STORAGE\VOLUME\1&30A96598&0&SIGNATURED84ED84EOFFSET7E00LENGTH2543150400
Name: Generic volume
USBSTOR\DISK&VEN_KINGSTON&PROD_DATATRAVELER2.0&REV_1.00\0803240752536&0
Name: Kingston DataTraveler2.0 USB Device
Jednak ja nie znaleźli sposób, aby połączyć identyfikator urządzenia i identyfikator objętość/list, jak okna „Bezpieczne usuwanie sprzętu” robi (a więc zakładam, że to możliwe):
Generic volume - A: http://stuff.piskvor.org/safely_remove.png
Jak widać, są to te same urządzenia, które widzę w devcon i ten sam wolumen, który widzi mountvol; ale do tej pory nie znalazłem powiązania między nimi.
Znalazłem niektóre relatedquestions, ale te wydają się używać podejścia "cokolwiek znajdziesz najpierw to urządzenie USB", co nie jest bardzo przydatne w moim przypadku, ponieważ będzie kilka podobnych urządzeń (ten sam sprzedawca, często ten sam rodzaj produktu).
Edit:
@MSalters "odpowiedź wygląda obiecująco: Na XP HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
ma REG_BINARY
wartości \DosDevices\x:
(gdzie x
jest [A-Z]); komentarz jest (UTF-16) nazwę odpowiedniego urządzenia (np
\DosDevices\A:
= "\??\STORAGE#RemovableMedia#7&190c24e5&0&RM#{53f5630d-b6bf-11d0-94f2-00a0c91efb8b}\"
, co odpowiada
STORAGE\REMOVABLEMEDIA\7&190C24E5&0&RM
widać powyżej na liście urządzeń).
Zobaczymy, czy to jest do zrobienia.
Czy kiedykolwiek znalazłeś sposób, aby to zrobić? Próbuję również określić zamontowany wolumin dla urządzenia pamięci masowej USB. Dzięki. –
@Stephen Nutt: Nie, niezupełnie; było to zbyt skomplikowane - spędziłem zbyt wiele czasu na wkopywaniu go w porównaniu z ogólnym zadaniem; używanie nieudokumentowanych interfejsów API może być zbyt niechlujne. (Dodatkowo, zmiany w ogólnym zadaniu dyskutowały o potrzebie tego dla mnie) – Piskvor
@Stephen Nutt: Mimo, że porzuciłem ten wysiłek w systemie Windows, znalazłem sposób na zrobienie tego w Linuksie, jeśli jesteś zainteresowany: http://stackoverflow.com/questions/3881449/find-which-drive-correspond-to-which-usb-mass-storage-device-in-linux – Piskvor