Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1992-1997 Microsoft Corporation
Module Name:
snmpevts.c
Abstract:
Eventlog message routines for the SNMP Service.
Environment:
User Mode - Win32
Revision History:
10-Feb-1997 DonRyan Rewrote to implement SNMPv2 support.
--*/
///////////////////////////////////////////////////////////////////////////////
// //
// Include files //
// //
///////////////////////////////////////////////////////////////////////////////
#include "globals.h"
///////////////////////////////////////////////////////////////////////////////
// //
// Public procedures //
// //
///////////////////////////////////////////////////////////////////////////////
VOID SNMP_FUNC_TYPE ReportSnmpEvent( DWORD nMsgId, DWORD nSubStrings, LPTSTR *ppSubStrings, DWORD nErrorCode )
/*++
Routine Description:
Reports event with EventLog service.
Arguments:
nMsgId - message identifier.
nSubStrings - number of message strings. ppSubStrings - pointer to array of message strings. nErrorCode - error code to be attached to event.
Return Values:
Returns true if successful.
--*/
{ HANDLE lh; WORD wEventType; LPVOID lpData; WORD cbData;
//
// determine type of event from message id. note that
// all debug messages regardless of their severity are
// listed under SNMP_EVENT_DEBUG_TRACE (informational).
// see snmpevts.h for the entire list of event messages.
//
switch ( nMsgId >> 30 ) {
case STATUS_SEVERITY_INFORMATIONAL: case STATUS_SEVERITY_SUCCESS: wEventType = EVENTLOG_INFORMATION_TYPE; break;
case STATUS_SEVERITY_WARNING: wEventType = EVENTLOG_WARNING_TYPE; break;
case STATUS_SEVERITY_ERROR: default: wEventType = EVENTLOG_ERROR_TYPE; break; }
// determine size of data by whether error present
cbData = (nErrorCode == NO_ERROR) ? 0 : sizeof(DWORD); lpData = (nErrorCode == NO_ERROR) ? NULL : &nErrorCode;
// attempt to register event sources
if (lh = RegisterEventSource(NULL, TEXT("SNMP"))) {
// report
ReportEvent( lh, wEventType, 0, // event category
nMsgId, NULL, // user sids
(WORD)nSubStrings, cbData, ppSubStrings, lpData );
// deregister event source
DeregisterEventSource(lh); } }
|