控制通道特性
裝置的控制通道是其 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 |
收到RESPONSE_AVAILABLE通知時,主機會使用下表所定義的GET_ENCAPSULATED_RESPONSE傳輸,從控制端點讀取控制訊息。
bmRequestType | bRequest | wValue | wIndex | wLength | 資料 |
---|---|---|---|---|---|
0xA1 |
0x01 |
0x0000 |
通訊類別介面描述元的bInterfaceNumber欄位 |
0x0400 (這是主機所張貼緩衝區的最小位元組長度) |
控制訊息塊 |
如果裝置因為某些原因收到GET_ENCAPSULATED_RESPONSE且無法回應控制端點上的有效資料,則應該傳回設定為0x00的一位元組封包,而不是停止控制端點。