USB IOCTL によってちょっと混乱します。IOCTL_USB_GET_ROOT_HUB_NAMEです。それのターゲットデバイスとは何ですか? MSDN WDKのドキュメントは、ターゲットデバイスを明確に示していますが、私はまだWDKが提供するUSBVIEWサンプルで混乱しています。私が混乱している理由は次のとおりです:IOCTL_USB_GET_ROOT_HUB_NAMEのターゲットデバイスとは何ですか(USBドライバ固有のIOCTL IRQ)
私はWindowsでカーネルモードとUSBドライバを作成していて、Windowsドライバキットhttp://msdn.microsoft.com/en-us/library/ff558728(v=vs.85).aspxからUSBVIEWサンプルを勉強しています。 MSDNでは、USBVIEWサンプルが実行する最初の手順について説明します。
ホストコントローラとルート ハブを列挙します。ホストコントローラは、各ホスト コントローラシンボリックリンクを開くために、フォームのシンボリックリンク 名「HCDx」、0
利用のCreateFile(のX 開始)を持っています。
ツリービューのノードを作成して、各ホストコントローラを表す にします。ホストコントローラは が開かれた後
、 ホストコントローラに IOCTL_USB_GET_ROOT_HUB_NAME要求を送信するホスト コントローラ
の一部であるルート ハブのシンボリックリンク名を取得します。しかし、I
IOCTL_USB_GET_ROOT_HUB_NAM:ダブル言うMSDN http://msdn.microsoft.com/en-us/library/ff537326(v=VS.85).aspx でIOCTL_USB_GET_ROOT_HUB_NAMEの使用状況をチェックしますEは ユーザーモードI/O制御要求です。この リクエストはUSBハブFDOを対象としています。
IOCTL_USB_GET_ROOT_HUB_NAME IRPの対象は、USBハブFDOです。しかし、USBVIEWサンプルで説明されているように、我々はちょうどホストコントローラシンボリックリンクを取得しました。これはデバイスオブジェクトがホストコントローラデバイスオブジェクトであることを意味します。 IOCTL_USB_GET_ROOT_HUB_NAME IRPを送信するにはどうすればよいですか?どういうわけか、まずUSBハブFDOを調べるべきでしょうか?