SnmpSendMsg-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.]

Eine WinSNMP-Anwendung ruft die SnmpSendMsg-Funktion auf, um anzufordern, dass die Microsoft WinSNMP-Implementierung eine SNMP-Protokolldateneinheit (PDU) in Form einer SNMP-Nachricht überträgt. Die WinSNMP-Anwendung gibt eine Quellentität, eine Zielentität und einen Kontext für die Anforderung an.

Wenn eine WinSNMP-Anwendung als Reaktion auf eine SnmpSendMsg-Anforderung eine PDU erwartet, muss sie die PDU abrufen. Dazu muss die Anwendung die SnmpRecvMsg-Funktion mithilfe des von SnmpCreateSession zurückgegebenen Sitzungshandles aufrufen.

Syntax

SNMPAPI_STATUS SNMPAPI_CALL SnmpSendMsg(
  [in] HSNMP_SESSION session,
  [in] HSNMP_ENTITY  srcEntity,
  [in] HSNMP_ENTITY  dstEntity,
  [in] HSNMP_CONTEXT context,
  [in] HSNMP_PDU     PDU
);

Parameter

[in] session

Handle für die WinSNMP-Sitzung.

[in] srcEntity

Handle an die Verwaltungsentität, die die Anforderung zum Senden der SNMP-Nachricht initiiert.

[in] dstEntity

Handle an die Zielentität, die auf die SNMP-Anforderung antwortet.

[in] context

Verarbeiten Sie den Kontext (eine Gruppe verwalteter Objektressourcen), den die Zielverwaltungsentität steuert.

[in] PDU

Handle für die Protokolldateneinheit, die die SNMP-Vorgangsanforderung enthält.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert SNMPAPI_SUCCESS.

Wenn die Funktion fehlschlägt, wird der Rückgabewert SNMPAPI_FAILURE. 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_ENTITY_INVALID
Einer oder beide Entitätsparameter sind ungültig.
SNMPAPI_CONTEXT_INVALID
Der Kontextparameter ist ungültig.
SNMPAPI_PDU_INVALID
Der PDU-Parameter ist ungültig.
SNMPAPI_OPERATION_INVALID
Der im feld PDU_type der PDU angegebene Vorgang ist für die Zielentität ungeeignet. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
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_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 SnmpSendMsg-Funktion wird asynchron ausgeführt und gibt daher sofort zurück.

Die Implementierung benachrichtigt die WinSNMP-Anwendung, wenn die asynchrone Anforderung abgeschlossen ist. Die Implementierung sendet dazu eine Benachrichtigung an das Fenster, das durch die Parameter wMsg bzw . hWnd beim ersten Aufruf von SnmpCreateSession für die Sitzung angegeben wurde. Wenn das Anwendungsfenster die Benachrichtigung empfängt, muss die WinSNMP-Anwendung die eingehende PDU abrufen. Die Anwendung ruft dazu die SnmpRecvMsg-Funktion mit dem von SnmpCreateSession zurückgegebenen Sitzungshandle auf.

Wenn eine WinSNMP-Anwendung die SnmpSendMsg-Funktion aufruft, bestimmt die Implementierung, welches Netzwerktransportprotokoll und welches SNMP-Versionsframework zum Abschließen der Übertragungsanforderung verwendet werden soll. Die Implementierung bestimmt dies, indem sie ihre Funktionen mit eigenschaften abgleicht, die der anfordernden Sitzung und der Zielverwaltungsentität zugeordnet sind. Diese Informationen sind über Werte in der Datenbank der Implementierung verfügbar.

Wenn eine WinSNMP-Anwendung Funktionen anfordert, die unter dem SNMP Version 2C-Framework (SNMPv2C) verfügbar sind, die Zielentität jedoch das SNMP Version 1-Framework (SNMPv1) verwendet, versucht die Implementierung, die Anforderung in SNMPv1 zu übersetzen. Dazu verwendet die Implementierung die Prozeduren, die in RFC1908 "Koexistenz zwischen Version 1 und Version 2 des Internetstandard-Netzwerkverwaltungsframeworks" definiert sind. Wenn die Übersetzung nicht möglich ist, schlägt SnmpSendMsg mit dem erweiterten Fehlercode SNMPAPI_OPERATION_INVALID fehl. Diese Situation tritt beispielsweise auf, wenn eine Anwendung versucht, eine PDU mit dem datentyp SNMP_PDU_InformRequest an eine SNMPv1-Zielentität zu senden.

Weitere Informationen finden Sie unter WinSNMP-Programmieraufgaben und Informationen zu SNMP-Nachrichten.

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

SnmpCreateSession

SnmpRecvMsg

WinSNMP-Funktionen

Übersicht über winSNMP-API