Función SnmpExtensionQueryEx (snmp.h)
[SNMP está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. En versiones posteriores podría modificarse o no estar disponible. En su lugar, use administración remota de Windows, que es la implementación de Microsoft de WS-Man.]
El servicio SNMP de Microsoft llama a la función SnmpExtensionQueryEx para procesar solicitudes SNMP que especifican variables en uno o varios subárboles MIB registrados por agentes de extensión SNMP. Esta función es un elemento de la API del Agente de extensión SNMP.
Sintaxis
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 el tipo de operación que el servicio SNMP solicita al agente de extensión que realice. Este parámetro puede ser uno de los valores siguientes.
Para obtener información adicional sobre los tipos de solicitud SET, es decir, los que comienzan por SNMP_EXTENSION_SET_, consulte la sección Comentarios siguientes.
[in] nTransactionId
Especifica una variable DWORD que es el identificador único de la solicitud SNMP entrante PDU. El agente de extensión puede usar este valor para correlacionar varias llamadas por el servicio SNMP que implican la misma PDU.
[in, out] pVarBindList
Puntero a la lista de enlaces de variables que contiene las variables de interés.
[in, out] pContextInfo
Puntero a una cadena de octetos que contiene información de contexto definida por el usuario.
El agente de extensión puede usar este parámetro para almacenar la información de contexto utilizada durante las operaciones SET de SNMP multifase. El agente de extensión debe liberar los recursos asociados a este parámetro durante la solicitud CLEANUP. El servicio SNMP no libera ningún recurso asociado a este parámetro. Para obtener más información, vea la siguiente sección Comentarios.
[out] pErrorStatus
Puntero a una variable para recibir el resultado del estado de error. Este parámetro puede ser uno de los siguientes valores definidos por SNMPv2C.
[out] pErrorIndex
Puntero a una variable para recibir el resultado del índice de error.
Valor devuelto
Si la función se realiza correctamente, el valor devuelto es TRUE.
Si se produce un error en la función, el valor devuelto es FALSE.
Comentarios
El servicio SNMP llama a la función SnmpExtensionQueryEx varias veces para procesar una solicitud SET snmp entrante. El servicio puede llamar a SnmpExtensionQueryEx durante la fase de solicitud TEST, la fase de solicitud COMMIT, la fase de solicitud UNDO y la fase de solicitud CLEANUP.
Solicitud TEST
El servicio SNMP procesa un tipo de solicitud SET snmp llamando primero a la función SnmpExtensionQueryEx con dwRequestType de SNMP_EXTENSION_SET_TEST. El servicio llama a cada agente de extensión responsable de los enlaces de variables de la solicitud. Cada agente de extensión debe validar las variables de la lista de enlaces de variables. Opcionalmente, pueden almacenar cualquier información de contexto necesaria para las siguientes solicitudes en la variable a la que apunta el parámetro pContextInfo .Si se produce un error en la solicitud TEST, el servicio inicia una solicitud CLEANUP. El servicio llama a cada agente de extensión que devolvió previamente TRUE a la solicitud TEST de nuevo con la función SnmpExtensionQueryEx . El servicio llama a cada agente de extensión mediante el SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Solicitud COMMIT
Si todos los agentes de extensión devuelven TRUE a la solicitud TEST, el servicio SNMP llama a cada agente de extensión con la función SnmpExtensionQueryEx mediante el SNMP_EXTENSION_SET_COMMIT dwRequestType. El servicio vuelve a la información de contexto del agente de extensión que el agente de extensión pasó al servicio. Esta es la información de contexto que el agente de extensión pasó en el parámetro pContextInfo durante la solicitud TEST. El agente de extensión puede usar la información de contexto para actualizar los valores de las variables especificadas de forma específica de instrumentación.Si el agente de extensión admite el procesamiento de reversión, puede actualizar la información de contexto en el parámetro pContextInfo en este momento. El servicio SNMP devuelve la información al agente de extensión durante la solicitud UNDO.
Si todos los agentes de extensión devuelven TRUE a la solicitud COMMIT, el servicio llama a cada agente de extensión con la función SnmpExtensionQueryEx mediante el SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Si algún agente de extensión produce un error en la solicitud COMMIT, el servicio también inicia una solicitud CLEANUP. El servicio llama a cada agente de extensión que devolvió previamente TRUE a la solicitud COMMIT de nuevo con la función SnmpExtensionQueryEx . El servicio llama a cada agente de extensión mediante el SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Solicitud CLEANUP
El servicio devuelve al agente de extensión la información de contexto pasada en el parámetro pContextInfo durante la solicitud TEST o COMMIT. El agente de extensión debe liberar los recursos asociados al parámetro en este momento.Solicitud UNDO
Si algún agente de extensión devuelve FALSE a la solicitud COMMIT, el servicio SNMP finaliza la solicitud COMMIT. El servicio llama a cada agente de extensión que devolvió TRUE a la solicitud COMMIT con un dwRequestType de SNMP_EXTENSION_SET_UNDO. Esto indica a los agentes de extensión que se produjo un error en la solicitud COMMIT y deben iniciar el procesamiento de reversión.Los agentes de extensión deben intentar restablecer los valores de las variables de interés, de vuelta a los valores que estaban antes de que se produzca un error en la solicitud COMMIT. Para ello, los agentes de extensión usan la información de contexto devuelta en el parámetro pContextInfo durante la solicitud COMMIT.
Si algún agente de extensión devuelve FALSE a la solicitud UNDO, se produce un error en toda la operación SET con el código de error SNMP_ERRORSTATUS_UNDOFAILED. Si todos los agentes de extensión devuelven TRUE a la solicitud UNDO, se produce un error en la operación SNMP SET con el código de error establecido por el agente de extensión que produjo un error en la solicitud COMMIT.
Después de que el UNDO solicite al servicio siempre llama a cada agente de extensión con la función SnmpExtensionQueryEx , mediante el SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | snmp.h |
Consulte también
Introducción al Protocolo simple de administración de redes (SNMP)