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_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE的 URB(請參閱 _URB_CONTROL_DESCRIPTOR_REQUEST),以從 USB 裝置擷取組態、介面、連接點、廠商和類別特定描述元的相關信息。 當客戶端驅動程式將USB_CONFIGURATION_DESCRIPTOR_TYPE指定為描述元類型時,要求會擷取 USB_CONFIGURATION_DESCRIPTOR 結構中的所有裝置資訊。 驅動程式接著會將收到的指標傳遞至 configurationDescriptor configurationDescriptor 參數中的 USB_CONFIGURATION_DESCRIPTOR 結構。
[in] InterfaceList
呼叫端配置之結構之 USBD_INTERFACE_LIST_ENTRY 陣列之第一個專案的指標。 陣列的長度取決於組態描述元中的介面數目。 陣列中的元素數目必須大於組態中的介面數目。 呼叫 RtlZeroMemory來初始化陣列。 陣列中最後一個專案的 InterfaceDescriptor 成員必須設定為 NULL。
傳回值
USBD_CreateConfigurationRequestEx 配置 URB 結構、將它格式化為URB_FUNCTION_SELECT_CONFIGURATION要求(select-configuration request),並傳回 URB的指標。 然後,用戶端驅動程式可以使用傳回的 URB,將 select-configuration 要求傳送至主機控制器驅動程式來設定組態。 當您完成使用 URB 時,您必須釋放 URB。
言論
如需如何建置 select-configuration 要求和程式代碼範例的詳細資訊,請參閱 如何選取 USB 裝置的設定。
傳回的值是 URB 結構的指標,可用來將選取組態要求提交至主機控制器驅動程式,以設定指定的組態。
USB 驅動程式堆疊完成選取組態要求之後,您可以檢查 USBD_INTERFACE_INFORMATION 結構。
管道USBD_INTERFACE_INFORMATION 成員指向 USBD_PIPE_INFORMATION 結構的陣列。 USB 總線驅動程式會將與介面端點相關聯的管道相關信息填入 USBD_PIPE_INFORMATION 結構的陣列。 用戶端驅動程式可以從 Pipes[i].PipeHandle
取得管道句柄,並使用它們將 I/O 要求傳送至特定管道。
使用傳回 URB完成所有作業之後,您必須 呼叫 exFreePool來釋放 URB。
您可以從非分頁集區或分頁集區配置組態描述元和陣列。 如果 configurationDescriptor 所指向的記憶體是從非分頁集區配置,則此例程的呼叫端可以在 IRQL <= DISPATCH_LEVEL執行。 否則,呼叫端必須在 IRQL < DISPATCH_LEVEL 執行。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | usbdlib.h (包括 Usbdlib.h) |
連結庫 | Usbd.lib |
IRQL | DISPATCH_LEVEL (請參閱) |