Funzione SnmpExtensionQuery (snmp.h)
[SNMP è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. È possibile che in versioni successive sia stata modificata o non sia più disponibile. Usare invece Gestione remota Windows, ovvero l'implementazione Microsoft di WS-Man.
Il servizio Microsoft SNMP chiama la funzione SnmpExtensionQuery per risolvere le richieste SNMP che contengono variabili all'interno di uno o più sottoalberi MIB registrati dall'agente di estensione SNMP. Questa funzione è un elemento dell'API dell'agente di estensione SNMP.
Sintassi
BOOL SNMP_FUNC_TYPE SnmpExtensionQuery(
[in] BYTE bPduType,
[in, out] SnmpVarBindList *pVarBindList,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
Parametri
[in] bPduType
Specifica il tipo di richiesta PDU della versione 1 (SNMPv1). Questo parametro può avere uno dei valori seguenti.
Si noti che i tipi di richiesta PDU sono stati rinominati. Per altre informazioni, vedere Tipi di variabili SNMP e tipi PDU di richiesta.
[in, out] pVarBindList
Puntatore all'elenco associazioni di variabili.
[out] pErrorStatus
Puntatore a una variabile in cui verrà restituito il risultato dello stato dell'errore. Questo parametro può essere uno dei valori seguenti definiti da SNMPv1.
[out] pErrorIndex
Puntatore a una variabile in cui verrà restituito il risultato dell'indice di errore.
Valore restituito
Se la funzione ha esito positivo, il valore restituito è TRUE.
Se la funzione ha esito negativo, il valore restituito è FALSE.
Commenti
Quando il servizio SNMP riceve una richiesta PDU SNMP, chiama la funzione SnmpExtensionQuery per elaborare la richiesta. L'agente di estensione deve seguire le regole in RFC 1157 per risolvere le associazioni di variabili o generare un errore.
Se l'agente di estensione non riesce a risolvere le associazioni di variabili in una richiesta Get Next , deve modificare il campo nome della struttura SnmpVarBind sul valore dell'identificatore dell'oggetto immediatamente dopo quello della visualizzazione sottoalbero MIB attualmente supportata. Ad esempio, se l'agente di estensione supporta la visualizzazione ".1.3.6.1.4.1.77.1", una richiesta Get Next su ".1.3.6.1.4.1.77.1.5.1" comporta un campo nome modificato di ".1.3.6.1.4.1.77.2". Questo segnala al servizio SNMP di continuare il tentativo di risolvere le associazioni di variabili con altri agenti di estensione.
È importante notare che il servizio SNMP e l'agente di estensione potrebbero dover scambiare memoria allocata dinamicamente durante una chiamata alla funzione SnmpExtensionQuery . Il servizio alloca dinamicamente l'identificatore dell'oggetto in ogni struttura SnmpVarBind che passa all'agente di estensione. Tuttavia, l'agente di estensione deve rilasciare questa memoria per sostituire l'identificatore dell'oggetto quando elabora una richiesta Get Next . L'agente di estensione alloca la memoria dinamica per i tipi di oggetti a lunghezza variabile. Il servizio SNMP rilascia questa memoria dopo che l'oggetto viene inserito nella risposta PDU.
Per evitare perdite di memoria e danneggiamento dell'heap, sia il servizio SNMP che l'agente di estensione devono usare le routine di allocazione della memoria che si risolvono nello stesso heap. L'agente di estensione deve usare la funzione SnmpUtilMemAlloc per allocare memoria che passa al servizio SNMP. Deve usare la funzione SnmpUtilMemFree per rilasciare la memoria che il servizio passa all'agente di estensione. Queste funzioni si trovano nella libreria di collegamenti dinamici dell'utilità SNMPAPI.DLL.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 2000 Professional [solo app desktop] |
Server minimo supportato | Windows 2000 Server [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | snmp.h |
Vedi anche
Panoramica del protocollo Simple Network Management Protocol (SNMP)