Freigeben über


Eigenschaften des Steuerkanals

Der Steuerungskanal für das Gerät ist dessen USB-Steuerungsendpunkt. Eine Steuernachricht vom Host an das Gerät wird als SEND_ENCAPSULATED_COMMAND übertragen. Diese Übertragung wird in der folgenden Tabelle definiert.

BmRequestType bRequest wValue Windex wLength Daten

0x21

0x00

0x0000

bInterfaceNumber-Feld des Kommunikationsklassen-Schnittstellendeskriptors

Bytelänge des Kontrollmeldungsblocks

Kontrollmeldungsblock

Der Host fragt den USB Control-Endpunkt nicht kontinuierlich nach Eingabesteuerungsmeldungen ab. Beim Platzieren einer Steuernachricht auf dem Control-Endpunkt muss das Gerät eine Benachrichtigung über den Interrupt-IN-Endpunkt der Communication Class-Schnittstelle zurückgeben, die vom Host abgefragt wird, wenn das Gerät Steuernachrichten zurückgeben kann. Die Übertragung vom Interrupt-IN-Endpunkt des Geräts auf den Host ist eine standardmäßige USB-Interrupt-IN-Übertragung. Die einzige definierte Gerätebenachrichtigung ist die RESPONSE_AVAILABLE Benachrichtigung, die in der folgenden Tabelle definiert ist.

Offset (Bytes) Länge (Bytes) Feld Daten

0

4

benachrichtigungs-

RESPONSE_AVAILABLE (0x00000001)

4

4

Reserviert

0

Beim Empfang der RESPONSE_AVAILABLE-Benachrichtigung liest der Host die Steuernachricht vom Control-Endpunkt mithilfe einer GET_ENCAPSULATED_RESPONSE-Übertragung, die in der folgenden Tabelle definiert ist.

bmRequestType bRequest wValue Windex wLength Daten

0xA1

0x01

0x0000

bInterfaceNumber-Feld des Kommunikationsklassen-Schnittstellendeskriptors

0x0400 (dies ist die minimale Bytelänge des vom Host bereitgestellten Puffers)

Kontrollmeldungsblock

Wenn das Gerät aus irgendeinem Grund eine GET_ENCAPSULATED_RESPONSE empfängt und nicht mit gültigen Daten auf dem Control-Endpunkt reagieren kann, sollte es ein Ein-Byte-Paket zurückgeben, das auf 0x00 festgelegt ist, anstatt den Control-Endpunkt zu blockieren.