Função SnmpExtensionQuery (snmp.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.]
O serviço Microsoft SNMP chama a função SnmpExtensionQuery para resolve solicitações SNMP que contêm variáveis em uma ou mais subárvores MIB registradas do agente de extensão SNMP. Essa função é um elemento da API do Agente de Extensão SNMP.
Sintaxe
BOOL SNMP_FUNC_TYPE SnmpExtensionQuery(
[in] BYTE bPduType,
[in, out] SnmpVarBindList *pVarBindList,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
Parâmetros
[in] bPduType
Especifica o tipo de solicitação PDU SNMP versão 1 (SNMPv1). Esse parâmetro pode usar um dos valores a seguir.
Observe que os tipos de solicitação de PDU foram renomeados. Para obter informações adicionais, consulte Tipos de variável SNMP e Tipos de PDU de solicitação.
[in, out] pVarBindList
Ponteiro para a lista de associações de variáveis.
[out] pErrorStatus
Ponteiro para uma variável na qual o erro status resultado será retornado. Esse parâmetro pode ser um dos seguintes valores definidos pelo SNMPv1.
[out] pErrorIndex
Ponteiro para uma variável na qual o resultado do índice de erro será retornado.
Retornar valor
Se a função for bem-sucedida, o valor retornado será TRUE.
Se a função falhar, o valor retornado será FALSE.
Comentários
Quando o serviço SNMP recebe uma solicitação de PDU SNMP, ele chama a função SnmpExtensionQuery para processar a solicitação. O agente de extensão deve seguir as regras no RFC 1157 para resolve as associações de variável ou gerar um erro.
Se o agente de extensão não puder resolve as associações de variável em uma solicitação Get Next, ele deverá alterar o campo nome da estrutura SnmpVarBind para o valor do identificador de objeto imediatamente após o da exibição de subárvore MIB com suporte no momento. Por exemplo, se o agente de extensão der suporte à exibição ".1.3.6.1.4.1.77.1", uma solicitação Get Next em ".1.3.6.1.1. 4.1.77.1.5.1" resultaria em um campo de nome modificado de ".1.3.6.1.4.1.77.2". Isso sinaliza o serviço SNMP para continuar a tentativa de resolve as associações de variável com outros agentes de extensão.
É importante observar que o serviço SNMP e o agente de extensão podem precisar trocar memória alocada dinamicamente durante uma chamada para a função SnmpExtensionQuery . O serviço aloca dinamicamente o identificador de objeto em cada estrutura SnmpVarBind que ele passa para o agente de extensão. No entanto, o agente de extensão deve liberar essa memória para substituir o identificador de objeto ao processar uma solicitação Get Next . O agente de extensão aloca memória dinâmica para tipos de objeto de comprimento variável. O serviço SNMP libera essa memória depois que o objeto é colocado na PDU de resposta.
Para evitar vazamentos de memória e corrupção de heap, o serviço SNMP e o agente de extensão devem usar rotinas de alocação de memória que resolve para o mesmo heap. O agente de extensão deve usar a função SnmpUtilMemAlloc para alocar memória que ele passa para o serviço SNMP. Ele deve usar a função SnmpUtilMemFree para liberar a memória que o serviço passa de volta para o agente de extensão. Essas funções estão localizadas na biblioteca de vínculo dinâmico do utilitário SNMPAPI.DLL.
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 | snmp.h |