Función SnmpExtensionQuery (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 SnmpExtensionQuery para resolver las solicitudes SNMP que contienen variables dentro de uno o varios de los subárboles MIB registrados del agente de extensión SNMP. Esta función es un elemento de la API del Agente de extensión SNMP.
Sintaxis
BOOL SNMP_FUNC_TYPE SnmpExtensionQuery(
[in] BYTE bPduType,
[in, out] SnmpVarBindList *pVarBindList,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
Parámetros
[in] bPduType
Especifica el tipo de solicitud PDU de la versión 1 (SNMPv1) de SNMP. Este parámetro puede ser uno de los valores siguientes.
Tenga en cuenta que se ha cambiado el nombre de los tipos de solicitud PDU. Para obtener más información, vea Tipos de variables SNMP y Solicitar tipos PDU.
[in, out] pVarBindList
Puntero a la lista de enlaces de variables.
[out] pErrorStatus
Puntero a una variable en la que se devolverá el resultado del estado del error. Este parámetro puede ser uno de los siguientes valores definidos por SNMPv1.
[out] pErrorIndex
Puntero a una variable en la que se devolverá 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
Cuando el servicio SNMP recibe una solicitud PDU snmp, llama a la función SnmpExtensionQuery para procesar la solicitud. El agente de extensión debe seguir las reglas de RFC 1157 para resolver los enlaces de variables o generar un error.
Si el agente de extensión no puede resolver los enlaces de variables en una solicitud Get Next , debe cambiar el campo de nombre de la estructura SnmpVarBind al valor del identificador de objeto inmediatamente después del de la vista de subárbol MIB admitida actualmente. Por ejemplo, si el agente de extensión admite la vista ".1.3.6.1.4.1.77.1", una solicitud Get Next en ".1.3.6.1.4.1.77.1.5.1" daría como resultado un campo de nombre modificado de ".1.3.6.1.4.1.77.2". Esto indica al servicio SNMP que continúe el intento de resolver los enlaces de variables con otros agentes de extensión.
Es importante tener en cuenta que el servicio SNMP y el agente de extensión pueden necesitar intercambiar memoria asignada dinámicamente durante una llamada a la función SnmpExtensionQuery . El servicio asigna dinámicamente el identificador de objeto en cada estructura SnmpVarBind que pasa al agente de extensión. Sin embargo, el agente de extensión debe liberar esta memoria para reemplazar el identificador de objeto cuando procesa una solicitud Get Next . El agente de extensión asigna memoria dinámica para los tipos de objeto de longitud variable. El servicio SNMP libera esta memoria después de colocar el objeto en la PDU de respuesta.
Para evitar daños en el montón y pérdidas de memoria, tanto el servicio SNMP como el agente de extensión deben usar rutinas de asignación de memoria que se resuelvan en el mismo montón. El agente de extensión debe usar la función SnmpUtilMemAlloc para asignar memoria que pasa al servicio SNMP. Debe usar la función SnmpUtilMemFree para liberar la memoria que el servicio pasa al agente de extensión. Estas funciones se encuentran en la biblioteca de vínculos dinámicos de la utilidad SNMPAPI.DLL.
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)