Поделиться через


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

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

Функция WinSNMP SnmpCreatePdu создает и инициализирует единицу данных протокола SNMP (PDU).

Синтаксис

HSNMP_PDU SNMPAPI_CALL SnmpCreatePdu(
  [in] HSNMP_SESSION session,
  [in] smiINT        PDU_type,
  [in] smiINT32      request_id,
  [in] smiINT        error_status,
  [in] smiINT        error_index,
  [in] HSNMP_VBL     varbindlist
);

Параметры

[in] session

Обработка в сеансе WinSNMP.

[in] PDU_type

Указывает тип PDU, определяющий операцию SNMP. Этот параметр может иметь значение NULL или одно из следующих значений. Если этот параметр имеет значение NULL, реализация Microsoft WinSNMP предоставляет тип PDU по умолчанию SNMP_PDU_GETNEXT. Единственным типом PDU-ловушки, который можно создать с помощью вызова функции SnmpCreatePdu , является PDU-ловушка SNMPv2C.

Значение Значение
SNMP_PDU_GET
Поиск и получение значения из указанной переменной SNMP.
SNMP_PDU_GETNEXT
Выполните поиск и получите значение переменной SNMP, не зная точного имени переменной.
SNMP_PDU_RESPONSE
Ответ на запрос SNMP_PDU_GET или SNMP_PDU_GETNEXT.
SNMP_PDU_SET
Храните значение в указанной переменной SNMP.
SNMP_PDU_GETBULK
Выполните поиск и получение нескольких значений с помощью одного запроса.
SNMP_PDU_TRAP
Оповещает систему управления о событии в SNMPv2C.

[in] request_id

Задает уникальное числовое значение, которое приложение WinSNMP предоставляет для идентификации PDU. Если этот параметр имеет значение NULL, реализация присваивает значение .

[in] error_status

Если параметр PDU_type равен SNMP_PDU_GETBULK, этот параметр задает значение для поля non_repeaters PDU. Для других типов PDU этот параметр задает значение для поля error_status PDU. Этот параметр может принимать значение NULL.

[in] error_index

Если параметр PDU_type равен SNMP_PDU_GETBULK, этот параметр задает значение для поля max_repetitions PDU. Для других типов PDU этот параметр задает значение поля error_index PDU. Этот параметр может принимать значение NULL.

[in] varbindlist

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

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

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

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

Код возврата Описание
SNMPAPI_NOT_INITIALIZED
Не удалось выполнить функцию SnmpStartup .
SNMPAPI_ALLOC_ERROR
Ошибка при выделении памяти.
SNMPAPI_SESSION_INVALID
Недопустимый дескриптор сеанса.
SNMPAPI_PDU_INVALID
Недопустимый тип PDU.
SNMPAPI_VBL_INVALID
Недопустимый список привязок переменных.
SNMPAPI_OTHER_ERROR
Произошла неизвестная или неопределенная ошибка.

Комментарии

Приложение WinSNMP должно создать PDU перед вызовом функций SnmpSendMsg или SnmpEncodeMsg .

Все параметры функции SnmpCreatePdu являются обязательными. Однако все параметры, кроме параметра сеанса , могут иметь значение NULL. В этом случае новый PDU имеет следующие значения по умолчанию.

Поле Содержимое
PDU_type SNMP_PDU_GETNEXT
request_id Реализация создает числовое значение.
error_status SNMP_ERROR_NOERROR
error_index 0
varbindlist NULL
 

Приложение должно вызвать функцию SnmpFreePdu , чтобы освободить ресурсы, выделенные функцией SnmpCreatePdu для нового PDU.

Требования

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

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

SnmpEncodeMsg

SnmpFreePdu

SnmpSendMsg

Функции WinSNMP

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