共用方式為


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
ERROR_INVALID_HANDLE
呼叫端在 InterfaceHandle 參數中傳遞 NULL

備註

如果 Buffer 參數指向的輸出緩衝區夠大, WinUsb_GetDescriptor 在輸出緩衝區中建立指定描述元的複本。 如果緩衝區不夠大,無法保存描述項數據,則不會複製任何數據。 描述項會在 WinUsb_Initialize 呼叫期間建立,或此時可從裝置擷取描述元。

規格需求

需求
目標平台 Universal
標頭 winusb.h (包含 Winusb.h)
程式庫 Winusb.lib
Dll Winusb.dll

另請參閱

WinUSB

WinUSB 函式

WinUsb_Initialize

_URB_CONTROL_DESCRIPTOR_REQUEST