_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_INFORMATION的 Pipes 成員會指向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) |