SnmpRecvMsg-Funktion (winsnmp.h)
[SNMP ist für die Verwendung in den im Abschnitt Anforderungen angegebenen Betriebssystemen verfügbar. Es kann in nachfolgenden Versionen geändert oder entfernt werden. Verwenden Sie stattdessen die Windows-Remoteverwaltung, die Microsoft-Implementierung von WS-Man.]
Die WinSNMP-Funktion SnmpRecvMsg ruft die Ergebnisse einer abgeschlossenen asynchronen Anforderung ab, die von einem Aufruf der SnmpSendMsg-Funktion in Form einer SNMP-Nachricht übermittelt wird. Die SnmpRecvMsg-Funktion gibt auch ausstehende Trapdaten und Benachrichtigungen zurück, die für eine WinSNMP-Sitzung registriert sind.
Syntax
SNMPAPI_STATUS SNMPAPI_CALL SnmpRecvMsg(
[in] HSNMP_SESSION session,
[out] LPHSNMP_ENTITY srcEntity,
[out] LPHSNMP_ENTITY dstEntity,
[out] LPHSNMP_CONTEXT context,
[out] LPHSNMP_PDU PDU
);
Parameter
[in] session
Handle für die WinSNMP-Sitzung.
[out] srcEntity
Zeiger auf eine Variable, die ein Handle an die Entität empfängt, die die Nachricht sendet. Beachten Sie, dass der srcEntity-Parameter für die SnmpRegister-Funktion ein Handle für die Verwaltungsentität angibt, die sich für die Trapbenachrichtigung registriert.
[out] dstEntity
Zeiger auf eine Variable, die ein Handle für die Entität empfängt, die die Nachricht empfängt. Beachten Sie, dass der dstEntity-Parameter für die SnmpRegister-Funktion ein Handle für die Verwaltungsentität angibt, die Traps sendet.
[out] context
Zeiger auf eine Variable, die ein Handle für den Kontext empfängt, bei dem es sich um eine Gruppe verwalteter Objektressourcen handelt. Die durch den srcEntity-Parameter angegebene Entität gibt die Nachricht aus diesem Kontext aus.
[out] PDU
Zeiger auf eine Variable, die ein Handle für die PDU-Komponente (Protocol Data Unit) der Nachricht empfängt.
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert SNMPAPI_SUCCESS, und die Ausgabeparameter enthalten die werte, die in den vorherigen Parameterbeschreibungen angegeben sind.
Wenn die Funktion fehlschlägt, wird der Rückgabewert SNMPAPI_FAILURE. Wenn die Funktion mit einem erweiterten Fehlercode fehlschlägt, der auf einen Fehler der Netzwerktransportebene hinweist, d. h. einer, der mit SNMPAPI_TL_ beginnt, enthalten die Ausgabeparameter auch die oben angegebenen Werte, damit die WinSNMP-Anwendung ordnungsgemäß wiederhergestellt werden kann.
Rufen Sie SnmpGetLastError auf, um erweiterte Fehlerinformationen zu erhalten. Die SnmpGetLastError-Funktion gibt möglicherweise einen der folgenden WinSNMP- oder Netzwerktransportebenenfehler zurück.
Rückgabecode | Beschreibung |
---|---|
|
Die SnmpStartup-Funktion wurde nicht erfolgreich abgeschlossen. |
|
Während der Speicherbelegung ist ein Fehler aufgetreten. |
|
Der Sitzungsparameter ist ungültig. |
|
Die angegebene Sitzung enthält derzeit keine Nachrichten in der Warteschlange. |
|
Die Netzwerktransportebene wurde nicht initialisiert. |
|
Die Netzwerktransportebene unterstützt das SNMP-Protokoll nicht. |
|
Fehler beim Netzwerksubsystem. |
|
Auf der Netzwerktransportebene ist ein Ressourcenfehler aufgetreten. |
|
Die durch den dstEntity-Parameter angegebene Entität ist nicht verfügbar. |
|
Die durch den srcEntity-Parameter angegebene Entität wurde nicht initialisiert. |
|
Ein Funktionsaufruf der Netzwerktransportebene hat einen ungültigen Eingabeparameter empfangen. |
|
Die PDU ist zu groß für das Senden oder Empfangen der Netzwerktransportschicht. |
|
Es ist ein undefiniertes Netzwerktransportschichtfehler aufgetreten. |
|
Es ist ein unbekannter oder nicht definierter Fehler aufgetreten. |
Weitere Informationen finden Sie unter Fehler beim Netzwerktransport.
Hinweise
Die SnmpCreateSession-Funktion übergibt ein Anwendungsfensterhandle und einen Benachrichtigungsbezeichner an die Microsoft WinSNMP-Implementierung. Wenn das Anwendungsfenster die durch den wMsg-Parameter angegebene Benachrichtigung empfängt, muss die WinSNMP-Anwendung die SnmpRecvMsg-Funktion mit dem von SnmpCreateSession zurückgegebenen Sitzungshandle aufrufen, um eine eingehende Protokolldateneinheit (PDU) abzurufen. Weitere Informationen finden Sie unter Informationen zu SNMP-Nachrichten.
Die SnmpRecvMsg-Funktion instanziiert vier Objekte und ordnet deren Ressourcen zu: zwei Entitätshandles, ein Kontexthandle und ein PDU-Handle. Das Handle für die Listenkomponente der Variablenbindungen der zurückgegebenen PDU wird erst instanziiert, wenn die WinSNMP-Anwendung die SnmpGetPduData-Funktion aufruft . Wenn die von SnmpRecvMsg zurückgegebenen Ressourcen nicht mehr benötigt werden, muss die WinSNMP-Anwendung die einzelnen Ressourcen mithilfe der WinSNMP-Funktion freigeben, die der Ressource entspricht. Weitere Informationen finden Sie unter SnmpFreePdu, SnmpFreeEntity und SnmpFreeContext.
Wenn die Implementierung Traps von einer Entität empfängt, die unter dem SNMP Version 1-Framework (SNMPv1) ausgeführt wird, übersetzt sie die Traps in das FORMAT SNMP Version 2C (SNMPv2C). Wenn SnmpRecvMsg eine Trap übermittelt, liegt diese daher immer im SNMPv2C-Format vor. Weitere Informationen finden Sie unter Übersetzen von Traps aus SNMPv1 in SNMPv2C und WinSNMP-Programmiertasks.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winsnmp.h |
Bibliothek | Wsnmp32.lib |
DLL | Wsnmp32.dll |