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.
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
);
[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.
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 |
---|---|
|
Die SnmpStartup-Funktion wurde nicht erfolgreich abgeschlossen. |
|
Während der Speicherbelegung ist ein Fehler aufgetreten. |
|
Der Sitzungsparameter ist ungültig. |
|
Einer oder beide Entitätsparameter sind ungültig. |
|
Der Kontextparameter ist ungültig. |
|
Der PDU-Parameter ist ungültig. |
|
Der im feld PDU_type der PDU angegebene Vorgang ist für die Zielentität ungeeignet. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise". |
|
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 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.
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.
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 |