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 以下で実行しなければならない。
© Copyright 2026 Paperzz