123 lines
2.9 KiB
C
123 lines
2.9 KiB
C
/*++
|
||
|
||
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);
|
||
}
|
||
} |