Compartilhar via


Função SnmpCreatePdu (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 SnmpCreatePdu cria e inicializa uma PDU (unidade de dados de protocolo SNMP).

Sintaxe

HSNMP_PDU SNMPAPI_CALL SnmpCreatePdu(
  [in] HSNMP_SESSION session,
  [in] smiINT        PDU_type,
  [in] smiINT32      request_id,
  [in] smiINT        error_status,
  [in] smiINT        error_index,
  [in] HSNMP_VBL     varbindlist
);

Parâmetros

[in] session

Manipule para a sessão WinSNMP.

[in] PDU_type

Especifica um tipo de PDU que identifica a operação SNMP. Esse parâmetro pode ser NULL ou pode ser um dos valores a seguir. Se esse parâmetro for NULL, a implementação do Microsoft WinSNMP fornecerá o tipo de PDU padrão SNMP_PDU_GETNEXT. O único tipo de PDU de interceptação que você pode criar com uma chamada para a função SnmpCreatePdu é uma PDU de interceptação SNMPv2C.

Valor Significado
SNMP_PDU_GET
Pesquise e recupere um valor de uma variável SNMP especificada.
SNMP_PDU_GETNEXT
Pesquise e recupere o valor de uma variável SNMP sem saber o nome exato da variável.
SNMP_PDU_RESPONSE
Responder a um SNMP_PDU_GET ou uma solicitação de SNMP_PDU_GETNEXT.
SNMP_PDU_SET
Armazene um valor em uma variável SNMP especificada.
SNMP_PDU_GETBULK
Pesquise e recupere vários valores com uma única solicitação.
SNMP_PDU_TRAP
Alerta o sistema de gerenciamento para um evento em SNMPv2C.

[in] request_id

Especifica um valor numérico exclusivo fornecido pelo aplicativo WinSNMP para identificar a PDU. Se esse parâmetro for NULL, a implementação atribuirá um valor.

[in] error_status

Se o parâmetro PDU_type for igual a SNMP_PDU_GETBULK, esse parâmetro especificará um valor para o campo non_repeaters da PDU. Para outros tipos de PDU, esse parâmetro especifica um valor para o campo error_status da PDU. Este parâmetro pode ser NULL.

[in] error_index

Se o parâmetro PDU_type for igual a SNMP_PDU_GETBULK, esse parâmetro especificará um valor para o campo max_repetitions da PDU. Para outros tipos de PDU, esse parâmetro especifica um valor para o campo error_index da PDU. Este parâmetro pode ser NULL.

[in] varbindlist

Manipule para uma estrutura que representa uma lista de associações de variáveis SNMP. Este parâmetro pode ser NULL.

Retornar valor

Se a função for bem-sucedida, o valor retornado será o identificador para uma nova PDU SNMP.

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 identificador de sessão é inválido.
SNMPAPI_PDU_INVALID
O tipo de PDU é inválido.
SNMPAPI_VBL_INVALID
A lista de associações de variáveis é inválida.
SNMPAPI_OTHER_ERROR
Ocorreu um erro desconhecido ou indefinido.

Comentários

Um aplicativo WinSNMP deve criar uma PDU antes de chamar as funções SnmpSendMsg ou SnmpEncodeMsg .

Todos os parâmetros da função SnmpCreatePdu são necessários. No entanto, todos os parâmetros, exceto o parâmetro de sessão , podem ser NULL. Nessa instância, a nova PDU tem os seguintes valores padrão.

Campo Sumário
PDU_type SNMP_PDU_GETNEXT
request_id A implementação gera um valor numérico.
error_status SNMP_ERROR_NOERROR
error_index 0
varbindlist NULL
 

O aplicativo deve chamar a função SnmpFreePdu para liberar os recursos que a função SnmpCreatePdu aloca para a nova PDU.

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

SnmpFreePdu

SnmpSendMsg

Funções WinSNMP

Visão geral da API do WinSNMP