USB_ENDPOINT_DESCRIPTOR 構造体 (usbspec.h)

USB_ENDPOINT_DESCRIPTOR構造体は、USB クライアント ドライバーによって USB 定義のエンドポイント記述子を取得するために使用されます。 この構造体のメンバーについては、「 USB ドキュメント ライブラリで使用できるユニバーサル シリアル バス 3.1 仕様」で説明されています。 セクション 9.6.6 を参照してください。

構文

typedef struct _USB_ENDPOINT_DESCRIPTOR {
  UCHAR  bLength;
  UCHAR  bDescriptorType;
  UCHAR  bEndpointAddress;
  UCHAR  bmAttributes;
  USHORT wMaxPacketSize;
  UCHAR  bInterval;
} USB_ENDPOINT_DESCRIPTOR, *PUSB_ENDPOINT_DESCRIPTOR;

メンバー

bLength

この記述子の長さをバイト単位で指定します。

bDescriptorType

記述子の種類を指定します。 USB_ENDPOINT_DESCRIPTOR_TYPEに設定する必要があります。

bEndpointAddress

USB で定義されたエンドポイント アドレスを指定します。 4 つの下位ビットは、エンドポイント番号を指定します。 上位ビットは、このエンドポイントでのデータ フローの方向を指定します。入力の場合は 1、出力の場合は 0 です。

bmAttributes

2 つの下位ビットは、エンドポイントの種類 (USB_ENDPOINT_TYPE_CONTROL、USB_ENDPOINT_TYPE_ISOCHRONOUS、USB_ENDPOINT_TYPE_BULK、またはUSB_ENDPOINT_TYPE_INTERRUPTのいずれか) を指定します。

wMaxPacketSize

このエンドポイントとの間で送信できる最大パケット サイズを指定します。

bInterval

bInterval 値には、割り込みエンドポイントと等時性エンドポイントのポーリング間隔が含まれます。 他の種類のエンドポイントの場合、この値は無視する必要があります。 この値は、ファームウェアでのデバイスの構成を反映します。 ドライバーは変更できません。

ポーリング間隔は、デバイスの速度とホスト コントローラーの種類と共に、ドライバーが割り込みまたは等時転送を開始する頻度を決定します。 bInterval の値は、一定の時間を表していません。 これは相対値であり、実際のポーリング頻度は、デバイスと USB ホスト コントローラーが低速、完全、高速のいずれで動作するかによっても異なります。

ホスト コントローラーまたはデバイスのいずれかが低速で動作する場合、割り込み転送間の期間 (ポーリング "ピリオド" とも呼ばれます) は 1 ミリ秒フレーム単位で測定され、期間は次の表に示すように bInterval の値に関連します。

bInterval の値 ポーリング期間 (1 ミリ秒フレーム) 割り込み
0 から 15 8 サポートされています。
16 から 35 16 サポートされています。
36 から 255 32 サポートされています。
> 255 255 > ポーリング間隔は、USB 仕様では禁止されています。
 

フル スピードで動作できるデバイスとホスト コントローラーの場合、期間は 1 ミリ秒フレーム単位で測定され、期間は次の表に示すように bInterval の値に関連します。

bInterval の値 ポーリング期間 (1 ミリ秒フレーム) 割り込み アイソクロナス
1 1 サポートされています。 サポートされています。
2 から 3 2 サポートされています。 サポートされています。
4 から 7 4 サポートされています。 サポートされています。
8 から 15 8 サポートされています。 サポートされています。
16 から 31 16 サポートされています。 サポートされていません。
32 から 255 32 サポートされています。 サポートされていません。
> 255 255 > ポーリング間隔は、USB 仕様では禁止されています。
 

高速で動作できるデバイスとホスト コントローラーの場合、期間はマイクロフレーム単位で測定されます。 各 1 ミリ秒フレームには 8 つのマイクロフレームがあります。 ピリオドは、次の表に示すように、式 Period = 2 ** (bInterval - 1) によって bInterval の値に関連しています。

bInterval の値 ポーリング期間 (マイクロフレーム) 割り込み アイソクロナス
1 1 サポートされています。 サポートされています。
2 2 サポートされています。 サポートされています。
3 4 サポートされています。 サポートされています。
4 8 サポートされています。 サポートされています。
5 16 サポートされています。 サポートされていません。
6 32 サポートされています。 サポートされていません。
7 から 255 32 サポートされています。 サポートされていません。
> 255 255 > ポーリング間隔は、USB 仕様では禁止されています。
 

期間とポーリング間隔の間の前のテーブルのマッピングは、Windows 2000 以降のオペレーティング システムで有効です。

要件

要件
Header usbspec.h (Usb100.h を含む)

こちらもご覧ください

USB 構造体

UsbBuildGetDescriptorRequest

_URB_CONTROL_DESCRIPTOR_REQUEST