一、重要函数: 头文件setupapi.h
1、SetupDiGetClassDevs 获取一个指定类别或全部类别的所有已安装设备的信息
2、SetupDiEnumDeviceInfo 枚举指定设备信息集合的成员,并将数据放在PSP_DEVINFO_DATA中
3、SetupDiGetDeviceRegistryProperty 获得单个设备的详细信息
4、SetupDiDestroyDeviceInfo
函数的定义及参数的含义请度娘一下。。。
二、使用举例:
1、获取所有设备
HDEVINFO hDevInfo = SetupDiGetClassDevs(NULL, 0, 0, DIGCF_ALLCLASSES | DIGCF_PRESENT);
if (hDevInfo== INVALID_HANDLE_VALUE)
return FALSE;
2、逐个枚举设备 ...
SP_DEVINFO_DATA data;
while (true)
{
memset(&data, 0, sizeof(SP_DEVINFO_DATA));
data.cbSize = sizeof(SP_DEVINFO_DATA);
if (!SetupDiEnumDeviceInfo(hDevInfoSet, nIndex++, &data))
{
break;
}
}
3、获取单个设备详情
WCHAR szBuffer[256] ;
DWORD BufferSize = 255;
memsetszBuffer, 0, sizeof(szBuffer));
SP_DEVINFO_DATA* pData;
DWORD RegDataType;
BOOL bRet = SetupDiGetDeviceRegistryProperty(m_hDevInfoSet,
pData,
SPDRP_FRIENDLYNAME,
&RegDataType,
(PBYTE)szBuffer,
BufferSize * sizeof(WCHAR),
NULL) ;
参数SPDRP_FRIENDLYNAME按需要指定,也可是 SPDRP_DEVICEDESC 等
4、SetupDiDestroyDeviceInfoList(hDevInfo);
//hDevInfo 为SetupDiGetClassDevs函数的返回值。