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 可能会返回以下错误代码。
返回代码 | 说明 |
---|---|
|
调用 方在InterfaceHandle 参数中传递 NULL。 |
注解
如果 Buffer 参数指向的输出缓冲区足够大, WinUsb_GetDescriptor 会在输出缓冲区中创建指定描述符的副本。 如果缓冲区不够大,无法保存描述符数据,则不会复制任何数据。 描述符是在 WinUsb_Initialize 调用期间创建的,或者此时可以从设备检索它。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | winusb.h (包括 Winusb.h) |
Library | Winusb.lib |
DLL | Winusb.dll |