diff --git a/base/system/services/driver.c b/base/system/services/driver.c index 4248ac95c92..de8bfc1aa3e 100644 --- a/base/system/services/driver.c +++ b/base/system/services/driver.c @@ -306,8 +306,16 @@ ScmControlDriver(PSERVICE lpService, dwError = ScmUnloadDriver(lpService); if (dwError == ERROR_SUCCESS) { - lpService->Status.dwControlsAccepted = 0; lpService->Status.dwCurrentState = SERVICE_STOPPED; + lpService->Status.dwControlsAccepted = 0; + lpService->Status.dwWin32ExitCode = ERROR_SUCCESS; + + if (lpServiceStatus != NULL) + { + RtlCopyMemory(lpServiceStatus, + &lpService->Status, + sizeof(SERVICE_STATUS)); + } } break;