/*++ Copyright (c) 1993 Microsoft Corporation Module Name: eventlog.c Abstract: This module contains routines that allow the simple TCP/IP services to log events. Author: David Treadwell (davidtr) 08-02-1993 Revision History: --*/ #include // // Private globals. // HANDLE EventSource; // // Private prototypes. // VOID LogEventWorker ( DWORD Message, WORD EventType, WORD SubStringCount, CHAR *SubStrings[], DWORD ErrorCode ); INT SimpInitializeEventLog ( VOID ) { // // Register as an event source. // EventSource = RegisterEventSource( NULL, TEXT("SimpTcp") ); if( EventSource == NULL ) { return GetLastError(); } return NO_ERROR; } // SimpInitializeEventLog VOID SimpTerminateEventLog( VOID ) { // // Deregister as an event source. // if( EventSource != NULL ) { if( !DeregisterEventSource( EventSource ) ) { INT err = GetLastError(); } EventSource = NULL; } } // SimpTerminateEventLog VOID SimpLogEvent( DWORD Message, WORD SubStringCount, CHAR *SubStrings[], DWORD ErrorCode ) { WORD Type; // // Determine the type of event to log based on the severity field of // the message id. // if( NT_INFORMATION(Message) ) { Type = EVENTLOG_INFORMATION_TYPE; } else if( NT_WARNING(Message) ) { Type = EVENTLOG_WARNING_TYPE; } else if( NT_ERROR(Message) ) { Type = EVENTLOG_ERROR_TYPE; } else { ASSERT( FALSE ); Type = EVENTLOG_ERROR_TYPE; } // // Log it! // LogEventWorker( Message, Type, SubStringCount, SubStrings, ErrorCode ); } // SimpLogEvent VOID LogEventWorker( DWORD Message, WORD EventType, WORD SubStringCount, CHAR *SubStrings[], DWORD ErrorCode ) { VOID *RawData = NULL; DWORD RawDataSize = 0; ASSERT( ( SubStringCount == 0 ) || ( SubStrings != NULL ) ); if( ErrorCode != 0 ) { RawData = &ErrorCode; RawDataSize = sizeof(ErrorCode); } if( !ReportEvent( EventSource, // hEventSource EventType, // fwEventType 0, // fwCategory Message, // IDEvent NULL, // pUserSid, SubStringCount, // cStrings RawDataSize, // cbData (LPCTSTR *)SubStrings, // plpszStrings RawData ) ) // lpvData { INT err = GetLastError(); DbgPrint( "cannot report event, error %lu\n", err ); } } // LogEventWorker