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

另请参阅

配置 USB 设备

URB

USB 结构

USBD_INTERFACE_INFORMATION

_URB_HEADER