共用方式為


USBD_CreateConfigurationRequestEx函式 (usbdlib.h)

USBD_CreateConfigurationRequestEx例程會配置並格式化 URB,以選取 USB 裝置的設定。

USBD_CreateConfigurationRequestEx 取代 USBD_CreateConfigurationRequest

語法

PURB USBD_CreateConfigurationRequestEx(
  [in] PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
  [in] PUSBD_INTERFACE_LIST_ENTRY    InterfaceList
);

參數

[in] ConfigurationDescriptor

呼叫端配置的 USB_CONFIGURATION_DESCRIPTOR 結構的指標,其中包含要選取之組態的組態描述項。 一般而言,用戶端驅動程式會提交類型的 URB URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE (请参阅 _URB_CONTROL_DESCRIPTOR_REQUEST) ,以從 USB 裝置擷取設定、介面、端點、廠商和類別特定描述項的相關信息。 當客戶端驅動程式將USB_CONFIGURATION_DESCRIPTOR_TYPE指定為描述項類型時,要求會擷取 USB_CONFIGURATION_DESCRIPTOR 結構中的所有裝置資訊。 驅動程序接著會將收到的指標傳遞至 ConfigurationDescriptor 參數中USB_CONFIGURATION_DESCRIPTOR結構。

[in] InterfaceList

USBD_INTERFACE_LIST_ENTRY 結構的呼叫 端配置陣列之第一個專案的指標。 陣列的長度取決於組態描述項中的介面數目。 陣列中的元素數目必須大於組態中的介面數目。 呼叫 RtlZeroMemory 來初始化陣列。 陣列中最後一個專案的 InterfaceDescriptor 成員必須設定為 NULL

傳回值

USBD_CreateConfigurationRequestEx 配置 URB 結構、將它格式化為URB_FUNCTION_SELECT_CONFIGURATION要求 (選取組態要求) ,並傳回 URB 的指標。 然後,客戶端驅動程式可以使用傳回的 URB ,將 select-configuration 要求傳送至主機控制器驅動程式以設定設定。 當您完成使用 URB 時,必須釋出 URB

備註

如需如何建置選取組態要求和程式碼範例的資訊,請參閱 如何選取USB裝置的設定。

傳回的值是 URB 結構的指標,可用來將選取組態要求提交至主機控制器驅動程式,以設定指定的組態。

USB 驅動程式堆疊完成選取組態要求之後,您可以檢查 USBD_INTERFACE_INFORMATION 結構。 USBD_INTERFACE_INFORMATIONPipes 成員會指向USBD_PIPE_INFORMATION結構的數位。 USB 總線驅動程式會填入 USBD_PIPE_INFORMATION 結構的數位,其中包含與介面端點相關聯的管道相關信息。 用戶端驅動程式可以從 取得管道句柄 Pipes[i].PipeHandle ,並使用它們將 I/O 要求傳送至特定管道。

使用傳回的 URB 完成所有作業之後,您必須呼叫 ExFreePool 釋放 URB

您可以從非分頁或分頁集區配置組態描述元和陣列。 如果 ConfigurationDescriptorInterfaceList 所指向的記憶體是從非分頁集區配置,則此例程的呼叫端可以在 IRQL <= DISPATCH_LEVEL執行。 否則,呼叫端必須在 IRQL < DISPATCH_LEVEL執行。

規格需求

需求
目標平台 Universal
標頭 usbdlib.h (包含 Usbdlib.h)
程式庫 Usbd.lib
IRQL DISPATCH_LEVEL (请参阅备注)

另請參閱

如何選取 USB 裝置的設定

USB 設備驅動器程式設計參考

USBD_INTERFACE_INFORMATION

_URB_SELECT_CONFIGURATION