共用方式為


_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