[Com0com-cvs] com0com/setup devutils.cpp,1.8,1.9
The virtual serial port driver for Windows.
Brought to you by:
vfrolov
From: Vyacheslav F. <vf...@us...> - 2007-11-27 16:35:53
|
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", |