共用方式為


_URB_SELECT_INTERFACE 結構 (usb.h)

USB 用戶端驅動程式會使用 _URB_SELECT_INTERFACE 結構來選取介面的替代設定,或變更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_INFORMATIONPipes 成員會指向USBD_PIPE_INFORMATION結構的數位。 數位會儲存與介面端點相關聯的管道相關信息。 您可以覆寫管道的特定預設設定,例如其封包大小上限。 若要改變封包大小上限,請在 中 Pipes[i].PipeFlags設定USBD_PF_CHANGE_MAX_PACKET旗標,然後在 中 Pipes[i].MaximumPacketSize指定新的值。

在總線驅動程式成功完成處理URB_FUNCTION_SELECT_INTERFACE URB 之後,它會傳回成員中每個管道的 Pipes[i].PipeHandle 句柄陣列。 用戶端驅動程式可以儲存管道句柄,以將 I/O 要求傳送至特定管道。

規格需求

需求
標頭 usb.h (包含 Usb.h)

另請參閱

設定USB裝置

URB

USB 結構

USBD_INTERFACE_INFORMATION

_URB_HEADER