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

另请参阅

配置 USB 设备

URB

USB 结构

USBD_INTERFACE_INFORMATION

_URB_HEADER