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);
|
|||
|
}
|
|||
|
}
|