Função SnmpRecvMsg (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.]
A função WinSNMP SnmpRecvMsg recupera os resultados de uma solicitação assíncrona concluída enviada por uma chamada para a função SnmpSendMsg , na forma de uma mensagem SNMP. A função SnmpRecvMsg também retorna dados de interceptação e notificações pendentes registrados para uma sessão WinSNMP.
Sintaxe
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
);
Parâmetros
[in] session
Manipule para a sessão WinSNMP.
[out] srcEntity
Ponteiro para uma variável que recebe um identificador para a entidade que envia a mensagem. Observe que o parâmetro srcEntity para a função SnmpRegister especifica um identificador para a entidade de gerenciamento que se registra para notificação de interceptação.
[out] dstEntity
Ponteiro para uma variável que recebe um identificador para a entidade que recebe a mensagem. Observe que o parâmetro dstEntity para a função SnmpRegister especifica um identificador para a entidade de gerenciamento que envia armadilhas.
[out] context
Ponteiro para uma variável que recebe um identificador para o contexto, que é um conjunto de recursos de objeto gerenciado. A entidade especificada pelo parâmetro srcEntity emite a mensagem desse contexto.
[out] PDU
Ponteiro para uma variável que recebe um identificador para o componente PDU (unidade de dados de protocolo) da mensagem.
Retornar valor
Se a função for bem-sucedida, o valor retornado será SNMPAPI_SUCCESS e os parâmetros de saída conterão os valores indicados nas descrições de parâmetro anteriores.
Se a função falhar, o valor retornado será SNMPAPI_FAILURE. Se a função falhar com um código de erro estendido que indica um erro de camada de transporte de rede, ou seja, um que começa com SNMPAPI_TL_, os parâmetros de saída também contêm os valores indicados anteriormente para permitir que o aplicativo WinSNMP se recupere normalmente.
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. |
|
A sessão especificada não tem mensagens em sua fila no momento. |
|
A camada de transporte de rede não foi inicializada. |
|
A camada de transporte de rede não dá suporte ao protocolo SNMP. |
|
Falha no subsistema de rede. |
|
Ocorreu um erro de recurso na camada de transporte de rede. |
|
A entidade especificada pelo parâmetro dstEntity não está disponível. |
|
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 indefinida. |
|
Ocorreu um erro desconhecido ou indefinido. |
Para obter informações adicionais, consulte Erros de transporte de rede.
Comentários
A função SnmpCreateSession passa um identificador de janela do aplicativo e o identificador de mensagem de notificação para a implementação do Microsoft WinSNMP. Quando a janela do aplicativo recebe a mensagem de notificação especificada pelo parâmetro wMsg , o aplicativo WinSNMP deve chamar a função SnmpRecvMsg com o identificador de sessão retornado por SnmpCreateSession para recuperar uma PDU (unidade de dados de protocolo de entrada). Para obter informações adicionais, consulte Sobre mensagens SNMP.
A função SnmpRecvMsg cria uma instância de quatro objetos e aloca seus recursos: dois identificadores de entidade, um identificador de contexto e um identificador de PDU. O identificador para o componente de lista de associações de variáveis da PDU retornada não é instanciado até que o aplicativo WinSNMP chame a função SnmpGetPduData . Quando ele não precisa mais dos recursos retornados por SnmpRecvMsg , o aplicativo WinSNMP deve liberar os recursos individuais usando a função WinSNMP que corresponde ao recurso. Para obter informações adicionais, consulte SnmpFreePdu, SnmpFreeEntity e SnmpFreeContext.
Quando a implementação recebe armadilhas de uma entidade que opera sob a estrutura SNMPv1 (SNMPv1), ela converte as armadilhas para o formato SNMPv2C (versão 2C do SNMP). Portanto, quando SnmpRecvMsg entrega uma armadilha, ele está sempre no formato SNMPv2C. Para obter informações adicionais, consulte Traduzindo armadilhas de SNMPv1 para tarefas de programação SNMPv2C e WinSNMP.
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 |