Função SnmpExtensionQueryEx (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 SnmpExtensionQueryEx para processar solicitações SNMP que especificam variáveis em uma ou mais subárvores MIB registradas por agentes de extensão SNMP. Essa função é um elemento da API do Agente de Extensão SNMP.
Sintaxe
BOOL SNMP_FUNC_TYPE SnmpExtensionQueryEx(
[in] UINT nRequestType,
[in] UINT nTransactionId,
[in, out] SnmpVarBindList *pVarBindList,
[in, out] AsnOctetString *pContextInfo,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
Parâmetros
[in] nRequestType
Especifica o tipo de operação que o serviço SNMP está solicitando que o agente de extensão execute. Esse parâmetro pode usar um dos valores a seguir.
Para obter informações adicionais sobre os tipos de solicitação SET, ou seja, aqueles que começam com SNMP_EXTENSION_SET_, consulte a seção Comentários a seguir.
[in] nTransactionId
Especifica uma variável DWORD que é o identificador exclusivo da PDU de solicitação SNMP de entrada. O agente de extensão pode usar esse valor para correlacionar várias chamadas pelo serviço SNMP que envolvem a mesma PDU.
[in, out] pVarBindList
Ponteiro para a lista de associação de variáveis que contém as variáveis de interesse.
[in, out] pContextInfo
Ponteiro para uma cadeia de caracteres de octeto que contém informações de contexto definidas pelo usuário.
O agente de extensão pode usar esse parâmetro para armazenar informações de contexto usadas durante operações set de SNMP multifase. O agente de extensão deve liberar recursos associados a esse parâmetro durante a solicitação CLEANUP. O serviço SNMP não libera nenhum recurso associado a esse parâmetro. Para obter informações adicionais, consulte a seção Comentários a seguir.
[out] pErrorStatus
Ponteiro para uma variável para receber o erro status resultado. Esse parâmetro pode ser um dos seguintes valores definidos pelo SNMPv2C.
[out] pErrorIndex
Ponteiro para uma variável para receber o resultado do índice de erro.
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
O serviço SNMP chama a função SnmpExtensionQueryEx várias vezes para processar uma solicitação SET SNMP de entrada. O serviço pode chamar SnmpExtensionQueryEx durante a fase de solicitação TEST, a fase de solicitação COMMIT, a fase de solicitação UNDO e a fase de solicitação CLEANUP.
Solicitação TEST
O serviço SNMP processa um tipo de solicitação SET SNMP chamando primeiro a função SnmpExtensionQueryEx com um dwRequestType de SNMP_EXTENSION_SET_TEST. O serviço chama cada agente de extensão responsável pelas associações de variáveis na solicitação. Cada agente de extensão deve validar as variáveis na lista de associação de variáveis. Opcionalmente, eles podem armazenar todas as informações de contexto necessárias para as solicitações a seguir na variável apontada pelo parâmetro pContextInfo .Se a solicitação TEST falhar, o serviço iniciará uma solicitação CLEANUP. O serviço chama cada agente de extensão que anteriormente retornou TRUE para a solicitação TEST novamente com a função SnmpExtensionQueryEx . O serviço chama cada agente de extensão usando o SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Solicitação COMMIT
Se todos os agentes de extensão retornarem TRUE à solicitação TEST, o serviço SNMP chamará cada agente de extensão com a função SnmpExtensionQueryEx , usando o SNMP_EXTENSION_SET_COMMIT dwRequestType. O serviço retorna para as informações de contexto do agente de extensão que o agente de extensão passou para o serviço. Essas são as informações de contexto que o agente de extensão passou no parâmetro pContextInfo durante a solicitação TEST. O agente de extensão pode usar as informações de contexto para atualizar os valores das variáveis especificadas de maneira específica à instrumentação.Se o agente de extensão der suporte ao processamento de reversão, ele poderá atualizar as informações de contexto no parâmetro pContextInfo no momento. O serviço SNMP passa as informações de volta para o agente de extensão durante a solicitação UNDO.
Se todos os agentes de extensão retornarem TRUE à solicitação COMMIT, o serviço chamará cada agente de extensão com a função SnmpExtensionQueryEx , usando o SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Se algum agente de extensão falhar na solicitação COMMIT, o serviço também iniciará uma solicitação CLEANUP. O serviço chama cada agente de extensão que anteriormente retornava TRUE para a solicitação COMMIT novamente com a função SnmpExtensionQueryEx . O serviço chama cada agente de extensão usando o SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Solicitação CLEANUP
O serviço retorna ao agente de extensão as informações de contexto passadas no parâmetro pContextInfo durante a solicitação TEST ou COMMIT. O agente de extensão deve liberar os recursos associados ao parâmetro no momento.Solicitação UNDO
Se qualquer agente de extensão retornar FALSE para a solicitação COMMIT, o serviço SNMP encerrará a solicitação COMMIT. O serviço chama cada agente de extensão que retornou TRUE para a solicitação COMMIT com um dwRequestType de SNMP_EXTENSION_SET_UNDO. Isso sinaliza aos agentes de extensão que a solicitação COMMIT falhou e eles devem iniciar o processamento de reversão.Os agentes de extensão devem tentar redefinir os valores das variáveis de interesse, de volta aos valores que eram antes da solicitação COMMIT falhar. Para fazer isso, os agentes de extensão usam as informações de contexto retornadas no parâmetro pContextInfo durante a solicitação COMMIT.
Se qualquer agente de extensão retornar FALSE para a solicitação UNDO, toda a operação SET falhará com o código de erro SNMP_ERRORSTATUS_UNDOFAILED. Se todos os agentes de extensão retornarem TRUE à solicitação UNDO, a operação SET do SNMP falhará com o código de erro definido pelo agente de extensão que falhou na solicitação COMMIT.
Após a solicitação UNDO, o serviço sempre chama cada agente de extensão com a função SnmpExtensionQueryEx , usando o SNMP_EXTENSION_SET_CLEANUP dwRequestType.
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 |