Função SnmpSendMsg (winsnmp.h)
[O SNMP está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele poderá ser alterado ou ficar indisponível em versões subsequentes. Em vez disso, use o Gerenciamento Remoto do Windows, que é a implementação da Microsoft do WS-Man.]
Um aplicativo WinSNMP chama a função SnmpSendMsg para solicitar que a implementação do Microsoft WinSNMP transmita uma PDU (unidade de dados de protocolo SNMP), na forma de uma mensagem SNMP. O aplicativo WinSNMP especifica uma entidade de origem, uma entidade de destino e um contexto para a solicitação.
Se um aplicativo WinSNMP espera uma PDU em resposta a uma solicitação SnmpSendMsg , ele deve recuperar a PDU. Para fazer isso, o aplicativo deve chamar a função SnmpRecvMsg usando o identificador de sessão retornado por SnmpCreateSession.
Sintaxe
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
);
Parâmetros
[in] session
Manipule para a sessão WinSNMP.
[in] srcEntity
Manipule para a entidade de gerenciamento que inicia a solicitação para enviar a mensagem SNMP.
[in] dstEntity
Identificador para a entidade de destino que responderá à solicitação SNMP.
[in] context
Manipule para o contexto (um conjunto de recursos de objeto gerenciado) que a entidade de gerenciamento de destino controla.
[in] PDU
Manipule para a unidade de dados de protocolo que contém a solicitação de operação SNMP.
Retornar valor
Se a função for bem-sucedida, o valor retornado será SNMPAPI_SUCCESS.
Se a função falhar, o valor retornado será SNMPAPI_FAILURE. Para obter informações de erro estendidas, chame SnmpGetLastError. A função SnmpGetLastError pode retornar um dos seguintes erros de camada de transporte de rede ou WinSNMP.
Código de retorno | Descrição |
---|---|
|
A função SnmpStartup não foi concluída com êxito. |
|
Ocorreu um erro durante a alocação de memória. |
|
O parâmetro de sessão é inválido. |
|
Um ou ambos os parâmetros de entidade são inválidos. |
|
O parâmetro de contexto é inválido. |
|
O parâmetro PDU é inválido. |
|
A operação especificada no campo PDU_type da PDU é inadequada para a entidade de destino. Para obter mais informações, consulte a seção Comentários a seguir. |
|
A camada de transporte de rede não foi inicializada. |
|
A camada de transporte de rede não dá suporte ao protocolo SNMP. |
|
O subsistema de rede falhou. |
|
Ocorreu um erro de recurso na camada de transporte de rede. |
|
A entidade especificada pelo parâmetro srcEntity não foi inicializada. |
|
Uma chamada de função de camada de transporte de rede recebeu um parâmetro de entrada inválido. |
|
A PDU é muito grande para a camada de transporte de rede enviar ou receber. |
|
Ocorreu um erro de camada de transporte de rede indefinido. |
|
Ocorreu um erro desconhecido ou indefinido. |
Para obter informações adicionais, consulte Erros de transporte de rede.
Comentários
A função SnmpSendMsg é executada de forma assíncrona e, portanto, retorna imediatamente.
A implementação notifica o aplicativo WinSNMP quando a solicitação assíncrona é concluída. A implementação faz isso enviando uma mensagem de notificação para a janela especificada pelos parâmetros wMsg e hWnd , respectivamente, na chamada inicial para SnmpCreateSession para a sessão. Quando a janela do aplicativo recebe a mensagem de notificação, o aplicativo WinSNMP deve recuperar a PDU de entrada. O aplicativo faz isso chamando a função SnmpRecvMsg com o identificador de sessão retornado por SnmpCreateSession.
Quando um aplicativo WinSNMP chama a função SnmpSendMsg , a implementação determina qual protocolo de transporte de rede e estrutura de versão SNMP usar para concluir a solicitação de transmissão. A implementação determina isso correspondendo seus recursos com as propriedades associadas à sessão solicitante e à entidade de gerenciamento de destino. Essas informações estão disponíveis em valores no banco de dados da implementação.
Se um aplicativo WinSNMP solicitar a funcionalidade disponível na estrutura SNMP versão 2C (SNMPv2C), mas a entidade de destino usar a estrutura SNMP versão 1 (SNMPv1), a implementação tentará converter a solicitação para SNMPv1. Para fazer isso, a implementação usa os procedimentos definidos em RFC1908, "Coexistência entre a versão 1 e a versão 2 da Estrutura de Gerenciamento de Rede padrão da Internet". Se a tradução não for possível, SnmpSendMsg falhará com o código de erro estendido SNMPAPI_OPERATION_INVALID. Essa situação ocorre, por exemplo, quando um aplicativo tenta enviar uma PDU com o tipo de dados SNMP_PDU_InformRequest para uma entidade de destino SNMPv1.
Para obter informações adicionais, consulte Tarefas de programação WinSNMP e Sobre mensagens SNMP.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winsnmp.h |
Biblioteca | Wsnmp32.lib |
DLL | Wsnmp32.dll |