USBストレージデバイスミニフィルタードライバーからのSerialNumber(USBデバイス記述子から)

StackOverflow https://stackoverflow.com/questions/3110046

質問

記述された手法を使用して、インスタンスセットアップコールバック内のミニフィルターファイルシステムドライバー内からUSBストレージデバイスのシリアル番号を抽出したい ここ 唯一の違いは、私がカーネルモードでそれをすることです。
私が使う:

status = IoGetDeviceInterfaces( 
    &GUID_DEVINTERFACE_DISK, 
    NULL, 
    0, 
    &SymbolicLinkList
);

可能なインターフェイスを列挙するには(結果の結果)。

\??\SCSI#Disk&Ven_VMware_&Prod_VMware_Virtual_S&Rev_1.0#4&5fcaafc&0&000#{53f56307 -b6bf-11d0-94f2-00a0c91efb8b}
\??\USBSTOR#Disk&Ven_Kingston&Prod_DataTraveler_C10&Rev_1.00#001D92AD7568F030E3CC 0AFC&0#{53f56307-b6bf-11d0-94f2-00a0c91efb8b}
\??\USBSTOR#Disk&Ven_USB_2.0&Prod_Flash_Disk&Rev_1100#AA04012700007777&0#{53f5630 7-b6bf-11d0-94f2-00a0c91efb8b}

そして、それらのどれがioctl_storage_get_device_numberを使用して私のボリュームのインターフェイスであるかを見つけたいです。

ZWCreateFile&ZWDeviceIioControlfileを試しましたが、ZWCreateFileはStatus_Object_Name_InValidを返します。

これらのインターフェイスにIOCTLSを送信するにはどうすればよいですか?ユーザーモードではすべてが問題ありませんが、カーネルモードでは失敗します!

役に立ちましたか?

解決 2

コンピューティングをユーザーモードサービスに委任し、ポートを介して話すことにより、厄介な問題を解決しました。足が不自由ですが、本当に便利です。

他のヒント

デバイス名で ?? to dosdevices を変更する必要があります。それはあなたの問題を解決する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top