_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 请求发送到特定管道。
要求
要求 | 值 |
---|---|
Header | usb.h (包括 Usb.h) |