_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 成員指向 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) |