Compartir a través de


función WinUsb_Initialize (winusb.h)

La función WinUsb_Initialize crea un identificador winUSB para el dispositivo especificado por un identificador de archivo.

Sintaxis

BOOL WinUsb_Initialize(
  [in]  HANDLE                   DeviceHandle,
  [out] PWINUSB_INTERFACE_HANDLE InterfaceHandle
);

Parámetros

[in] DeviceHandle

Identificador del dispositivo que ha devuelto CreateFile . WinUSB usa E/S superpuesta, por lo que FILE_FLAG_OVERLAPPED debe especificarse en el parámetro dwFlagsAndAttributes de la llamada CreateFile para que DeviceHandle tenga las características necesarias para que WinUsb_Initialize funcionen correctamente.

[out] InterfaceHandle

Recibe un identificador opaco a la primera interfaz (predeterminada) del dispositivo. Este identificador es necesario para otras rutinas de WinUSB que realizan operaciones en la interfaz predeterminada. Para liberar el identificador, llame a la función WinUSB_Free .

Valor devuelto

WinUsb_Initialize 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 o un identificador no válido en el parámetro DeviceHandle ; FILE_FLAG_OVERLAPPED no se estableció en el identificador de archivo.
ERROR_NOT_ENOUGH_MEMORY
Indica que no hay memoria suficiente para realizar la operación.
ERROR_BAD_DEVICE
Indica que no se encontró el descriptor de interfaz predeterminado para el dispositivo.

Comentarios

Cuando se llama a WinUsb_Initialize , la configuración de directiva de la interfaz se restablece a los valores predeterminados.

La WinUsb_Initialize llamada consulta la pila USB subyacente para varios descriptores y asigna suficiente memoria para almacenar los datos del descriptor recuperados.

WinUsb_Initialize primero recupera el descriptor de dispositivo y, a continuación, obtiene el descriptor de configuración asociado. Desde el descriptor de configuración, la llamada deriva los descriptores de interfaz asociados y los almacena en una matriz. Las interfaces de la matriz se identifican mediante índices de base cero. Un valor de índice de 0 indica la primera interfaz (la interfaz predeterminada), un valor de 1 indica la segunda interfaz asociada, etc. WinUsb_Initialize analiza el descriptor de interfaz predeterminado para los descriptores de punto de conexión y almacena en caché información como las canalizaciones asociadas o los datos específicos de estado. El identificador recibido en el parámetro InterfaceHandle es un puntero al bloque de memoria asignado para la primera interfaz de la matriz.

Si una aplicación quiere usar otra interfaz en el dispositivo, debe llamar a WinUsb_GetAssociatedInterface, especificar el índice de la interfaz y recuperar un identificador al bloque de memoria asignado para la interfaz especificada.

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_Free