Condividi tramite


Funzione SnmpGetPduData (winsnmp.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.

La funzione SnmpGetPduData WinSNMP restituisce campi dati selezionati da un'unità dati del protocollo SNMP specificata .

Sintassi

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
);

Parametri

[in] PDU

Handle all'PDU SNMP.

[out] PDU_type

Puntatore a una variabile che riceve il campo PDU_type dell'PDU specificato. Questo parametro può essere NULL o uno dei valori seguenti.

Valore Significato
SNMP_PDU_GET
Cercare e recuperare un valore da una variabile SNMP specificata.
SNMP_PDU_GETNEXT
Cercare e recuperare il valore di una variabile SNMP senza conoscere il nome esatto della variabile.
SNMP_PDU_RESPONSE
Rispondere a un SNMP_PDU_GET o a una richiesta di SNMP_PDU_GETNEXT .
SNMP_PDU_SET
Archiviare un valore in una variabile SNMP specificata.
SNMP_PDU_GETBULK
Cercare e recuperare più valori con una singola richiesta.
SNMP_PDU_TRAP
Avvisa il sistema di gestione in un evento straordinario in SNMPv2C.

[out] request_id

Puntatore a una variabile che riceve il campo request_id dell'PDU specificato. Questo parametro può essere NULL.

[out] error_status

Puntatore a una variabile che riceve il campo error_status dell'PDU specificato. Se il parametro PDU_type è uguale a SNMP_PDU_GETBULK, questo parametro riceve il valore del campo non_repeaters dell'PDU.

Questo parametro può essere NULL o uno dei valori seguenti. I primi sei errori sono comuni ai framework SNMP versione 1 (SNMPv1) e SNMP versione 2C (SNMPv2C). Gli errori rimanenti sono disponibili solo in SNMPv2C.

Codice di errore Significato
SNMP_ERROR_NOERROR
L'agente segnala che non si sono verificati errori durante la trasmissione.
SNMP_ERROR_TOOBIG
L'agente non è riuscito a inserire i risultati dell'operazione SNMP richiesta in un singolo messaggio SNMP.
SNMP_ERROR_NOSUCHNAME
L'operazione SNMP richiesta ha identificato una variabile sconosciuta.
SNMP_ERROR_BADVALUE
L'operazione SNMP richiesta tentava di modificare una variabile, ma specificava un errore di sintassi o valore.
SNMP_ERROR_READONLY
L'operazione SNMP richiesta ha tentato di modificare una variabile non consentita, in base al profilo della community della variabile.
SNMP_ERROR_GENERR
Si è verificato un errore diverso da uno di quelli elencati qui durante l'operazione SNMP richiesta.
SNMP_ERROR_NOACCESS
La variabile SNMP specificata non è accessibile.
SNMP_ERROR_WRONGTYPE
Il valore specifica un tipo incoerente con il tipo necessario per la variabile.
SNMP_ERROR_WRONGLENGTH
Il valore specifica una lunghezza incoerente con la lunghezza necessaria per la variabile.
SNMP_ERROR_WRONGENCODING
Il valore contiene una codifica astratta Notation One (ASN.1) incoerente con il tag ASN.1 del campo.
SNMP_ERROR_WRONGVALUE
Impossibile assegnare il valore alla variabile.
SNMP_ERROR_NOCREATION
La variabile non esiste e l'agente non può crearlo.
SNMP_ERROR_INCONSISTENTVALUE
Il valore è incoerente con i valori di altri oggetti gestiti.
SNMP_ERROR_RESOURCEUNAVAILABLE
L'assegnazione del valore alla variabile richiede l'allocazione delle risorse attualmente non disponibili.
SNMP_ERROR_COMMITFAILED
Non si sono verificati errori di convalida, ma non sono state aggiornate variabili.
SNMP_ERROR_UNDOFAILED
Non si sono verificati errori di convalida. Alcune variabili sono state aggiornate perché non è stato possibile annullare l'assegnazione.
SNMP_ERROR_AUTHORIZATIONERROR
Si è verificato un errore di autorizzazione.
SNMP_ERROR_NOTWRITABLE
La variabile esiste ma l'agente non può modificarlo.
SNMP_ERROR_INCONSISTENTNAME
La variabile non esiste; l'agente non può crearlo perché l'istanza dell'oggetto denominata non è coerente con i valori di altri oggetti gestiti.

[out] error_index

Puntatore a una variabile che riceve il campo error_index dell'PDU specificato.

Se il parametro PDU_type è uguale a SNMP_PDU_GETBULK, questo parametro riceve il valore del campo max_repetitions dell'PDU specificato. Questo parametro può essere NULL.

[out] varbindlist

Puntatore a una variabile che riceve un handle nel campo elenco associazioni di variabili del PDU specificato. Questo parametro può essere NULL. Per altre informazioni, vedere la sezione Osservazioni seguenti.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è SNMPAPI_SUCCESS.

Se la funzione ha esito negativo, il valore restituito è SNMPAPI_FAILURE. Per ottenere informazioni sull'errore estese, chiamare SnmpGetLastError. La funzione SnmpGetLastError può restituire uno degli errori seguenti.

Codice restituito Descrizione
SNMPAPI_NOT_INITIALIZED
La funzione SnmpStartup non è stata completata correttamente.
SNMPAPI_ALLOC_ERROR
Errore durante l'allocazione della memoria.
SNMPAPI_NOOP
Tutti i parametri di output sono NULL. L'operazione SNMP non è stata eseguita.
SNMPAPI_PDU_INVALID
Il tipo PDU non è valido.
SNMPAPI_OTHER_ERROR
Si è verificato un errore sconosciuto o non definito.

Commenti

Sono necessari tutti i parametri della funzione SnmpGetPduData . Tuttavia, tutti i parametri, ad eccezione del parametro PDU , possono essere NULL. Nei parametri passati dall'applicazione come NULL, la funzione SnmpGetPduData non restituisce un valore.

La funzione SnmpGetPduData restituisce sempre un handle a un nuovo oggetto elenco associazioni di variabili se il parametro varbindlist non è NULL. Inoltre, se il parametro PDU specifica un nuovo PDU, la funzione collega anche un handle alla nuova PDU.

Quando un'applicazione chiama SnmpGetPduData con un parametro varbindlist che non è NULL, ma il parametro PDU specifica un PDU esistente, la funzione restituisce un handle a un nuovo elenco di associazioni di variabili duplicate. La chiamata alla funzione non disturba l'handle collegato all'PDU esistente. Un PDU esistente è uno che un'applicazione crea con una chiamata alla funzione SnmpCreatePdu o una che l'applicazione riceve e quindi legge usando una chiamata a SnmpGetPduData.

Quando un'applicazione crea un PDU con SnmpCreatePdu o dopo che l'applicazione legge un PDU usando SnmpGetPduData, l'implementazione di Microsoft WinSNMP prevede che l'applicazione "conosce" i valori dei campi PDU. Se un'applicazione legge un PDU una seconda volta con SnmpGetPduData, la chiamata genera una copia dell'elenco di associazioni di variabili dell'PDU specificato. Questo tipo di chiamata a SnmpGetPduData duplica anche l'handle nel PDU.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winsnmp.h
Libreria Wsnmp32.lib
DLL Wsnmp32.dll

Vedi anche

SnmpCreatePdu

SnmpDuplicateVbl

Funzioni WinSNMP

Panoramica dell'API WinSNMP