Update of /cvsroot/com0com/com0com/setup
In directory sc8-pr-cvs4.sourceforge.net:/tmp/cvs-serv4427
Modified Files:
devutils.cpp
Log Message:
Added state check before enabling
Index: devutils.cpp
===================================================================
RCS file: /cvsroot/com0com/com0com/setup/devutils.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** devutils.cpp 1 Oct 2007 15:01:35 -0000 1.8
--- devutils.cpp 27 Nov 2007 16:35:49 -0000 1.9
***************
*** 20,23 ****
--- 20,26 ----
*
* $Log$
+ * Revision 1.9 2007/11/27 16:35:49 vfrolov
+ * Added state check before enabling
+ *
* Revision 1.8 2007/10/01 15:01:35 vfrolov
* Added pDevInstID parameter to InstallDevice()
***************
*** 285,288 ****
--- 288,302 ----
}
///////////////////////////////////////////////////////////////
+ static BOOL IsEnabled(PSP_DEVINFO_DATA pDevInfoData)
+ {
+ ULONG status = 0;
+ ULONG problem = 0;
+
+ if (CM_Get_DevNode_Status(&status, &problem, pDevInfoData->DevInst, 0) != CR_SUCCESS)
+ return FALSE;
+
+ return (status & DN_HAS_PROBLEM) == 0;
+ }
+ ///////////////////////////////////////////////////////////////
static int EnumDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pDevInfoData, PDevParams pDevParams)
{
***************
*** 439,442 ****
--- 453,459 ----
static int EnableDevice(HDEVINFO hDevInfo, PSP_DEVINFO_DATA pDevInfoData, PDevParams pDevParams)
{
+ if (IsEnabled(pDevInfoData))
+ return IDCONTINUE;
+
if (ChangeState(hDevInfo, pDevInfoData, DICS_ENABLE)) {
Trace("Enabled %s %s %s\n",
|