Share via


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
SNMPAPI_NOT_INITIALIZED
A função SnmpStartup não foi concluída com êxito.
SNMPAPI_ALLOC_ERROR
Ocorreu um erro durante a alocação de memória.
SNMPAPI_SESSION_INVALID
O parâmetro de sessão é inválido.
SNMPAPI_ENTITY_INVALID
Um ou ambos os parâmetros de entidade são inválidos.
SNMPAPI_CONTEXT_INVALID
O parâmetro de contexto é inválido.
SNMPAPI_PDU_INVALID
O parâmetro PDU é inválido.
SNMPAPI_OPERATION_INVALID
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.
SNMPAPI_TL_NOT_INITIALIZED
A camada de transporte de rede não foi inicializada.
SNMPAPI_TL_NOT_SUPPORTED
A camada de transporte de rede não dá suporte ao protocolo SNMP.
SNMPAPI_TL_NOT_AVAILABLE
O subsistema de rede falhou.
SNMPAPI_TL_RESOURCE_ERROR
Ocorreu um erro de recurso na camada de transporte de rede.
SNMPAPI_TL_SRC_INVALID
A entidade especificada pelo parâmetro srcEntity não foi inicializada.
SNMPAPI_TL_INVALID_PARAM
Uma chamada de função de camada de transporte de rede recebeu um parâmetro de entrada inválido.
SNMPAPI_TL_PDU_TOO_BIG
A PDU é muito grande para a camada de transporte de rede enviar ou receber.
SNMPAPI_TL_OTHER
Ocorreu um erro de camada de transporte de rede indefinido.
SNMPAPI_OTHER_ERROR
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

Confira também

SnmpCreateSession

SnmpRecvMsg

Funções WinSNMP

Visão geral da API do WinSNMP