2016-05-04 2 views
0

特定のUSBに関する情報はどのように入手できますか?私はこれでUSBへのハンドルを取得することができますなど、シリアル番号、製造番号、製品番号、など 情報特定のUSBデバイスのプログラムシリアル番号などの詳細情報を取得するにはどうすればよいですか?

CreateFile(L"\\\\.\\E:", GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); 

をFUNC。しかし、今から私はかなりこだわっている、は、をHidD_GetHidGuidリターンハードディスクの唯一の詳細を、そしてGetRawInputDeviceListGetRawInputDeviceInfo私は(機能のCreateFileとの例のように、名前で)USBに関する情報を取得することはできませ

私は次のコードを試してみてください。私は常にシリアル番号0を取得

DeviceIoControl(HandelUsb, IOCTL_DISK_GET_DRIVE_GEOMETRY, NULL, 0, &dg, sizeof(DISK_GEOMETRY),&dwReturned, NULL); 
MEDIA_SERIAL_NUMBER_DATA msnd = { 0 }; 
DeviceIoControl(HandelUsb, IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER, NULL, 0, &msnd,sizeof(MEDIA_SERIAL_NUMBER_DATA), &dwReturned, NULL); 

を... (私は別のUSBデバイス上で試してみました)

+3

アクセスしているデバイスは、USBデバイスではなくディスクボリュームです。ボリュームがUSBドライブに存在することは無関係です。あなたが適切なUSBデバイスを開いていれば、あなたが求める情報を得るでしょう。 'E:'ボリュームが存在するディスクを見つけ、そのディスクに関する情報を取得し、そこからディスクが入っているUSBデバイスに関する情報を取得する必要があります。 –

答えて

0

あなたはSetupDi機能を使用することができます。接続されたすべてのデバイスを返すSetupDiGetClassDevs関数を見てください。 USBデバイスの場合、「USB」列挙子を使用します。

関連する問題