Cuando se utiliza CreateFile para desarrollar dispositivos USB HID, no se puede obtener el identificador del dispositivo. ¿Cómo solucionar el problema?
MANEJAR connectToIthUSBHIDDevice (DWORD deviceIndex)
{
// GUID hidGUID;
HDEVINFO hardwareDeviceInfoSet;
SP_DEVICE_INTERFACE_DATA dispositivoInterfaceData;
PSP_INTERFACE_DEVICE_DETAIL_DATA dispositivoDetalle;
ULONG requeridoTamaño;
HANDLE dispositivoHandle = INVALID_HANDLE_VALUE;
Resultado DWORD;
//Obtener el valor GUID HID - usado como máscara para obtener la lista de dispositivos //Obtener GUID
HidD_GetHidGuid (amp; hidGUID);
//Obtener una lista de dispositivos que coincide con los criterios (interfaz oculta, presente)
hardwareDeviceInfoSet = SetupDiGetClassDevs (amp;hidGUID,
NULL, // No define ningún enumerador (global)
NULL, // Definir no
(DIGCF_PRESENT | // Solo dispositivos presentes
DIGCF_DEVICEINTERFACE)); // Dispositivos de clase de función.
deviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA );
//Recorre la lista y obtiene los datos de la interfaz//Enumerar dispositivos
result = SetupDiEnumDeviceInterfaces (hardwareDeviceInfoSet,
NULL, //infoData ,
&hidGUID, //interfaceClassGuid,
deviceIndex,
& deviceInterfaceData);
/* No se pudo obtener un dispositivo; posiblemente el índice sea mayor que la cantidad de dispositivos */