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
SNMPAPI_NOT_INITIALIZED
Die SnmpStartup-Funktion wurde nicht erfolgreich abgeschlossen.
SNMPAPI_ALLOC_ERROR
Während der Speicherbelegung ist ein Fehler aufgetreten.
SNMPAPI_SESSION_INVALID
Der Sitzungsparameter ist ungültig.
SNMPAPI_NOOP
Die angegebene Sitzung enthält derzeit keine Nachrichten in der Warteschlange.
SNMPAPI_TL_NOT_INITIALIZED
Die Netzwerktransportebene wurde nicht initialisiert.
SNMPAPI_TL_NOT_SUPPORTED
Die Netzwerktransportebene unterstützt das SNMP-Protokoll nicht.
SNMPAPI_TL_NOT_AVAILABLE
Fehler beim Netzwerksubsystem.
SNMPAPI_TL_RESOURCE_ERROR
Auf der Netzwerktransportebene ist ein Ressourcenfehler aufgetreten.
SNMPAPI_TL_UNDELIVERABLE
Die durch den dstEntity-Parameter angegebene Entität ist nicht verfügbar.
SNMPAPI_TL_SRC_INVALID
Die durch den srcEntity-Parameter angegebene Entität wurde nicht initialisiert.
SNMPAPI_TL_INVALID_PARAM
Ein Funktionsaufruf der Netzwerktransportebene hat einen ungültigen Eingabeparameter empfangen.
SNMPAPI_TL_PDU_TOO_BIG
Die PDU ist zu groß für das Senden oder Empfangen der Netzwerktransportschicht.
SNMPAPI_TL_OTHER
Es ist ein undefiniertes Netzwerktransportschichtfehler aufgetreten.
SNMPAPI_OTHER_ERROR
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

Weitere Informationen

SnmpFreeContext

SnmpFreeEntity

SnmpFreePdu

SnmpGetPduData

SnmpRegister

SnmpSendMsg

WinSNMP-Funktionen

Übersicht über winSNMP-API