[This is preliminary documentation and subject to change.]
The WinSNMP SnmpRegister function registers or unregisters a WinSNMP manager application for trap and notification reception. The application can register and receive traps and notifications, or unregister and disable traps and notifications.
A WinSNMP manager application can register or unregister for one type of trap or notification, or for all traps and notifications, depending on the value of the notification parameter.
SNMPAPI_STATUS SnmpRegister(
HSNMP_SESSION session, // handle to the WinSNMP session
HSNMP_ENTITY srcEntity, // handle to the entity that will
// receive traps
HSNMP_ENTITY dstEntity, // handle to the entity that will
// send traps
HSNMP_CONTEXT context, // handle to the context
smiLPCOID notification, // trap-matching sequence
smiUINT32 state // flag for trap reception
);
If this parameter is NULL, the Microsoft WinSNMP implementation registers or unregisters all sources of trap and notification requests.
Note that the srcEntity parameter to the SnmpRecvMsg function receives a handle to the management entity that sends traps.
If this parameter is NULL, the implementation registers or unregisters the WinSNMP manager application for traps and notifications from all management entities.
Note that the dstEntity parameter to the SnmpRecvMsg function receives a handle to the management entity that requests traps.
If this parameter is NULL, the implementation registers or unregisters the WinSNMP manager application for traps and notifications for every context.
If this parameter is NULL, the implementation registers or unregisters the WinSNMP manager application for all traps and notifications from the management entity or entities specified by the dstEntity parameter.
Value | Meaning |
---|---|
SNMPAPI_OFF | Disable traps and notifications. |
SNMPAPI_ON | Register to receive traps and notifications. |
If the function succeeds, the return value is SNMPAPI_SUCCESS.
If the function fails, the return value is SNMPAPI_FAILURE. To get extended error information, call SnmpGetLastError. The SnmpGetLastError function may return one of the following WinSNMP or network transport layer errors.
Error Code | Description |
---|---|
SNMPAPI_NOT_INITIALIZED | The SnmpStartup function did not complete successfully. |
SNMPAPI_ALLOC_ERROR | An error occurred during memory allocation. |
SNMPAPI_SESSION_INVALID | The session parameter is invalid. |
SNMPAPI_ENTITY_INVALID | One or both of the entity parameters is invalid. |
SNMPAPI_CONTEXT_INVALID | The context parameter is invalid. |
SNMPAPI_OID_INVALID | The notification parameter is invalid. |
SNMPAPI_TL_NOT_INITIALIZED | The network transport layer was not initialized. |
SNMPAPI_TL_IN_USE | The trap port is not available. |
SNMPAPI_TL_NOT_AVAILABLE | The network subsystem failed. |
SNMPAPI_OTHER_ERROR | An unknown or undefined error occurred. |
For additional information, see Network Transport Errors.
If a WinSNMP manager application passes NULL in a call to the SnmpRegister function in the srcEntity, dstEntity, context, or notification parameters, the implementation does not use that parameter to filter traps and notifications from reaching the WinSNMP manager application.
If a WinSNMP manager application registers to receive a specific type of trap or notification, it must define an object identifier, that is, an smiOID structure, that corresponds to that type of trap. The notification parameter must point to this structure. RFC 1907, "Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)," defines trap and notification object identifiers. For additional information, see Translating Traps from SNMPv1 to SNMPv2C.
The implementation uses the value of the notification parameter as a pattern to match against received traps and notifications. For example, if the WinSNMP manager application passes n number of subidentifiers in the notification parameter, and the first n subidentifiers in a received trap match all the passed subidentifiers, then the trap object identifier is a match. If a received trap has fewer subidentifiers than n, the object identifier does not match. If there is a match, the implementation sends the trap or notification to the WinSNMP manager application.
If any or all of the dstEntity, srcEntity, or context parameters are NULL, the implementation may need to allocate resources on a subsequent call to the SnmpRecvMsg function, for that function's corresponding parameters. When the WinSNMP manager application no longer needs the resources SnmpRecvMsg returns, the application must free the individual resources with the function that corresponds to the resource. For additional information, see SnmpFreeEntity and SnmpFreeContext.
Windows NT: Requires version 5.0 or later. Available as a redistributable for Windows NT 4.0.
Windows: Unsupported.
Windows CE: Unsupported.
Header: Declared in winsnmp.h.
Import Library: Use wsnmp32.lib.
WinSNMP Manager API Overview, WinSNMP Functions, SnmpOpen, SnmpRecvMsg, SnmpFreeEntity, SnmpFreeContext