private bool ScanForHardwareChange() { int devInst = 0; int status; //得到设备管理树的根结点 status = CM_Locate_DevNodeW(ref devInst, string.Empty, CM_LOCATE_DEVNODE_NORMAL); if (status != CR_SUCCESS) { WSDLogger.WriterError("CM_Locate_DevNodeW 失败"); return(false); } //刷新 status = CM_Reenumerate_DevNode(devInst, CM_REENUMERATE_ASYNCHRONOUS); //CM_REENUMERATE_ASYNCHRONOUS 异步方式可以立即响应 if (status != CR_SUCCESS) { WSDLogger.WriterError("CM_Reenumerate_DevNode 失败"); return(false); } return(true); }