Funzione SnmpSendMsg (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.

Un'applicazione WinSNMP chiama la funzione SnmpSendMsg per richiedere che l'implementazione di Microsoft WinSNMP trasmetta un'unità dati del protocollo SNMP (PDU), sotto forma di messaggio SNMP. L'applicazione WinSNMP specifica un'entità di origine, un'entità di destinazione e un contesto per la richiesta.

Se un'applicazione WinSNMP prevede un PDU in risposta a una richiesta SnmpSendMsg , deve recuperare il PDU. A tale scopo, l'applicazione deve chiamare la funzione SnmpRecvMsg usando l'handle di sessione restituito da SnmpCreateSession.

Sintassi

SNMPAPI_STATUS SNMPAPI_CALL SnmpSendMsg(
  [in] HSNMP_SESSION session,
  [in] HSNMP_ENTITY  srcEntity,
  [in] HSNMP_ENTITY  dstEntity,
  [in] HSNMP_CONTEXT context,
  [in] HSNMP_PDU     PDU
);

Parametri

[in] session

Gestire la sessione WinSNMP.

[in] srcEntity

Gestire l'entità di gestione che avvia la richiesta di invio del messaggio SNMP.

[in] dstEntity

Gestire l'entità di destinazione che risponderà alla richiesta SNMP.

[in] context

Gestire nel contesto , ovvero un set di risorse oggetto gestito, controllato dall'entità di gestione di destinazione.

[in] PDU

Handle per l'unità dati del protocollo che contiene la richiesta di operazione SNMP.

Valore restituito

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

Se la funzione ha esito negativo, il valore restituito viene SNMPAPI_FAILURE. 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_ENTITY_INVALID
Uno o entrambi i parametri dell'entità non sono validi.
SNMPAPI_CONTEXT_INVALID
Il parametro di contesto non è valido.
SNMPAPI_PDU_INVALID
Il parametro PDU non è valido.
SNMPAPI_OPERATION_INVALID
L'operazione specificata nel campo PDU_type del PDU non è appropriata per l'entità di destinazione. Per ulteriori informazioni, vedere la sezione Osservazioni successiva.
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_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 SnmpSendMsg viene eseguita in modo asincrono e pertanto restituisce immediatamente.

L'implementazione notifica all'applicazione WinSNMP quando la richiesta asincrona viene completata. L'implementazione esegue questa operazione inviando un messaggio di notifica alla finestra specificata rispettivamente dai parametri wMsg e hWnd nella chiamata iniziale a SnmpCreateSession per la sessione. Quando la finestra dell'applicazione riceve il messaggio di notifica, l'applicazione WinSNMP deve recuperare il PDU in ingresso. L'applicazione esegue questa operazione chiamando la funzione SnmpRecvMsg con l'handle di sessione restituito da SnmpCreateSession.

Quando un'applicazione WinSNMP chiama la funzione SnmpSendMsg , l'implementazione determina il protocollo di trasporto di rete e il framework della versione SNMP da usare per completare la richiesta di trasmissione. L'implementazione determina questa situazione associandone le funzionalità alle proprietà associate alla sessione di richiesta e all'entità di gestione di destinazione. Queste informazioni sono disponibili dai valori nel database dell'implementazione.

Se un'applicazione WinSNMP richiede funzionalità disponibili nel framework SNMP versione 2C (SNMPv2C), ma l'entità di destinazione usa il framework SNMP versione 1 (SNMPv1), l'implementazione tenta di convertire la richiesta in SNMPv1. A tale scopo, l'implementazione usa le procedure definite in RFC1908, "Coesistenza tra la versione 1 e la versione 2 del framework di gestione della rete standard Internet". Se la conversione non è possibile, SnmpSendMsg ha esito negativo con il codice di errore esteso SNMPAPI_OPERATION_INVALID. Questa situazione si verifica, ad esempio, quando un'applicazione tenta di inviare un PDU con il tipo di dati SNMP_PDU_InformRequest a un'entità di destinazione SNMPv1.

Per altre informazioni, vedere Attività di programmazione WinSNMP e Informazioni sui messaggi SNMP.

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

SnmpCreateSession

SnmpRecvMsg

Funzioni WinSNMP

Panoramica dell'API WinSNMP