Prev Next

SnmpMgrGetTrap info  Overview  Group

The SnmpMgrGetTrap function returns outstanding trap data that the caller has not received if trap reception is enabled.

BOOL SnmpMgrGetTrap(

    AsnObjectIdentifier *enterprise,

// generating enterprise

    AsnNetworkAddress *IPAddress,

// generating IP address

    AsnInteger *genericTrap,

// generic trap type

    AsnInteger *specificTrap,

// enterprise-specific type

    AsnTimeticks *timeStamp,

// time stamp

    RFC1157VarBindList *variableBindings

// variable bindings

   );

Parameters

enterprise
[out] Points to an object identifier that specifies the enterprise that generated the SNMP trap.
IPAddress
[out] Points to the IP address of the enterprise that generated the SNMP trap.
genericTrap
[out] Points to an indicator of the generic trap. This parameter can be one of the following values:

Value

Meaning

SNMP_GENERICTRAP_COLDSTART

The agent is initializing protocol entities on the managed mode. It may alter objects in its view.

SNMP_GENERICTRAP_WARMSTART

The agent is re-initializing itself but it will not alter objects in its view.

SNMP_GENERICTRAP_LINKDOWN

An attached interface has changed from the up state to the down state. The first variable in the variable bindings list identifies the interface.

SNMP_GENERICTRAP_LINKUP

An attached interface has changed from the down state to the up state. The first variable in the variable bindings list identifies the interface.

SNMP_GENERICTRAP_AUTHFAILURE

An SNMP entity has sent an SNMP message, but it has falsely claimed to belong to a known community.

SNMP_GENERICTRAP_EGPNEIGHLOSS

An EGP peer has changed to the down state. The first variable in the variable bindings list identifies the IP address of the EGP peer.

SNMP_GENERICTRAP_ENTERSPECIFIC

An extraordinary event has occurred and it is identified in the specificTrap parameter with an enterprise-specific value.

specificTrap
[out] Points to an indication of the specific trap generated.
timeStamp
[out] Points to a variable to receive the time stamp.
variableBindings
[out] Points to the variable bindings list.

Return Values

If the function returns a trap, the return value is nonzero.

You should call the SnmpMgrGetTrap function repeatedly until GetLastError returns zero. GetLastError may also return the following error codes:

Error Code

Meaning

SNMP_MGMTAPI_TRAP_ERRORS

Indicates errors were encountered; traps are not accessible.

SNMP_MGMTAPI_NOTRAPS

Indicates no traps are available.

SNMP_MEM_ALLOC_ERROR

Indicates a memory allocation error.

Remarks

You must allocate memory for the list member of the RFC1157VarBindList structure with the SnmpUtilMemAlloc function but you do not need to free it.

Once an operating system completes a task, it sends a trap signal. An internal SNMP signal checks for the trap signal to notify the SNMP manager of the completed task. The event that the phTrapAvailable parameter of the SnmpMgrTrapListen function points to allows event-driven acquisition of SNMP traps. You can ignore the trap and poll the SnmpMgrGetTrap function for traps at regular intervals instead.

Another method to acquire traps is to create a thread to wait on the event using the WaitForSingleObject function. When the event occurs, the thread should clear the event using the ResetEvent function. Then the thread should repeatedly call SnmpMgrGetTrap until it returns zero.

Always call the SnmpMgrTrapListen function before calling SnmpMgrGetTrap to receive traps. If an SNMP manager application calls SnmpMgrGetTrap first to receive traps, it returns zero, even if there are traps available. If the application calls GetLastError before calling SnmpMgrTrapListen, GetLastError returns the error code SNMP_MGMTAPI_TRAP_ERRORS.

See Also

SnmpMgrTrapListen, SnmpUtilMemAlloc, WaitForSingleObject, RFC1157VarBindList, ResetEvent