다음을 통해 공유


_URB_SELECT_INTERFACE 구조체(usb.h)

_URB_SELECT_INTERFACE 구조는 USB 클라이언트 드라이버가 인터페이스에 대한 대체 설정을 선택하거나 USB 디바이스의 현재 구성에서 파이프의 최대 패킷 크기를 변경하는 데 사용됩니다.

구문

struct _URB_SELECT_INTERFACE {
  struct _URB_HEADER         Hdr;
  USBD_CONFIGURATION_HANDLE  ConfigurationHandle;
  USBD_INTERFACE_INFORMATION Interface;
};

멤버

Hdr

URB 헤더 정보를 지정하는 _URB_HEADER 구조체에 대한 포인터입니다. Hdr.Function 은 URB_FUNCTION_SELECT_INTERFACE, Hdr.Length 는 전체 URB의 크기여야 합니다.

ConfigurationHandle

이 인터페이스가 속한 구성에 대한 핸들을 지정합니다. 호스트 컨트롤러 드라이버는 클라이언트가 URB_FUNCTION_SELECT_CONFIGURATION 요청을 사용하여 구성을 선택할 때 이 핸들을 반환합니다.

Interface

인터페이스 및 해당 인터페이스에 대한 새 대체 설정을 지정하고 필요한 경우 해당 파이프에 대한 새 최대 패킷 크기를 지정하는 가 변 길이 USBD_INTERFACE_INFORMATION 구조체입니다. 자세한 내용은 설명 부분을 참조하세요.

설명

GET_SELECT_INTERFACE_REQUEST_SIZE 매크로를 사용하여 URB_FUNCTION_SELECT_INTERFACE URB의 크기를 확인하고 UsbBuildSelectInterfaceRequest 루틴을 사용하여 URB의 서식을 지정할 수 있습니다.

USBD_INTERFACE_INFORMATION 구조체에는 인터페이스 및 해당 대체 설정에 대한 정보가 포함됩니다. USBD_INTERFACE_INFORMATION파이프 멤버는 USBD_PIPE_INFORMATION 구조체의 배열을 가리킵니다. 배열은 인터페이스의 엔드포인트와 연결된 파이프에 대한 정보를 저장합니다. 파이프의 최대 패킷 크기와 같은 특정 기본 설정을 재정의할 수 있습니다. 최대 패킷 크기를 변경하려면 에서 USBD_PF_CHANGE_MAX_PACKET 플래그를 설정한 다음 에서 Pipes[i].PipeFlagsPipes[i].MaximumPacketSize새 값을 지정합니다.

버스 드라이버가 URB_FUNCTION_SELECT_INTERFACE URB 처리를 성공적으로 완료한 후 멤버의 각 파이프에 대한 핸들 배열을 Pipes[i].PipeHandle 반환합니다. 클라이언트 드라이버는 파이프 핸들을 저장하여 특정 파이프에 I/O 요청을 보낼 수 있습니다.

요구 사항

요구 사항
헤더 usb.h(Usb.h 포함)

추가 정보

USB 디바이스 구성

Urb

USB 구조체

USBD_INTERFACE_INFORMATION

_URB_HEADER