GetLastError () error code 1784

Y

yawijaya

Guest
Ik ben het ontwikkelen van een Windows-applicatie om te communiceren met een USB-HID.Ik heb de firmware werken op het apparaat, en windows ook herkennen zonder probleem.Ik ben nu struikelde over hoe mijn software staat zullen zijn om het juiste apparaat te communiceren met zoeken.Ik heb gelezen verschillende codes online en vrij veel ze verwijzen allemaal naar dezelfde methode van het vinden van het juiste apparaat.Maar er lijkt een deel over de code die geeft me moeite, dat is de roeping van SetupDiGetDeviceInterfaceDetail functie.Hier is het stuk van de code:

HidD_GetHidGuid (& HidGuid);

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

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

if (Result! = 0)
(
Resultaat = SetupDiGetDeviceInterfaceDetail
(hDevInfo,
& devInfoData,
NULL
0,
& Length,
NULL);detailData = (PSP_DEVICE_INTERFACE_DETAIL_DATA) malloc (lengte);detailData-> cbSize = sizeof (SP_DEVICE_INTERFACE_DETAIL_DATA);
Memo-> Text = detailData-> cbSize;Resultaat = SetupDiGetDeviceInterfaceDetail
(hDevInfo,
& devInfoData,
detailData,
Lengte,
& Vereist,
NULL);

Resultaat = GetLastError ();
Memo-> Lijnen-> Add (Result);
)

De GetLastError () zou terugkeren error code 1784, die is "De geleverde gebruiker buffer is niet geldig voor de gevraagde operatie."Is dit fout verwacht?Zo niet, heeft iemand een suggestie van wat ik moet doen? Bedankt

 
Hoi,

U kunt dit proberen in de eerste verklaring, ik denk dat de truc moeten doen.

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

 
Na de eerste SetupDiGetDeviceInterfaceDetail, toewijzen buffer voor detailData zoals hieronder

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

 

Welcome to EDABoard.com

Sponsor

Back
Top