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