Сообщение Re[2]: Удалить устройство и обновить конфигурацию оборудован от 08.10.2018 11:06
Изменено 10.10.2018 5:54 _agg
Re[2]: Удалить устройство и обновить конфигурацию оборудования
Все оказалось проще чем я думал, обновление конфигурации оборудования получилось довольно простое:
static bool RescanDevicesPlugAndPlayUpdate(){
bool ret_val(false);
HMACHINE machineHandle(NULL);
DEVINST devRoot;
CONFIGRET ret(NULL);
if ((ret = CM_Connect_Machine(NULL, &machineHandle)) == CR_SUCCESS) {
do{
if ((ret = CM_Locate_DevNode_Ex(&devRoot, NULL, CM_LOCATE_DEVNODE_NORMAL, machineHandle)) == CR_SUCCESS) {
ret = CM_Reenumerate_DevNode_Ex(devRoot, 0, machineHandle);
}
else break;
} while (0);
if (ret == CR_SUCCESS)
ret_val = true;
CM_Disconnect_Machine(machineHandle);
}
return ret_val;
}
Re[2]: Удалить устройство и обновить конфигурацию оборудован
Все оказалось проще чем я думал, обновление конфигурации оборудования получилось довольно простое:
bool RescanDevicesPlugAndPlayUpdate(CString &err_msg){
bool ret_val(false);
HMACHINE machineHandle(NULL);
DEVINST devRoot;
CONFIGRET ret(NULL);
if ((ret = CM_Connect_Machine(NULL, &machineHandle)) == CR_SUCCESS) {
if ((ret = CM_Locate_DevNode_Ex(&devRoot, NULL, CM_LOCATE_DEVNODE_NORMAL, machineHandle)) == CR_SUCCESS) {
if ((ret = CM_Reenumerate_DevNode_Ex(devRoot, 0, machineHandle)) != CR_SUCCESS){
err_msg.Format(_T("CM_Reenumerate_DevNode_Ex error:0x%x"), ret);
}
}else
err_msg.Format(_T("CM_Locate_DevNode_Ex error:0x%x"), ret);
if (ret == CR_SUCCESS)
ret_val = true;
CM_Disconnect_Machine(machineHandle);
}
else err_msg.Format(_T("CM_Connect_Machine error:0x%x"),ret);
return ret_val;
}