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 |
---|---|
|
La funzione SnmpStartup non è stata completata correttamente. |
|
Errore durante l'allocazione della memoria. |
|
Il parametro di sessione non è valido. |
|
Uno o entrambi i parametri dell'entità non sono validi. |
|
Il parametro di contesto non è valido. |
|
Il parametro PDU non è valido. |
|
L'operazione specificata nel campo PDU_type del PDU non è appropriata per l'entità di destinazione. Per ulteriori informazioni, vedere la sezione Osservazioni successiva. |
|
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 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 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 |