コントロール チャネルの特性

デバイスの制御チャネルは、その USB 制御エンドポイントです。 ホストからデバイスへの制御メッセージは、SEND_ENCAPSULATED_COMMAND転送として送信されます。 この転送は、次の表で定義されています。

BmRequestType bRequest wValue wIndex wLength データ​​

0x21

0x00

0x0000

通信クラス インターフェイス記述子の bInterfaceNumber フィールド

制御メッセージ・ブロックのバイト長

制御メッセージ・ブロック

ホストは、入力制御メッセージの USB 制御エンドポイントを継続的にポーリングしません。 コントロール メッセージをコントロール エンドポイントに配置すると、デバイスは通信クラス インターフェイスの割り込み IN エンドポイントで通知を返す必要があります。このエンドポイントは、デバイスが制御メッセージを返すことができるたびにホストによってポーリングされます。 デバイスの割り込み IN エンドポイントからホストへの転送は、標準の USB 割り込み IN 転送です。 定義されているデバイス通知は、次の表に示すRESPONSE_AVAILABLE通知のみです。

オフセット (バイト) 長さ (バイト) フィールド データ​​

0

4

通知

RESPONSE_AVAILABLE (0x00000001)

4

4

予約されています。

0

RESPON Standard Edition_AVAILABLE通知を受信すると、ホストは、次の表に定義されているGET_ENCAPSULATED_RESPON Standard Edition転送を使用して制御エンドポイントから制御メッセージを読み取ります。

bmRequestType bRequest wValue wIndex wLength データ​​

0xA1

0x01

0x0000

通信クラス インターフェイス記述子の bInterfaceNumber フィールド

0x0400 (これはホストによってポストされるバッファーの最小バイト長です)

制御メッセージ・ブロック

何らかの理由でデバイスがGET_ENCAPSULATED_RESPON Standard Editionを受信し、コントロール エンドポイント上の有効なデータで応答できない場合は、コントロール エンドポイントをストールするのではなく、0x00に設定された 1 バイトのパケットを返す必要があります。