From: Ben Chalmers Date: Mon, 30 Dec 2013 09:33:06 +0000 (+0000) Subject: [CA-119964] Add (excessive) event logging to id potential WMI failures X-Git-Tag: 8.1.0-rc1~25^2~3 X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=36b78dc0d18352c6bcccbfa3a805fe984fa6a830;p=pvdrivers%2Fwin%2Fxeniface.git [CA-119964] Add (excessive) event logging to id potential WMI failures Signed-off-by: Ben Chalmers --- diff --git a/src/win32stubagent/XService.cpp b/src/win32stubagent/XService.cpp index f15889e..44931a9 100644 --- a/src/win32stubagent/XService.cpp +++ b/src/win32stubagent/XService.cpp @@ -62,6 +62,7 @@ static ULONG WindowsVersion; static BOOL LegacyHal = FALSE; static HINSTANCE local_hinstance; +HANDLE eventLog; #define SIZECHARS(x) (sizeof((x))/sizeof(TCHAR)) // Internal routines @@ -371,7 +372,6 @@ static BOOL maybeReboot(void *ctx) BOOL res; enum XShutdownType type; int cntr = 0; - HANDLE eventLog; XsLog("Check if we need to shutdown"); @@ -399,7 +399,6 @@ static BOOL maybeReboot(void *ctx) and it can't do any harm. */ AcquireSystemShutdownPrivilege(); - eventLog = RegisterEventSource(NULL, "xensvc"); if (eventLog) { DWORD eventId; @@ -419,7 +418,6 @@ static BOOL maybeReboot(void *ctx) } ReportEvent(eventLog, EVENTLOG_SUCCESS, 0, eventId, NULL, 0, 0, NULL, NULL); - DeregisterEventSource(eventLog); } XsLog("Do the shutdown"); @@ -585,6 +583,9 @@ BOOL Run() } XsLog("Guest agent lite main loop starting"); + if (eventLog == NULL) + XsLog("Event log was not initialised"); + memset(&features, 0, sizeof(features)); HANDLE wmierrorEvent = CreateEvent(NULL, FALSE, FALSE, NULL); @@ -658,6 +659,10 @@ BOOL Run() } else if (event == suspendEvent) { + if (!ReportEvent(eventLog, EVENTLOG_SUCCESS, 0, EVENT_XENUSER_UNSUSPENDED, NULL, 0, 0, + NULL, NULL)) { + XsLog("Cannot send to event log %x",GetLastError()); + } XsLog("Suspend event"); finishSuspend(); AdvertiseFeatures(&features); @@ -666,6 +671,8 @@ BOOL Run() } else if (event == wmierrorEvent) { + ReportEvent(eventLog, EVENTLOG_SUCCESS, 0, EVENT_XENUSER_WMI, NULL, 0, 0, + NULL, NULL); break; } else @@ -688,6 +695,8 @@ BOOL Run() } if (fail) { XsLog("Resetting"); + ReportEvent(eventLog, EVENTLOG_SUCCESS, 0, EVENT_XENUSER_UNEXPECTED, NULL, 0, 0, + NULL, NULL); break; } } @@ -746,6 +755,7 @@ bool ServiceInit() void WINAPI ServiceMain(int argc, char** argv) { // Perform common initialization + eventLog = RegisterEventSource(NULL, "xensvc"); hServiceExitEvent = CreateEvent(NULL, false, false, NULL); if (hServiceExitEvent == NULL) { @@ -774,6 +784,7 @@ void WINAPI ServiceMain(int argc, char** argv) XsLog("Guest agent service stopped"); ShutdownXSAccessor(); + DeregisterEventSource(eventLog); ServiceControlManagerUpdate(0, SERVICE_STOPPED); return; } diff --git a/src/win32stubagent/messages.mc b/src/win32stubagent/messages.mc index 8034ca8..0289c44 100644 --- a/src/win32stubagent/messages.mc +++ b/src/win32stubagent/messages.mc @@ -32,3 +32,35 @@ SymbolicName=EVENT_XENUSER_S3 Language=English The tools requested that the local VM enter power state S3. . + +MessageId=0x0005 +Facility=XenUser +Severity=Informational +SymbolicName=EVENT_XENUSER_WMI +Language=English +The tools noticed that WMI became non-functional. +. + +MessageId=0x0006 +Facility=XenUser +Severity=Informational +SymbolicName=EVENT_XENUSER_STARTED +Language=English +The tools initiated. +. + +MessageId=0x0007 +Facility=XenUser +Severity=Informational +SymbolicName=EVENT_XENUSER_UNSUSPENDED +Language=English +The tools returned from suspend. +. + +MessageId=0x0008 +Facility=XenUser +Severity=Informational +SymbolicName=EVENT_XENUSER_UNEXPECTED +Language=English +The tools experienced an unexpected error. +.