Share via


función WinUsb_GetDescriptor (winusb.h)

La función WinUsb_GetDescriptor devuelve el descriptor solicitado. Se trata de una operación sincrónica.

Sintaxis

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
);

Parámetros

[in] InterfaceHandle

Identificador opaco de una interfaz en la configuración seleccionada.

Para recuperar el descriptor de configuración o dispositivo, use el identificador devuelto por WinUsb_Initialize.

Para recuperar el descriptor de interfaz de la primera interfaz, use el identificador devuelto por WinUsb_Initialize.

Para recuperar el descriptor de punto de conexión de un punto de conexión en la primera interfaz, use el identificador devuelto por WinUsb_Initialize.

Para recuperar descriptores de todas las demás interfaces y sus puntos de conexión relacionados, use el identificador para la interfaz de destino, recuperada por WinUsb_GetAssociatedInterface.

[in] DescriptorType

Valor que especifica el tipo de descriptor que se va a devolver. Este parámetro corresponde al campo bDescriptorType de un descriptor de dispositivo estándar, cuyos valores se describen en la especificación de Bus serie universal . Algunos de estos valores se enumeran en la descripción del miembro DescriptorType de la estructura _URB_CONTROL_DESCRIPTOR_REQUEST .

[in] Index

Índice del descriptor. Para obtener una explicación del índice del descriptor, consulte la especificación universal de Bus serie (www.usb.org).

[in] LanguageID

Valor que especifica el identificador de idioma, si el descriptor solicitado es un descriptor de cadena.

[out] Buffer

Un búfer asignado por el autor de la llamada que recibe el descriptor solicitado.

[in] BufferLength

Longitud, en bytes, del búfer.

[out] LengthTransferred

Número de bytes que se copiaron en búfer.

Valor devuelto

WinUsb_GetDescriptor devuelve TRUE si la operación se realiza correctamente. De lo contrario, esta rutina devuelve FALSE y el autor de la llamada puede recuperar el error registrado llamando a GetLastError.

GetLastError puede devolver el siguiente código de error.

Código devuelto Descripción
ERROR_INVALID_HANDLE
El llamador pasó NULL en el parámetro InterfaceHandle .

Comentarios

Si el búfer de salida al que apunta el parámetro Buffer es lo suficientemente grande, WinUsb_GetDescriptor crea una copia del descriptor especificado en el búfer de salida. No se copia ningún dato si el búfer no es lo suficientemente grande como para contener los datos del descriptor. El descriptor se crea durante la llamada WinUsb_Initialize o se puede recuperar en este momento desde el dispositivo.

Requisitos

Requisito Value
Plataforma de destino Universal
Encabezado winusb.h (incluya Winusb.h)
Library Winusb.lib
Archivo DLL Winusb.dll

Consulte también

WinUSB

Funciones winUSB

WinUsb_Initialize

_URB_CONTROL_DESCRIPTOR_REQUEST