Функция SnmpGetVb (winsnmp.h)

[SNMP доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте удаленное управление Windows, которое является реализацией WS-Man майкрософт.]

Приложение WinSNMP вызывает функцию SnmpGetVb для получения сведений из списка привязок переменных. Эта функция WinSNMP получает имя переменной и связанное с ней значение из записи привязки переменной, указанной параметром index .

Синтаксис

SNMPAPI_STATUS SNMPAPI_CALL SnmpGetVb(
  [in]  HSNMP_VBL  vbl,
  [in]  smiUINT32  index,
  [out] smiLPOID   name,
  [out] smiLPVALUE value
);

Параметры

[in] vbl

Дескриптор списка привязок переменных для извлечения.

[in] index

Задает целочисленную переменную без знака, которая определяет извлекаемую запись привязки переменной. Эта переменная содержит позицию записи привязки переменной в списке привязок переменных.

Допустимые значения для этого параметра находятся в диапазоне от 1 до n, где 1 обозначает первую запись привязки переменной в списке привязок переменных, а n — общее количество записей в списке. Дополнительные сведения см. в следующем разделе Примечаний.

[out] name

Указатель на структуру smiOID для получения имени переменной записи привязки переменной.

[out] value

Указатель на структуру smiVALUE для получения значения, связанного с переменной, определяемой параметром name .

Если функция выполняется успешно, синтаксический элемент структуры, на который указывает параметр value , может быть одним из следующих синтаксических типов данных. Дополнительные сведения см. в статье RFC 1902 "Структура сведений об управлении для версии 2 протокола SNMPv2".

Тип данных синтаксиса Значение
SNMP_SYNTAX_INT
Указывает 32-разрядную целочисленную переменную со знаком.
SNMP_SYNTAX_OCTETS
Указывает строковую переменную октета, которая является двоичными или текстовыми данными.
SNMP_SYNTAX_NULL
Указывает значение NULL .
SNMP_SYNTAX_OID
Указывает переменную идентификатора объекта, которая является назначенным именем не более 128 подидентификаторов.
SNMP_SYNTAX_INT32
Указывает 32-разрядную целочисленную переменную со знаком.
SNMP_SYNTAX_IPADDR
Указывает 32-разрядную переменную адреса в Интернете. Если для представления IPv6-адреса используется формат snmPv1 PDU, это значение равно 0.0.0.0.
SNMP_SYNTAX_CNTR32
Указывает переменную счетчика, которая увеличивается до достижения максимального значения (2^32) – 1.
SNMP_SYNTAX_GAUGE32
Указывает переменную датчика, представляющее собой неотрицательное целое число, которое может увеличиваться или уменьшаться, но никогда не превышать максимальное значение.
SNMP_SYNTAX_TIMETICKS
Указывает переменную счетчика, измеряющую время в сотых секундах, пока не достигнет максимального значения (2^32) – 1. Это неотрицательное целое число относительно определенного события таймера.
SNMP_SYNTAX_OPAQUE
Этот тип обеспечивает обратную совместимость и не должен использоваться для новых типов объектов. Она поддерживает возможность передачи произвольного синтаксиса ASN.1.
SNMP_SYNTAX_CNTR64
Указывает переменную счетчика, которая увеличивается до достижения максимального значения (2^64) – 1.
SNMP_SYNTAX_UINT32
Указывает 32-разрядную целочисленную переменную без знака.
SNMP_SYNTAX_NOSUCHOBJECT
Указывает, что агент не поддерживает тип объекта, соответствующий переменной.
SNMP_SYNTAX_NOSUCHINSTANCE
Указывает, что экземпляр объекта не существует для операции.
SNMP_SYNTAX_ENDOFMIBVIEW
Указывает, что приложение WinSNMP пытается ссылаться на идентификатор объекта, который находится за пределами конца дерева MIB, которое поддерживает агент.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение будет SNMPAPI_SUCCESS.

Если функция завершается сбоем, возвращаемое значение будет SNMPAPI_FAILURE. Чтобы получить расширенные сведения об ошибке, вызовите SnmpGetLastError. Функция SnmpGetLastError может возвращать одну из следующих ошибок.

Код возврата Описание
SNMPAPI_NOT_INITIALIZED
Функция SnmpStartup не была успешно завершена.
SNMPAPI_ALLOC_ERROR
Произошла ошибка при выделении памяти.
SNMPAPI_INDEX_INVALID
Недопустимый параметр index .
SNMPAPI_VBL_INVALID
Недопустимый параметр vbl .
SNMPAPI_OTHER_ERROR
Произошла неизвестная или неопределенная ошибка.

Комментарии

Последние три типа синтаксиса описывают условия исключений в платформе SNMP версии 2C(SNMPv2C).

Функция SnmpGetVb возвращает имя переменной записи привязки переменной в структуре, на которую указывает параметр name . Он возвращает связанное с переменной значение в структуре, на которую указывает параметр value .

На входных данных функция SnmpGetVb игнорирует члены структур smiOID и smiVALUE , на которые указывают параметры имени и значения соответственно. Реализация Microsoft WinSNMP перезаписывает члены при успешном завершении функции.

Ниже приведены допустимые значения для приложения WinSNMP, используемого для параметра index :

  • Возвращаемое значение при вызове функции SnmpCountVbl
  • Поле индекса ошибок SNMP_PDU_RESPONSE единицы данных протокола (PDU), возвращаемой вызовом функции SnmpRecvMsg
Приложение WinSNMP должно вызывать функцию SnmpFreeDescriptor , чтобы освободить ресурсы, выделенные для элемента ptr структуры smiOID , на которую указывает параметр name . Приложение также должно вызвать функцию SnmpFreeDescriptor , чтобы освободить ресурсы, выделенные для структуры smiVALUE , на которую указывает параметр value , в следующих условиях. Если элемент значения является структурой smiOCTETS или smiOID , приложение должно вызвать SnmpFreeDescriptor , чтобы освободить ресурсы, выделенные для этих структур. Дополнительные сведения см. в статье Основные понятия Управление данными WinSNMP.

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winsnmp.h
Библиотека Wsnmp32.lib
DLL Wsnmp32.dll

См. также раздел

SnmpCountVbl

SnmpFreeDescriptor

SnmpRecvMsg

Функции WinSNMP

Общие сведения об API WinSNMP

smiOCTETS

smiOID

smiVALUE