2,644
社区成员




HDEVINFO hDevInfo ;
SP_DEVINFO_DATA spDevInfoData ;
SP_DRVINFO_DATA DriverInfoData;
//访问系统的硬件库
hDevInfo=SetupDiGetClassDevs(NULL,"PCI",NULL,DIGCF_ALLCLASSES|DIGCF_PRESENT);
if(hDevInfo==INVALID_HANDLE_VALUE)
{
printf("访问系统硬件出错!");
return false ;
}
//枚举硬件,获得需要的接口
spDevInfoData.cbSize=sizeof(SP_DEVINFO_DATA);
for(i=0;SetupDiEnumDeviceInfo(hDevInfo, i, &spDevInfoData);i++)
{
if(!SetupDiBuildDriverInfoList(hDevInfo,
&spDevInfoData, SPDIT_COMPATDRIVER))
{
DWORD err = GetLastError();
return false;
}
DriverInfoData.cbSize = sizeof(SP_DRVINFO_DATA);
if(!SetupDiGetSelectedDriver(hDevInfo, &spDevInfoData, &DriverInfoData))
{
if(ERROR_NO_DRIVER_SELECTED != GetLastError())
{
DWORD dw = GetLastError();
printf("%ld", dw);
return false;
}
else
{
continue;
}
}
else
{
printf("%s\n", DriverInfoData.Description);
continue;
}
}