2,640
社区成员
发帖
与我相关
我的任务
分享
int main()
{
_GUID InterfaceClassGuid = {0xA5DCBF10L, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED};
HDEVINFO hdevClassInfo;
hdevClassInfo = SetupDiGetClassDevs(&InterfaceClassGuid, NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
if (hdevClassInfo == INVALID_HANDLE_VALUE)
{
cout<<"SetupDiGetClassDevs 错误"<<endl;
}
DWORD nMemberIndex;
for(nMemberIndex = 0; true; nMemberIndex++)
{
SP_DEVICE_INTERFACE_DATA DeviceInterfaceData;
DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
BOOL nStatus = SetupDiEnumDeviceInterfaces(hdevClassInfo, NULL, &InterfaceClassGuid, nMemberIndex, &DeviceInterfaceData);
if (!nStatus)
{
cout<<"枚举完成 "<<nMemberIndex<<endl;
break;
}
DWORD RequiredSize;
nStatus = SetupDiGetDeviceInterfaceDetail(hdevClassInfo, &DeviceInterfaceData, NULL, 0, &RequiredSize, NULL);
PSP_DEVICE_INTERFACE_DETAIL_DATA pBuffer;
pBuffer = (PSP_DEVICE_INTERFACE_DETAIL_DATA)malloc(RequiredSize);
pBuffer->cbSize = sizeof(*pBuffer);
SP_DEVINFO_DATA DeviceInfoData;
nStatus = SetupDiGetDeviceInterfaceDetail(hdevClassInfo, &DeviceInterfaceData, pBuffer, RequiredSize, &RequiredSize, &DeviceInfoData);
if(!nStatus)
{
cout<<pBuffer->DevicePath<<endl;//没有被赋值,一堆乱字
cout<<"错误1 "<<GetLastError()<<endl;//错误代码:1784
break;
}
}
SetupDiDestroyDeviceInfoList(hdevClassInfo);
return 0;
}