_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) |