Compartir a través de


Función SnmpGetPduData (winsnmp.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.]

La función SnmpGetPduData de WinSNMP devuelve campos de datos seleccionados de una unidad de datos del protocolo SNMP (PDU) especificada.

Sintaxis

SNMPAPI_STATUS SNMPAPI_CALL SnmpGetPduData(
  [in]  HSNMP_PDU   PDU,
  [out] smiLPINT    PDU_type,
  [out] smiLPINT32  request_id,
  [out] smiLPINT    error_status,
  [out] smiLPINT    error_index,
  [out] LPHSNMP_VBL varbindlist
);

Parámetros

[in] PDU

Identificador de PDU snmp.

[out] PDU_type

Puntero a una variable que recibe el campo PDU_type del PDU especificado. Este parámetro puede ser NULL o uno de los valores siguientes.

Valor Significado
SNMP_PDU_GET
Busque y recupere un valor de una variable SNMP especificada.
SNMP_PDU_GETNEXT
Busque y recupere el valor de una variable SNMP sin conocer el nombre exacto de la variable.
SNMP_PDU_RESPONSE
Responder a un SNMP_PDU_GET o a una solicitud de SNMP_PDU_GETNEXT .
SNMP_PDU_SET
Almacene un valor en una variable SNMP especificada.
SNMP_PDU_GETBULK
Busque y recupere varios valores con una sola solicitud.
SNMP_PDU_TRAP
Alerta al sistema de administración a un evento extraordinario en SNMPv2C.

[out] request_id

Puntero a una variable que recibe el campo request_id del PDU especificado. Este parámetro puede ser NULL.

[out] error_status

Puntero a una variable que recibe el campo error_status del PDU especificado. Si el parámetro PDU_type es igual a SNMP_PDU_GETBULK, este parámetro recibe el valor del campo non_repeaters del PDU.

Este parámetro puede ser NULL o uno de los valores siguientes. Los seis primeros errores son comunes a los marcos snmp versión 1 (SNMPv1) y SNMP versión 2C (SNMPv2C). Los errores restantes solo están disponibles en SNMPv2C.

Código de error Significado
SNMP_ERROR_NOERROR
El agente informa de que no se produjeron errores durante la transmisión.
SNMP_ERROR_TOOBIG
El agente no pudo colocar los resultados de la operación SNMP solicitada en un único mensaje SNMP.
SNMP_ERROR_NOSUCHNAME
La operación SNMP solicitada identificó una variable desconocida.
SNMP_ERROR_BADVALUE
La operación SNMP solicitada intentó cambiar una variable, pero especificó un error de sintaxis o valor.
SNMP_ERROR_READONLY
La operación SNMP solicitada intentó cambiar una variable que no tenía permiso para cambiar, según el perfil de comunidad de la variable.
SNMP_ERROR_GENERR
Error distinto de uno de los enumerados aquí durante la operación SNMP solicitada.
SNMP_ERROR_NOACCESS
No se puede acceder a la variable SNMP especificada.
SNMP_ERROR_WRONGTYPE
El valor especifica un tipo que es incoherente con el tipo necesario para la variable.
SNMP_ERROR_WRONGLENGTH
El valor especifica una longitud que es incoherente con la longitud necesaria para la variable.
SNMP_ERROR_WRONGENCODING
El valor contiene una codificación Abstract Syntax Notation One (ASN.1) que es incoherente con la etiqueta ASN.1 del campo.
SNMP_ERROR_WRONGVALUE
No se puede asignar el valor a la variable .
SNMP_ERROR_NOCREATION
La variable no existe y el agente no puede crearla.
SNMP_ERROR_INCONSISTENTVALUE
El valor es incoherente con los valores de otros objetos administrados.
SNMP_ERROR_RESOURCEUNAVAILABLE
La asignación del valor a la variable requiere la asignación de recursos que actualmente no están disponibles.
SNMP_ERROR_COMMITFAILED
No se produjeron errores de validación, pero no se actualizaron variables.
SNMP_ERROR_UNDOFAILED
No se produjo ningún error de validación. Algunas variables se actualizaron porque no era posible deshacer su asignación.
SNMP_ERROR_AUTHORIZATIONERROR
Error de autorización.
SNMP_ERROR_NOTWRITABLE
La variable existe, pero el agente no puede modificarla.
SNMP_ERROR_INCONSISTENTNAME
La variable no existe; el agente no puede crearlo porque la instancia de objeto con nombre es incoherente con los valores de otros objetos administrados.

[out] error_index

Puntero a una variable que recibe el campo error_index del PDU especificado.

Si el parámetro PDU_type es igual a SNMP_PDU_GETBULK, este parámetro recibe el valor del campo max_repetitions del PDU especificado. Este parámetro puede ser NULL.

[out] varbindlist

Puntero a una variable que recibe un identificador para el campo de lista de enlaces de variables del PDU especificado. Este parámetro puede ser NULL. Para obtener más información, vea la siguiente sección Comentarios.

Valor devuelto

Si la función se realiza correctamente, se SNMPAPI_SUCCESS el valor devuelto.

Si se produce un error en la función, el valor devuelto se SNMPAPI_FAILURE. Para obtener información de error extendida, llame a SnmpGetLastError. La función SnmpGetLastError puede devolver uno de los siguientes errores.

Código devuelto Descripción
SNMPAPI_NOT_INITIALIZED
La función SnmpStartup no se completó correctamente.
SNMPAPI_ALLOC_ERROR
Error durante la asignación de memoria.
SNMPAPI_NOOP
Todos los parámetros de salida son NULL. No se realizó la operación SNMP.
SNMPAPI_PDU_INVALID
El tipo PDU no es válido.
SNMPAPI_OTHER_ERROR
Se produjo un error desconocido o no definido.

Comentarios

Se requieren todos los parámetros de la función SnmpGetPduData . Sin embargo, todos los parámetros, excepto el parámetro PDU , pueden ser NULL. En los parámetros que la aplicación pasa como NULL, la función SnmpGetPduData no devuelve un valor.

La función SnmpGetPduData siempre devuelve un identificador a un nuevo objeto de lista de enlaces de variables si el parámetro varbindlist no es NULL. Además, si el parámetro PDU especifica una nueva PDU, la función también adjunta un identificador a la nueva PDU.

Cuando una aplicación llama a SnmpGetPduData con un parámetro varbindlist que no es NULL, pero el parámetro PDU especifica una PDU existente, la función devuelve un identificador a una nueva lista de enlaces de variables duplicadas. La llamada de función no altera el controlador asociado a la PDU existente. Una PDU existente es aquella que crea una aplicación con una llamada a la función SnmpCreatePdu , o una que recibe la aplicación y luego lee mediante una llamada a SnmpGetPduData.

Cuando una aplicación crea un PDU con SnmpCreatePdu o después de que la aplicación lea un PDU mediante SnmpGetPduData, la implementación de Microsoft WinSNMP espera que la aplicación "conozca" los valores de los campos PDU. Si una aplicación lee un PDU una segunda vez con SnmpGetPduData, la llamada da como resultado una copia de la lista de enlaces de variables de la PDU especificada. Este tipo de llamada a SnmpGetPduData también duplica el identificador en el PDU.

Requisitos

   
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 winsnmp.h
Library Wsnmp32.lib
Archivo DLL Wsnmp32.dll

Consulte también

SnmpCreatePdu

SnmpDuplicateVbl

Funciones winSNMP

Introducción a la API winSNMP