2,640
社区成员
发帖
与我相关
我的任务
分享
HidD_GetHidGuid (&hidGUID);
DeviceInfoSet = SetupDiGetClassDevs (&hidGUID, NULL, NULL, (DIGCF_PRESENT | DIGCF_DEVICEINTERFACE)); deviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
if(DeviceInfoSet == INVALID_HANDLE_VALUE)
printf("DeviceInfoSet is INVALID_HANDLE_VALUE\n");
result = SetupDiEnumDeviceInterfaces (DeviceInfoSet, NULL, &hidGUID, Index, &deviceInterfaceData);
if (result == FALSE)
SetupDiDestroyDeviceInfoList (DeviceInfoSet);
SetupDiGetDeviceInterfaceDetail (DeviceInfoSet, &deviceInterfaceData, NULL, 0, &requiredSize, 0);
deviceDetail = (PSP_INTERFACE_DEVICE_DETAIL_DATA)malloc(requiredSize);
deviceDetail->cbSize = sizeof(SP_INTERFACE_DEVICE_DETAIL_DATA);
if(deviceDetail == NULL)
printf("There is no enough memory space available for deviceDetail\n");
if (!SetupDiGetDeviceInterfaceDetail (DeviceInfoSet, &deviceInterfaceData, deviceDetail, requiredSize, &requiredSize, NULL))
{
printf("SetupDiGetDeviceInterfaceDetail failed\n");
SetupDiDestroyDeviceInfoList (DeviceInfoSet);
free (deviceDetail);
return INVALID_HANDLE_VALUE;
}
printf("path: %s\n", deviceDetail->DevicePath);
deviceHandle = CreateFile (deviceDetail->DevicePath, 0, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
//盘符号有了吧?
if(deviceHandle == INVALID_HANDLE_VALUE);
printf("CreateFile open failed (%d)\n", GetLastError());
SetupDiDestroyDeviceInfoList (DeviceInfoSet);
free (deviceDetail);