2.4 USB ドライバスタックが提供する機能

84
2.4
USB ドライバスタックが提供する機能
USBD はファンクションドライバに対して以下の I/O コントロールを提供し
ている。
表 2-4 USB ドライバスタックが提供する機能
コントロール
機能
ファンクションドライバが URB(USB
Request Packet)を発行する。
IOCTL_INTERNAL_USB_RESET_PORT USB ポートをリセットする。
IOCTL_INTERNAL_USB_GET_PORT_S USB ポートが有効かどうか、デバイス
TATUS
が接続されているかどうかのステータ
スを取得する。
IOCTL_INTERNAL_USB_ENABLE_PO
USB ポートを再度有効にする。
RT
しかし、デバイスがルートハブ以外に
接続されている場合、このリクエスト
は 失 敗 す る 。 そ の 場 合 は 、
RESET_PORT の方を使用すること。
IOCTL_INTERNAL_USB_CYCLE_PORT デバイスの切断、再接続の動作をシミ
ュレートする。
IOCTL_INTERNAL_USB_GET_HUB_N
USB_ROOT_HUB_NAME 型の構造体
AME
でハブの名前の文字列を取得する。
IOCTL_INTERNAL_USB_GET_BUS_IN
USB_BUS_NOTIFICATION型の構造
FO
体でバンド幅、ホストコントローラの
名称などを取得する。
IOCTL_INTERNAL_USB_GET_CONTR
USB_HUB_NAME 構造体でホストコ
OLLER_NAME
ントローラの名称を取得する。
IOCTL_USB_DIAGNOSTIC_MODE_OFF USB デバイスの評価アプリケーション
用のデバッグモードをオフにする。
IOCTL_USB_DIAGNOSTIC_MODE_ON USB デバイスの評価アプリケーション
用のデバッグモードをオンにする。
このモードにすると接続したデバイス
のベンダ ID、プロダクト ID を全て
0xffff にすることができ、評価用のドラ
イバがロードできる。
IOCTL_INTERNAL_USB_SUBMIT_URB
上記以外にも、ドライバスタック間でのみ使用される I/O コントロールコー
ドなどが、DDK のヘッダに記述されている。これらのコントロールのうち
SUBMIT_URB 以外は PASSIVE_LEVEL 以下で実行しなければならない。