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 |
---|---|
|
La funzione SnmpStartup non è stata completata correttamente. |
|
Errore durante l'allocazione della memoria. |
|
Il parametro di sessione non è valido. |
|
Al momento la sessione specificata non contiene messaggi nella relativa coda. |
|
Il livello di trasporto di rete non è stato inizializzato. |
|
Il livello trasporto di rete non supporta il protocollo SNMP. |
|
Il sottosistema di rete non è riuscito. |
|
Si è verificato un errore di risorsa nel livello trasporto di rete. |
|
L'entità specificata dal parametro dstEntity non è disponibile. |
|
L'entità specificata dal parametro srcEntity non è stata inizializzata. |
|
Una chiamata di funzione del livello di trasporto di rete ha ricevuto un parametro di input non valido. |
|
Il PDU è troppo grande per il livello di trasporto di rete da inviare o ricevere. |
|
Si è verificato un errore del livello di trasporto di rete non definito. |
|
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 |