GetLastError () il codice di errore 1784

Y

yawijaya

Guest
Io sono lo sviluppo di una applicazione Windows di comunicare con un USB HID.Ho la lavorazione del firmware del dispositivo, e le finestre anche riconoscerlo senza problemi.Ora sono inciampato su come il software sarà in grado di trovare il dispositivo corretto per comunicare con.Ho letto diversi codici online e quasi tutti fanno riferimento al metodo stesso di trovare il dispositivo corretto.Tuttavia, sembra che ci sia una parte il codice che mi sta dando dei problemi, che è la chiamata della funzione SetupDiGetDeviceInterfaceDetail.Ecco il pezzo di codice:

HidD_GetHidGuid (& HidGuid);

hDevInfo = SetupDiGetClassDevs
(& HidGuid,
NULL,
NULL,
DIGCF_PRESENT | DIGCF_INTERFACEDEVICE);devInfoData.cbSize = sizeof (devInfoData);
LastDevice = FALSE;

Risultato = SetupDiEnumDeviceInterfaces
(hDevInfo,
0,
& HidGuid,
MemberIndex,
& devInfoData);

if (result! = 0)
(
Risultato = SetupDiGetDeviceInterfaceDetail
(hDevInfo,
& devInfoData,
NULL,
0,
& Lunghezza,
NULL);detailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA) malloc (Lunghezza);detailData-> cbSize = sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA);
Memo-> Text = detailData-> cbSize;Risultato = SetupDiGetDeviceInterfaceDetail
(hDevInfo,
& devInfoData,
detailData,
Lunghezza,
& Obbligatori,
NULL);

Risultato = GetLastError ();
Memo-> Lines-> Add (Result);
)

Il GetLastError () restituisce il codice di errore 1784, che è "il buffer fornito dall'utente non è valido per l'operazione richiesta."Questo errore è previsto?Se no, qualcuno ha un suggerimento di quello che dovrei fare? Grazie

 
Salve,

potete provare questo nella prima dichiarazione, penso che dovrebbe fare il trucco.

hDevInfo =
SetupDiGetClassDevs (& GUID_DEVCLASS_HIDCLASS,
0,
0,
DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);

 
Dopo la prima SetupDiGetDeviceInterfaceDetail, allocare un buffer per detailData come di seguito

detailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA) LocalAlloc (LMEM_FIXED, Length);

 

Welcome to EDABoard.com

Sponsor

Back
Top