SWP_NOSIZE);
}
+static BOOL
+SetFailedInstall(
+ IN HDEVINFO DeviceInfoSet,
+ IN PSP_DEVINFO_DATA DevInfoData OPTIONAL,
+ IN BOOLEAN Set)
+{
+ DWORD dwType, dwSize, dwFlags = 0;
+
+ dwSize = sizeof(dwFlags);
+ if (!SetupDiGetDeviceRegistryProperty(DeviceInfoSet,
+ DevInfoData,
+ SPDRP_CONFIGFLAGS,
+ &dwType,
+ (PBYTE)&dwFlags,
+ dwSize,
+ &dwSize))
+ {
+ return FALSE;
+ }
+
+ if (Set)
+ dwFlags |= CONFIGFLAG_FAILEDINSTALL;
+ else
+ dwFlags &= ~CONFIGFLAG_FAILEDINSTALL;
+
+ if (!SetupDiSetDeviceRegistryProperty(DeviceInfoSet,
+ DevInfoData,
+ SPDRP_CONFIGFLAGS,
+ (PBYTE)&dwFlags,
+ dwSize))
+ {
+
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
static BOOL
CanDisableDevice(
IN DEVINST DevInst,
BM_SETCHECK,
(WPARAM)TRUE,
(LPARAM)0);
+
+ SetFailedInstall(DevInstData->hDevInfo,
+ &DevInstData->devInfoData,
+ TRUE);
break;
}
hThread = 0;
if (wParam == 0)
{
- /* Should we reboot? */
SP_DEVINSTALL_PARAMS installParams;
+
+ SetFailedInstall(DevInstData->hDevInfo,
+ &DevInstData->devInfoData,
+ FALSE);
+
+ /* Should we reboot? */
installParams.cbSize = sizeof(SP_DEVINSTALL_PARAMS);
if (SetupDiGetDeviceInstallParams(
DevInstData->hDevInfo,