次の方法で共有


USB_BUS_INTERFACE_USBDI_V3 構造体 (usbbusif.h)

USB_BUS_INTERFACE_USBDI_V3構造は、USB クライアントが IRP を割り当てずにハブ ドライバーに直接呼び出せるように、USB ハブ ドライバーによって提供されます。

構文

typedef struct _USB_BUS_INTERFACE_USBDI_V3 {
  USHORT                             Size;
  USHORT                             Version;
  PVOID                              BusContext;
  PINTERFACE_REFERENCE               InterfaceReference;
  PINTERFACE_DEREFERENCE             InterfaceDereference;
  PUSB_BUSIFFN_GETUSBDI_VERSION      GetUSBDIVersion;
  PUSB_BUSIFFN_QUERY_BUS_TIME        QueryBusTime;
  PUSB_BUSIFFN_SUBMIT_ISO_OUT_URB    SubmitIsoOutUrb;
  PUSB_BUSIFFN_QUERY_BUS_INFORMATION QueryBusInformation;
  PUSB_BUSIFFN_IS_DEVICE_HIGH_SPEED  IsDeviceHighSpeed;
  PUSB_BUSIFFN_ENUM_LOG_ENTRY        EnumLogEntry;
  PUSB_BUSIFFN_QUERY_BUS_TIME_EX     QueryBusTimeEx;
  PUSB_BUSIFFN_QUERY_CONTROLLER_TYPE QueryControllerType;
} USB_BUS_INTERFACE_USBDI_V3, *PUSB_BUS_INTERFACE_USBDI_V3;

メンバー

Size

インターフェイス ポインターを保持するバッファーのサイズをバイト単位で指定します。

Version

入力時にインターフェイスのバージョンを示します。 このメンバーが受け取ることができる値は次のとおりです。

意味
USB_BUSIF_USBDI_VERSION_0 インターフェイスのバージョン 0。
USB_BUSIF_USBDI_VERSION_1 インターフェイスのバージョン 1。
USB_BUSIF_USBDI_VERSION_2 インターフェイスのバージョン 2。
USB_BUSIF_USBDI_VERSION_3 インターフェイスのバージョン 3。

BusContext

USB バスと、このインターフェイスを公開する USB バス ドライバーについて説明する情報が含まれています。 これは、呼び出し元がインターフェイス ルーチンに渡す必要がある不透明なエンティティです。

InterfaceReference

このインターフェイスへの参照の数をインクリメントするルーチンへのポインター。 このルーチンの詳細については、「 InterfaceReference」を参照してください。

InterfaceDereference

このインターフェイスへの参照の数をデクリメントするルーチンへのポインター。 このルーチンの詳細については、「 InterfaceDereference」を参照してください。

GetUSBDIVersion

USB インターフェイスのバージョン番号、インターフェイスを定義する USB 仕様のバージョン番号、およびホスト コントローラーの機能情報を返すルーチンへのポインター。 このルーチンは、ポート ドライバーでサポートされている最高の USBDI インターフェイス バージョンを返します。 このルーチンの詳細については、「 GetUSBDIVersion」を参照してください。

QueryBusTime

現在の 32 ビット USB フレーム番号を返すルーチンへのポインター。 このルーチンは、usbd.sys によって提供 されるUSBD_QueryBusTime 関数を置き換えます。 このルーチンの詳細については、「 QueryBusTime」を参照してください。

SubmitIsoOutUrb

予約済み。 使用しないでください。

QueryBusInformation

バスに関する情報を取得するルーチンへのポインター。 返される情報は、 Level メンバーの値によって異なります。 Level が 0 の場合、このルーチンはバス帯域幅情報を返します。 Level が 1 の場合、バス帯域幅情報とホスト コントローラーのシンボリック名が返されます。 このルーチンは、usbd.sys によって提供される USBD_QueryBusInformation 関数を置き換えます。 このルーチンの詳細については、「 QueryBusInformation」を参照してください。

IsDeviceHighSpeed

USB デバイスが高速で動作しているかどうかを判断するルーチンへのポインター。 USB デバイスが高速 USB 2.0 準拠デバイスで動作している場合、このルーチンは TRUE を 返します。 それ以外の場合は FALSE を 返します。 このルーチンの詳細については、「 IsDeviceHighSpeed」を参照してください。

EnumLogEntry

予約済み。 使用しないでください。

QueryBusTimeEx

このルーチンは実装されていません。

QueryControllerType

USB デバイスが接続されている USB ホスト コントローラーに関する情報を返すルーチンへのポインター。 このルーチンの詳細については、「 QueryControllerType」を参照してください。

注釈

IsDeviceHighSpeed ルーチンは、デバイスが高速操作が可能かどうかではなく、実際には高速で動作しているかどうかを示します。

この構造体のルーチンは、IRQL >= DISPATCH_LEVELで呼び出し可能である必要があります。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のオペレーティング システム。
Header usbbusif.h (Usbbusif.h を含む)

こちらもご覧ください

USB クライアント ドライバーのバス ドライバー インターフェイス ルーチン

USB 構造体