SnmpExtensionQuery-Funktion (snmp.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.]
Der Microsoft SNMP-Dienst ruft die SnmpExtensionQuery-Funktion auf, um SNMP-Anforderungen aufzulösen, die Variablen in einer oder mehreren der registrierten MIB-Unterstrukturen des SNMP-Erweiterungs-Agents enthalten. Diese Funktion ist ein Element der SNMP-Erweiterungs-Agent-API.
Syntax
BOOL SNMP_FUNC_TYPE SnmpExtensionQuery(
[in] BYTE bPduType,
[in, out] SnmpVarBindList *pVarBindList,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
Parameter
[in] bPduType
Gibt den PDU-Anforderungstyp snmp Version 1 (SNMPv1) an. Dieser Parameter kann einen der folgenden Werte annehmen.
Beachten Sie, dass PDU-Anforderungstypen umbenannt wurden. Weitere Informationen finden Sie unter SNMP-Variablentypen und Anforderungs-PDU-Typen.
[in, out] pVarBindList
Zeiger auf die Variablenbindungsliste.
[out] pErrorStatus
Zeiger auf eine Variable, in der der Fehler status Ergebnis zurückgegeben wird. Dieser Parameter kann einer der folgenden Werte sein, die von SNMPv1 definiert werden.
[out] pErrorIndex
Zeiger auf eine Variable, in der das Fehlerindexergebnis zurückgegeben wird.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert TRUE.
Wenn die Funktion fehlschlägt, ist der Rückgabewert FALSE.
Hinweise
Wenn der SNMP-Dienst eine SNMP-PDU-Anforderung empfängt, ruft er die SnmpExtensionQuery-Funktion auf, um die Anforderung zu verarbeiten. Der Erweiterungs-Agent muss die Regeln in RFC 1157 befolgen, um die Variablenbindungen aufzulösen oder einen Fehler zu generieren.
Wenn der Erweiterungs-Agent die Variablenbindungen für eine Get Next-Anforderung nicht auflösen kann, muss er das Namensfeld der SnmpVarBind-Struktur in den Wert des Objektbezeichners ändern, der unmittelbar auf den wert der derzeit unterstützten MIB-Unterstrukturansicht folgt. Wenn der Erweiterungs-Agent beispielsweise die Ansicht ".1.3.6.1.4.1.77.1" unterstützt, Eine Get Next-Anforderung für ".1.3.6.1.4.1.77.1.5.1" würde zu einem geänderten Namensfeld ".1.3.6.1.4.1.77.2" führen. Dies signalisiert dem SNMP-Dienst, den Versuch fortzusetzen, die Variablenbindungen mit anderen Erweiterungs-Agents aufzulösen.
Beachten Sie, dass der SNMP-Dienst und der Erweiterungs-Agent während eines Aufrufs der SnmpExtensionQuery-Funktion möglicherweise dynamisch zugeordneten Arbeitsspeicher austauschen müssen. Der Dienst ordnet den Objektbezeichner dynamisch in jeder SnmpVarBind-Struktur zu, die er an den Erweiterungs-Agent übergibt. Der Erweiterungs-Agent muss diesen Arbeitsspeicher jedoch freigeben, um den Objektbezeichner zu ersetzen, wenn er eine Anforderung zum Nächsten Abrufen verarbeitet. Der Erweiterungs-Agent ordnet dynamischen Arbeitsspeicher für Objekttypen mit variabler Länge zu. Der SNMP-Dienst gibt diesen Arbeitsspeicher frei, nachdem das Objekt in der Antwort-PDU platziert wurde.
Um Heapbeschädigungen und Speicherverluste zu vermeiden, müssen sowohl der SNMP-Dienst als auch der Erweiterungs-Agent Speicherbelegungsroutinen verwenden, die in den gleichen Heap aufgelöst werden. Der Erweiterungs-Agent muss die SnmpUtilMemAlloc-Funktion verwenden, um Arbeitsspeicher zuzuweisen, den er an den SNMP-Dienst übergibt. Sie muss die SnmpUtilMemFree-Funktion verwenden, um den Arbeitsspeicher freizugeben, den der Dienst an den Erweiterungs-Agent zurückgibt. Diese Funktionen befinden sich in der dynamischen Linkbibliothek des Hilfsprogramms SNMPAPI.DLL.
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 | snmp.h |