Funzione SnmpRecvMsg (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 SnmpRecvMsg WinSNMP recupera i risultati di una richiesta asincrona completata inviata da una chiamata alla funzione SnmpSendMsg , sotto forma di messaggio SNMP. La funzione SnmpRecvMsg restituisce anche dati trap in sospeso e notifiche registrati per una sessione WinSNMP.

Sintassi

SNMPAPI_STATUS SNMPAPI_CALL SnmpRecvMsg(
  [in]  HSNMP_SESSION   session,
  [out] LPHSNMP_ENTITY  srcEntity,
  [out] LPHSNMP_ENTITY  dstEntity,
  [out] LPHSNMP_CONTEXT context,
  [out] LPHSNMP_PDU     PDU
);

Parametri

[in] session

Gestire la sessione WinSNMP.

[out] srcEntity

Puntatore a una variabile che riceve un handle all'entità che invia il messaggio. Si noti che il parametro srcEntity per la funzione SnmpRegister specifica un handle per l'entità di gestione che esegue la registrazione per la notifica trap.

[out] dstEntity

Puntatore a una variabile che riceve un handle all'entità che riceve il messaggio. Si noti che il parametro dstEntity per la funzione SnmpRegister specifica un handle per l'entità di gestione che invia trap.

[out] context

Puntatore a una variabile che riceve un handle per il contesto, ovvero un set di risorse dell'oggetto gestito. L'entità specificata dal parametro srcEntity rilascia il messaggio da questo contesto.

[out] PDU

Puntatore a una variabile che riceve un handle al componente PDU (Protocol Data Unit) del messaggio.

Valore restituito

Se la funzione ha esito positivo, il valore restituito viene SNMPAPI_SUCCESS e i parametri di output contengono i valori indicati nelle descrizioni dei parametri precedenti.

Se la funzione ha esito negativo, il valore restituito viene SNMPAPI_FAILURE. Se la funzione ha esito negativo con un codice di errore esteso che indica un errore del livello di trasporto di rete, ovvero uno che inizia con SNMPAPI_TL_, i parametri di output contengono anche i valori indicati in precedenza per consentire all'applicazione WinSNMP di ripristinare normalmente.

Per ottenere informazioni estese sull'errore, chiamare SnmpGetLastError. La funzione SnmpGetLastError può restituire uno dei seguenti errori del livello di trasporto di rete o WinSNMP.

Codice restituito Descrizione
SNMPAPI_NOT_INITIALIZED
La funzione SnmpStartup non è stata completata correttamente.
SNMPAPI_ALLOC_ERROR
Errore durante l'allocazione della memoria.
SNMPAPI_SESSION_INVALID
Il parametro di sessione non è valido.
SNMPAPI_NOOP
Al momento la sessione specificata non contiene messaggi nella relativa coda.
SNMPAPI_TL_NOT_INITIALIZED
Il livello di trasporto di rete non è stato inizializzato.
SNMPAPI_TL_NOT_SUPPORTED
Il livello trasporto di rete non supporta il protocollo SNMP.
SNMPAPI_TL_NOT_AVAILABLE
Il sottosistema di rete non è riuscito.
SNMPAPI_TL_RESOURCE_ERROR
Si è verificato un errore di risorsa nel livello trasporto di rete.
SNMPAPI_TL_UNDELIVERABLE
L'entità specificata dal parametro dstEntity non è disponibile.
SNMPAPI_TL_SRC_INVALID
L'entità specificata dal parametro srcEntity non è stata inizializzata.
SNMPAPI_TL_INVALID_PARAM
Una chiamata di funzione del livello di trasporto di rete ha ricevuto un parametro di input non valido.
SNMPAPI_TL_PDU_TOO_BIG
Il PDU è troppo grande per il livello di trasporto di rete da inviare o ricevere.
SNMPAPI_TL_OTHER
Si è verificato un errore del livello di trasporto di rete non definito.
SNMPAPI_OTHER_ERROR
Si è verificato un errore sconosciuto o non definito.
 

Per altre informazioni, vedere Errori di trasporto di rete.

Commenti

La funzione SnmpCreateSession passa un handle di finestra dell'applicazione e un identificatore del messaggio di notifica all'implementazione di Microsoft WinSNMP. Quando la finestra dell'applicazione riceve il messaggio di notifica specificato dal parametro wMsg , l'applicazione WinSNMP deve chiamare la funzione SnmpRecvMsg con l'handle di sessione restituito da SnmpCreateSession per recuperare un'unità dati del protocollo in ingresso (PDU). Per altre informazioni, vedere Informazioni sui messaggi SNMP.

La funzione SnmpRecvMsg crea un'istanza di quattro oggetti e alloca le relative risorse: due handle di entità, un handle di contesto e un handle PDU. L'handle per il componente elenco associazioni di variabili del PDU restituito non viene creata un'istanza finché l'applicazione WinSNMP non chiama la funzione SnmpGetPduData . Quando le risorse SnmpRecvMsg non sono più necessarie, l'applicazione WinSNMP deve liberare le singole risorse usando la funzione WinSNMP che corrisponde alla risorsa. Per altre informazioni, vedere SnmpFreePdu, SnmpFreeEntity e SnmpFreeContext.

Quando l'implementazione riceve trap da un'entità che opera nel framework SNMP versione 1 (SNMPv1), converte i trap nel formato SNMP versione 2C (SNMPv2C). Pertanto, quando SnmpRecvMsg fornisce una trap, è sempre nel formato SNMPv2C. Per altre informazioni, vedere Conversione di trap da SNMPv1 a SNMPv2C e attività di programmazione WinSNMP.

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 winsnmp.h
Libreria Wsnmp32.lib
DLL Wsnmp32.dll

Vedi anche

SnmpFreeContext

SnmpFreeEntity

SnmpFreePdu

SnmpGetPduData

SnmpRegister

SnmpSendMsg

Funzioni WinSNMP

Panoramica dell'API WinSNMP