我调用Setup函数可以禁用和启用一些指定的设备,例如USB、通讯端口、网卡等,枚举,禁用,解禁等功能也实现了
现在想要的是在每次枚举我所管理的设备前先判断它的当前状态,是否已被禁用了。禁用为0,否则是1
想用SetupDiGetDeviceInstallParams实现,编译也没错,
if(!SetupDiGetDeviceInstallParams(hDevInfo[j],&DeviceInfoData,(PSP_DEVINSTALL_PARAMS)&DeviceInstallParams))
m_List.SetItemText(i,3,_T("0"));
else
m_List.SetItemText(i,3,_T("1"));
但却不管设备有没有解禁,输出的都是0,请问是怎么回事
现在想要的是在每次枚举我所管理的设备前先判断它的当前状态,是否已被禁用了。禁用为0,否则是1
想用SetupDiGetDeviceInstallParams实现,编译也没错,
if(!SetupDiGetDeviceInstallParams(hDevInfo[j],&DeviceInfoData,(PSP_DEVINSTALL_PARAMS)&DeviceInstallParams))
m_List.SetItemText(i,3,_T("0"));
else
m_List.SetItemText(i,3,_T("1"));
但却不管设备有没有解禁,输出的都是0,请问是怎么回事
HDEVINFO hDevInfo[6];//句柄
SP_DEVINFO_DATA DeviceInfoData;//该结构体定义了一个设备,设备信息集
SP_DRVINSTALL_PARAMS DeviceInstallParams;
hDevInfo[3] = SetupDiGetClassDevs(
(LPGUID)&GUID_DEVCLASS_PORTS,
0,
0,
DIGCF_PRESENT);DeviceInfoData.cbSize = sizeof(SP_DEVINFO_DATA);
看看这个CM_Get_DevNode_Status
DWORD Status,Problem;
SP_DEVINFO_DATA DeviceInfoData;
if (CM_Get_DevNode_Status(&Status, &Problem,DeviceInfoData.DevInst,0) == CR_SUCCESS)
m_List.SetItemText(i,3,_T("1"));
else
m_List.SetItemText(i,3,_T("0"));编译没有错误,但却不管设备有没有禁止他都输出1大家帮帮忙啊
看看对楼主有帮助么?
IsDisableable
和
IsDisabled
我没有测试,楼主好好看看加油
大侠们帮帮忙啊
分不够可以再加