salut, moi g un debut de code mais ca ne marche pas le createfile me retourne erreur pouvait vous m'aider merci tchao
#include <stdio.h>
#include
<stdlib.h>
#include
<objbase.h> //DWORRD, ...
#include
<setupapi.h> // you may have to manually include this library.
#include
<initguid.h> //USBIO_GUID
//#include <conio.h> // ? unnecessary for the moment
//displayPeriph libs
#include
<windows.h>
//#include <devguid.h>
#include
<regstr.h>
#pragma
comment (lib,"setupapi.lib")
#define
INITGUID
int
main()
{
GUID hidGUID = {0xa5dcbf10, 0x6530, 0x11d2, {0x90, 0x1f, 0x00, 0xc0, 0x4f, 0xb9, 0x51, 0xed}};
HDEVINFO hardwareDeviceInfoSet;
SP_DEVICE_INTERFACE_DATA deviceInterfaceData;
PSP_INTERFACE_DEVICE_DETAIL_DATA deviceDetail;
ULONG requiredSize;
HANDLE deviceHandle = INVALID_HANDLE_VALUE;
DWORD result;
//Get the HID GUID value - used as mask to get list of devices
// HidD_GetHidGuid (&hidGUID);
//Get a list of devices matching the criteria (hid interface, present)
hardwareDeviceInfoSet = SetupDiGetClassDevs (&hidGUID,
NULL,
// Define no enumerator (global)
NULL,
// Define no
(DIGCF_PRESENT |
// Only Devices present
DIGCF_DEVICEINTERFACE));
// Function class devices.
deviceInterfaceData.cbSize =
sizeof(SP_DEVICE_INTERFACE_DATA);
//Go through the list and get the interface data
result = SetupDiEnumDeviceInterfaces (hardwareDeviceInfoSet,
NULL,
//infoData,
&hidGUID,
//interfaceClassGuid,
0,
//changement
&deviceInterfaceData);
/* Failed to get a device - possibly the index is larger than the number of devices */
if (result == FALSE)
{
SetupDiDestroyDeviceInfoList (hardwareDeviceInfoSet);
// return INVALID_HANDLE_VALUE;
}
//Get the details with null values to get the required size of the buffer
SetupDiGetDeviceInterfaceDetail (hardwareDeviceInfoSet,
&deviceInterfaceData,
NULL,
//interfaceDetail,
0,
//interfaceDetailSize,
&requiredSize,
0);
//infoData))
//Allocate the buffer
deviceDetail = (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(requiredSize);
deviceDetail->cbSize =
sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);
//Fill the buffer with the device details
if (!SetupDiGetDeviceInterfaceDetail (hardwareDeviceInfoSet,
&deviceInterfaceData,
deviceDetail,
requiredSize,
&requiredSize,
NULL))
{
SetupDiDestroyDeviceInfoList (hardwareDeviceInfoSet);
free (deviceDetail);
// return INVALID_HANDLE_VALUE;
}
//Open file on the device
deviceHandle = CreateFile (deviceDetail->DevicePath,
GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
// no SECURITY_ATTRIBUTES structure
OPEN_EXISTING,
// No special create flags
0,
NULL);
// No template file
if(deviceHandle==INVALID_HANDLE_VALUE)
printf("erreur");
else
printf("ca marche");
SetupDiDestroyDeviceInfoList (hardwareDeviceInfoSet);
free (deviceDetail);