static BOOL LegacyHal = FALSE;
static HINSTANCE local_hinstance;
+HANDLE eventLog;
#define SIZECHARS(x) (sizeof((x))/sizeof(TCHAR))
// Internal routines
BOOL res;
enum XShutdownType type;
int cntr = 0;
- HANDLE eventLog;
XsLog("Check if we need to shutdown");
and it can't do any harm. */
AcquireSystemShutdownPrivilege();
- eventLog = RegisterEventSource(NULL, "xensvc");
if (eventLog) {
DWORD eventId;
}
ReportEvent(eventLog, EVENTLOG_SUCCESS, 0, eventId, NULL, 0, 0,
NULL, NULL);
- DeregisterEventSource(eventLog);
}
XsLog("Do the shutdown");
}
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);
}
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);
}
else if (event == wmierrorEvent)
{
+ ReportEvent(eventLog, EVENTLOG_SUCCESS, 0, EVENT_XENUSER_WMI, NULL, 0, 0,
+ NULL, NULL);
break;
}
else
}
if (fail) {
XsLog("Resetting");
+ ReportEvent(eventLog, EVENTLOG_SUCCESS, 0, EVENT_XENUSER_UNEXPECTED, NULL, 0, 0,
+ NULL, NULL);
break;
}
}
void WINAPI ServiceMain(int argc, char** argv)
{
// Perform common initialization
+ eventLog = RegisterEventSource(NULL, "xensvc");
hServiceExitEvent = CreateEvent(NULL, false, false, NULL);
if (hServiceExitEvent == NULL)
{
XsLog("Guest agent service stopped");
ShutdownXSAccessor();
+ DeregisterEventSource(eventLog);
ServiceControlManagerUpdate(0, SERVICE_STOPPED);
return;
}