WinUsb_GetDescriptor函式 (winusb.h)
WinUsb_GetDescriptor函式會傳回要求的描述元。 這是同步作業。
語法
BOOL WinUsb_GetDescriptor(
[in] WINUSB_INTERFACE_HANDLE InterfaceHandle,
[in] UCHAR DescriptorType,
[in] UCHAR Index,
[in] USHORT LanguageID,
[out] PUCHAR Buffer,
[in] ULONG BufferLength,
[out] PULONG LengthTransferred
);
參數
[in] InterfaceHandle
所選組態中介面的不透明句柄。
若要擷取裝置或組態描述元,請使用 WinUsb_Initialize傳回的句柄。
若要擷取第一個介面的介面描述元,請使用 WinUsb_Initialize傳回的句柄。
若要擷取第一個介面中端點的端點描述元,請使用 WinUsb_Initialize傳回的句柄。
若要擷取所有其他介面及其相關端點的描述元,請使用目標介面的句柄, WinUsb_GetAssociatedInterface擷取。
[in] DescriptorType
值,指定要傳回的描述元類型。 此參數對應於標準裝置描述元的 bDescriptorType 字段,其值會在 通用序列總線 規格中說明。 其中一些值列於 _URB_CONTROL_DESCRIPTOR_REQUEST 結構之 DescriptorType 成員的描述中。
[in] Index
描述項索引。 如需描述項索引的說明,請參閱 通用序列總線 規格 (www.usb.org) 。
[in] LanguageID
指定語言識別碼的 值,如果要求的描述元是字串描述元。
[out] Buffer
接收要求描述元的呼叫端配置緩衝區。
[in] BufferLength
Buffer 的長度,以位元組為單位。
[out] LengthTransferred
複製到 Buffer 的位元元組數目。
傳回值
如果作業成功,WinUsb_GetDescriptor傳回 TRUE。 否則,這個例程會傳回 FALSE,而呼叫端可以呼叫 GetLastError 來擷取記錄的錯誤。
GetLastError 可以傳回下列錯誤碼。
傳回碼 | Description |
---|---|
|
呼叫端在 InterfaceHandle 參數中傳遞 NULL。 |
備註
如果 Buffer 參數指向的輸出緩衝區夠大, WinUsb_GetDescriptor 在輸出緩衝區中建立指定描述元的複本。 如果緩衝區不夠大,無法保存描述項數據,則不會複製任何數據。 描述項會在 WinUsb_Initialize 呼叫期間建立,或此時可從裝置擷取描述元。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | winusb.h (包含 Winusb.h) |
程式庫 | Winusb.lib |
Dll | Winusb.dll |