채널 특성 제어

디바이스의 제어 채널은 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 수신하고 Control 엔드포인트에서 유효한 데이터로 응답할 수 없는 경우 컨트롤 엔드포인트를 중단하는 대신 0x00 설정된 1 바이트 패킷을 반환해야 합니다.