SnmpGetPduData-Funktion (winsnmp.h)

[SNMP ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt "Anforderungen" angegeben sind. Es kann in nachfolgenden Versionen geändert oder entfernt werden. Verwenden Sie stattdessen die Windows-Remoteverwaltung, die Microsoft-Implementierung von WS-Man.]

Die WinSNMP SnmpGetPduData-Funktion gibt ausgewählte Datenfelder aus einer angegebenen SNMP-Protokolldateneinheit (PDU) zurück.

Syntax

SNMPAPI_STATUS SNMPAPI_CALL SnmpGetPduData(
  [in]  HSNMP_PDU   PDU,
  [out] smiLPINT    PDU_type,
  [out] smiLPINT32  request_id,
  [out] smiLPINT    error_status,
  [out] smiLPINT    error_index,
  [out] LPHSNMP_VBL varbindlist
);

Parameter

[in] PDU

Handle mit der SNMP-PDU.

[out] PDU_type

Zeiger auf eine Variable, die das PDU_type Feld der angegebenen PDU empfängt. Dieser Parameter kann NULL oder einer der folgenden Werte sein.

Wert Bedeutung
SNMP_PDU_GET
Suchen und Abrufen eines Werts aus einer angegebenen SNMP-Variablen.
SNMP_PDU_GETNEXT
Suchen und Abrufen des Werts einer SNMP-Variablen, ohne den genauen Namen der Variablen zu kennen.
SNMP_PDU_RESPONSE
Antworten Sie auf eine SNMP_PDU_GET oder eine SNMP_PDU_GETNEXT Anforderung.
SNMP_PDU_SET
Speichern Sie einen Wert in einer angegebenen SNMP-Variablen.
SNMP_PDU_GETBULK
Suchen und Abrufen mehrerer Werte mit einer einzelnen Anforderung.
SNMP_PDU_TRAP
Warnt das Managementsystem auf ein außergewöhnliches Ereignis unter SNMPv2C.

[out] request_id

Zeiger auf eine Variable, die das request_id Feld der angegebenen PDU empfängt. Dieser Parameter kann NULL sein.

[out] error_status

Zeiger auf eine Variable, die das error_status Feld der angegebenen PDU empfängt. Wenn der parameter PDU_type gleich SNMP_PDU_GETBULK ist, empfängt dieser Parameter den Wert des non_repeaters Felds der PDU.

Dieser Parameter kann NULL oder einer der folgenden Werte sein. Die ersten sechs Fehler sind für die Frameworks SNMP Version 1 (SNMPv1) und SNMP Version 2C (SNMPv2C) üblich. Die restlichen Fehler sind nur unter SNMPv2C verfügbar.

Fehlercode Bedeutung
SNMP_ERROR_NOERROR
Der Agent meldet, dass während der Übertragung keine Fehler aufgetreten sind.
SNMP_ERROR_TOOBIG
Der Agent konnte die Ergebnisse des angeforderten SNMP-Vorgangs nicht in einer einzelnen SNMP-Nachricht platzieren.
SNMP_ERROR_NOSUCHNAME
Der angeforderte SNMP-Vorgang identifizierte eine unbekannte Variable.
SNMP_ERROR_BADVALUE
Der angeforderte SNMP-Vorgang hat versucht, eine Variable zu ändern, aber es wurde entweder ein Syntax- oder Wertfehler angegeben.
SNMP_ERROR_READONLY
Der angeforderte SNMP-Vorgang hat versucht, eine Variable zu ändern, die sich gemäß dem Communityprofil der Variablen nicht ändern durfte.
SNMP_ERROR_GENERR
Während des angeforderten SNMP-Vorgangs ist ein anderer Als einer der hier aufgeführten Fehler aufgetreten.
SNMP_ERROR_NOACCESS
Auf die angegebene SNMP-Variable kann nicht zugegriffen werden.
SNMP_ERROR_WRONGTYPE
Der Wert gibt einen Typ an, der mit dem für die Variable erforderlichen Typ inkonsistent ist.
SNMP_ERROR_WRONGLENGTH
Der Wert gibt eine Länge an, die mit der für die Variable erforderlichen Länge inkonsistent ist.
SNMP_ERROR_WRONGENCODING
Der Wert enthält eine ASN.1-Codierung (Abstract Syntax Notation One), die mit dem ASN.1-Tag des Felds inkonsistent ist.
SNMP_ERROR_WRONGVALUE
Der Wert kann der Variablen nicht zugewiesen werden.
SNMP_ERROR_NOCREATION
Die Variable ist nicht vorhanden, und der Agent kann sie nicht erstellen.
SNMP_ERROR_INCONSISTENTVALUE
Der Wert ist inkonsistent mit Werten anderer verwalteter Objekte.
SNMP_ERROR_RESOURCEUNAVAILABLE
Das Zuweisen des Werts zur Variablen erfordert die Zuordnung von Ressourcen, die derzeit nicht verfügbar sind.
SNMP_ERROR_COMMITFAILED
Es sind keine Validierungsfehler aufgetreten, aber keine Variablen wurden aktualisiert.
SNMP_ERROR_UNDOFAILED
Es sind keine Validierungsfehler aufgetreten. Einige Variablen wurden aktualisiert, da es nicht möglich war, ihre Zuweisung rückgängig zu machen.
SNMP_ERROR_AUTHORIZATIONERROR
Ein Autorisierungsfehler ist aufgetreten.
SNMP_ERROR_NOTWRITABLE
Die Variable ist vorhanden, aber der Agent kann sie nicht ändern.
SNMP_ERROR_INCONSISTENTNAME
Die Variable ist nicht vorhanden. Der Agent kann es nicht erstellen, da das benannte Objekt instance mit den Werten anderer verwalteter Objekte inkonsistent ist.

[out] error_index

Zeiger auf eine Variable, die das error_index Feld der angegebenen PDU empfängt.

Wenn der parameter PDU_type gleich SNMP_PDU_GETBULK ist, empfängt dieser Parameter den Wert des max_repetitions Felds der angegebenen PDU. Dieser Parameter kann NULL sein.

[out] varbindlist

Zeiger auf eine Variable, die ein Handle auf das Listenfeld variablenbindungen der angegebenen PDU empfängt. Dieser Parameter kann NULL sein. Weitere Informationen finden Sie im abschnitt "Hinweise".

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 kann einen der folgenden Fehler zurückgeben.

Rückgabecode Beschreibung
SNMPAPI_NOT_INITIALIZED
Die SnmpStartup-Funktion wurde nicht erfolgreich abgeschlossen.
SNMPAPI_ALLOC_ERROR
Während der Speicherzuordnung ist ein Fehler aufgetreten.
SNMPAPI_NOOP
Alle Ausgabeparameter sind NULL. Der SNMP-Vorgang wurde nicht ausgeführt.
SNMPAPI_PDU_INVALID
Der PDU-Typ ist ungültig.
SNMPAPI_OTHER_ERROR
Ein unbekannter oder nicht definierter Fehler ist aufgetreten.

Hinweise

Alle Parameter der SnmpGetPduData-Funktion sind erforderlich. Alle Parameter mit Ausnahme des PDU-Parameters können jedoch NULL sein. In Parametern, die die Anwendung als NULL übergibt, gibt die SnmpGetPduData-Funktion keinen Wert zurück.

Die SnmpGetPduData-Funktion gibt immer ein Handle an ein neues Listenobjekt für Variablenbindungen zurück, wenn der varbindlist-Parameter nicht NULL ist. Wenn der PDU-Parameter eine neue PDU angibt, fügt die Funktion außerdem ein Handle an die neue PDU an.

Wenn eine Anwendung SnmpGetPduData mit einem varbindlist-Parameter aufruft, der nicht NULL ist, aber der PDU-Parameter eine vorhandene PDU angibt, gibt die Funktion ein Handle an eine neue Liste doppelter Variablenbindungen zurück. Der Funktionsaufruf stört nicht das Handle, das an die vorhandene PDU angefügt ist. Eine vorhandene PDU ist eine, die eine Anwendung mit einem Aufruf der SnmpCreatePdu-Funktion erstellt, oder eine, die die Anwendung empfängt und dann mithilfe eines Aufrufs von SnmpGetPduData liest.

Wenn eine Anwendung eine PDU mit SnmpCreatePdu erstellt oder nachdem die Anwendung eine PDU mithilfe von SnmpGetPduData gelesen hat, erwartet die Microsoft WinSNMP-Implementierung, dass die Anwendung die Werte der PDU-Felder "kennt". Wenn eine Anwendung eine PDU ein zweites Mal mit SnmpGetPduData liest, führt der Aufruf zu einer Kopie der Variablenbindungsliste der angegebenen PDU. Dieser Typ von Aufruf von SnmpGetPduData dupliziert auch das Handle an die PDU.

Anforderungen

   
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

SnmpCreatePdu

SnmpDuplicateVbl

WinSNMP-Funktionen

Übersicht über winSNMP-API