From e91f16ebb704a431f9731bb39bf9b5621b7f6ad0 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 20 Jul 2011 14:12:42 -0400 Subject: [PATCH] Windows: Add shutdown event log message Add an explicit message that the shutdown sequence is complete. This is necessary because during a Windows OS shutdown, the service is frequently killed prior to the memory mapped file is fully released. Change-Id: I1ad2471e1e1442d836d6abac09fc5cdd08edae0b Reviewed-on: http://gerrit.openafs.org/5053 Reviewed-by: Derrick Brashear Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- src/WINNT/afsd/afsd_eventlog.c | 1 + src/WINNT/afsd/afsd_eventmessages.mc | 8 ++++++++ src/WINNT/afsd/afsd_service.c | 2 ++ 3 files changed, 11 insertions(+) diff --git a/src/WINNT/afsd/afsd_eventlog.c b/src/WINNT/afsd/afsd_eventlog.c index 57af3ddce..05fec3d06 100644 --- a/src/WINNT/afsd/afsd_eventlog.c +++ b/src/WINNT/afsd/afsd_eventlog.c @@ -206,6 +206,7 @@ LogEvent(WORD wEventType, DWORD dwEventID, ...) case MSG_SERVICE_INCORRECT_VERSIONS: case MSG_SERVICE_RUNNING: case MSG_SERVICE_STOPPING: + case MSG_SERVICE_STOPPED: case MSG_SERVICE_ERROR_STOP: case MSG_CRYPT_OFF: case MSG_CRYPT_ON: diff --git a/src/WINNT/afsd/afsd_eventmessages.mc b/src/WINNT/afsd/afsd_eventmessages.mc index 38d8ce397..0c756af3d 100644 --- a/src/WINNT/afsd/afsd_eventmessages.mc +++ b/src/WINNT/afsd/afsd_eventmessages.mc @@ -438,4 +438,12 @@ Language=English Busy call channel when communicating with server %1, retrying ... . +MessageId= +Severity=Informational +Facility=System +SymbolicName=MSG_SERVICE_STOPPED +Language=English +OpenAFS Shutdown Complete. +. + ;#endif /* __AFSD_EVENTMESSAGES_H_ 1 */ diff --git a/src/WINNT/afsd/afsd_service.c b/src/WINNT/afsd/afsd_service.c index 85bc65f5d..1fb3fd0e6 100644 --- a/src/WINNT/afsd/afsd_service.c +++ b/src/WINNT/afsd/afsd_service.c @@ -1506,6 +1506,8 @@ afsd_Main(DWORD argc, LPTSTR *argv) /* Remove the ExceptionFilter */ SetUnhandledExceptionFilter(NULL); + LogEvent(EVENTLOG_INFORMATION_TYPE, MSG_SERVICE_STOPPED); + if (bRunningAsService) { ServiceStatus.dwCurrentState = SERVICE_STOPPED; ServiceStatus.dwWin32ExitCode = GlobalStatus ? ERROR_EXCEPTION_IN_SERVICE : NO_ERROR; -- 2.39.5