Compartilhar via


Função SnmpDecodeMsg (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 SnmpDecodeMsg decodifica uma mensagem SNMP codificada em seus componentes. Essa função executa a ação oposta da função WinSNMP SnmpEncodeMsg .

Sintaxe

SNMPAPI_STATUS SNMPAPI_CALL SnmpDecodeMsg(
  [in]  HSNMP_SESSION   session,
  [out] LPHSNMP_ENTITY  srcEntity,
  [out] LPHSNMP_ENTITY  dstEntity,
  [out] LPHSNMP_CONTEXT context,
  [out] LPHSNMP_PDU     pdu,
  [in]  smiLPCOCTETS    msgBufDesc
);

Parâmetros

[in] session

Manipule para a sessão WinSNMP. Este parâmetro é necessário. Para obter informações adicionais, consulte a seção Comentários a seguir.

[out] srcEntity

Ponteiro para uma variável que recebe um identificador para a entidade de gerenciamento de origem. Para obter mais informações, consulte a seção Comentários a seguir.

[out] dstEntity

Ponteiro para uma variável que recebe um identificador para a entidade de gerenciamento de destino. Para obter mais informações, consulte a seção Comentários a seguir.

[out] context

Ponteiro para uma variável que recebe um identificador para o contexto (um conjunto de recursos de objeto gerenciado) que a entidade de gerenciamento de destino controla.

[out] pdu

Ponteiro para uma variável que recebe um identificador para a PDU (unidade de dados de protocolo SNMP).

[in] msgBufDesc

Ponteiro para uma estrutura smiOCTETS que contém a mensagem SNMP a ser decodificada em seus componentes. O membro len da estrutura especifica o número máximo de bytes a serem processados; o membro ptr aponta para a mensagem SNMP codificada.

Retornar valor

Se a função for bem-sucedida, o valor retornado será o número de bytes decodificados. Esse valor pode ser igual ou menor que o membro len da estrutura smiOCTETS apontada pelo parâmetro msgBufDesc .

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 erros a seguir.

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_OUTPUT_TRUNCATED
O comprimento do buffer de saída é insuficiente. Nenhum parâmetro de saída foi criado.
SNMPAPI_MESSAGE_INVALID
O formato de mensagem SNMP no buffer indicado pelo parâmetro msgBufDesc é inválido. Nenhum parâmetro de saída foi criado.
SNMPAPI_OTHER_ERROR
Ocorreu um erro desconhecido ou indefinido.

Comentários

A implementação do Microsoft WinSNMP retorna um valor igual a zero nos parâmetros srcEntity e dstEntity quando um aplicativo envia uma mensagem SNMPv1 ou SNMPv2C para a função SnmpDecodeMsg . Isso ocorre porque o formato da mensagem não inclui as informações de endereço necessárias para criar recursos de entidade WinSNMP.

A implementação do Microsoft WinSNMP aloca recursos para o aplicativo WinSNMP como resultado de uma chamada bem-sucedida para a função SnmpDecodeMsg . É recomendável que o aplicativo WinSNMP libere recursos individuais com a função WinSNMP que corresponde ao recurso. Para obter informações adicionais, consulte Freeing WinSNMP Descriptors and WinSNMP Gerenciamento de Dados Concepts.

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

SnmpEncodeMsg

SnmpFreeContext

SnmpFreeEntity

SnmpFreePdu

SnmpSendMsg

Funções WinSNMP

Visão geral da API do WinSNMP

smiOCTETS