_URB_SELECT_CONFIGURATION 구조체(usb.h)

_URB_SELECT_CONFIGURATION 구조는 클라이언트 드라이버에서 USB 디바이스에 대한 구성을 선택하는 데 사용됩니다.

구문

struct _URB_SELECT_CONFIGURATION {
  struct _URB_HEADER            Hdr;
  PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor;
  USBD_CONFIGURATION_HANDLE     ConfigurationHandle;
  USBD_INTERFACE_INFORMATION    Interface;
};

멤버

Hdr

URB 헤더 정보를 지정하는 _URB_HEADER 구조체에 대한 포인터입니다. Hdr.Function 은 URB_FUNCTION_SELECT_CONFIGURATION, Hdr.Length 는 전체 URB의 크기여야 합니다. 드라이버는 usbdlib.h에 정의된 GET_SELECT_CONFIGURATION_REQUEST_SIZE 매크로를 사용하여 URB의 크기를 가져올 수 있습니다.

ConfigurationDescriptor

디바이스에서 사용할 구성을 식별하는 초기화된 USB 구성 설명자에 대한 포인터입니다. 이 멤버가 NULL이면 디바이스가 구성되지 않은 상태로 설정됩니다.

ConfigurationHandle

호스트 컨트롤러 드라이버에서 반환할 때 이 구성에 액세스하는 데 사용되는 핸들을 포함합니다. USB 클라이언트 드라이버는 이 멤버를 불투명으로 처리해야 합니다.

Interface

각각 선택되는 구성에서 지원하는 인터페이스를 설명하는 USBD_INTERFACE_INFORMATION 구조체의 가변 길이 배열을 지정합니다.

요청이 호스트 컨트롤러 드라이버로 전송되기 전에 드라이버는 해당 인터페이스에 대한 USBD_INTERFACE_INFORMATION 구조체의 멤버를 설정하여 이 배열에 포함된 하나 이상의 인터페이스에 대한 대체 설정을 선택할 수 있습니다.

호스트 컨트롤러 드라이버에서 반환할 때 이 멤버는 해당 인터페이스 내에서 엔드포인트의 기능 및 형식을 설명하는 데이터가 포함된 USBD_INTERFACE_INFORMATION 구조를 포함합니다.

설명

URB_FUNCTION_SELECT_CONFIGURATION URB는 _URB_SELECT_CONFIGURATION 구조체와 USBD_INTERFACE_INFORMATION 구조체의 가변 길이 배열 시퀀스로 구성되며, 구성의 각 고유 인터페이스 번호에 대한 배열의 각 요소입니다. 클라이언트 드라이버는 선택한 인터페이스의 각 엔드포인트에 대해 하나의 USBD_PIPE_INFORMATION 구조를 포함하기에 충분한 메모리를 할당해야 합니다.

드라이버는 USBD_CreateConfigurationRequestEx 서비스 루틴을 사용하여 URB를 할당할 수 있습니다.

이 구조의 일부이지만 여기에 설명되지 않은 다른 멤버는 불투명한 것으로 처리되고 시스템 사용을 위해 예약된 것으로 간주되어야 합니다.

요구 사항

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

추가 정보

Urb

USB 구조체

USBD_CreateConfigurationRequestEx

USBD_INTERFACE_INFORMATION

USBD_PIPE_INFORMATION

_URB_HEADER