Все оказалось проще чем я думал, обновление конфигурации оборудования получилось довольно простое:
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;
}