Функция SnmpGetPduData (winsnmp.h)
[SNMP доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте удаленное управление Windows, которое является реализацией WS-Man майкрософт.]
Функция SnmpGetPduData WinSNMP возвращает выбранные поля данных из указанной единицы данных протокола SNMP (PDU).
Синтаксис
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
);
Параметры
[in] PDU
Дескриптор SNMP PDU.
[out] PDU_type
Указатель на переменную, которая получает поле PDU_type указанного PDU. Этот параметр может иметь значение NULL или одно из следующих значений.
[out] request_id
Указатель на переменную, которая получает поле request_id указанного PDU. Этот параметр может принимать значение NULL.
[out] error_status
Указатель на переменную, которая получает поле error_status указанного PDU. Если параметр PDU_type равен SNMP_PDU_GETBULK, этот параметр получает значение поля non_repeaters PDU.
Этот параметр может иметь значение NULL или одно из следующих значений. Первые шесть ошибок являются общими для платформ SNMP версии 1 (SNMPv1) и SNMP версии 2C (SNMPv2C). Остальные ошибки доступны только в SNMPv2C.
[out] error_index
Указатель на переменную, которая получает поле error_index указанного PDU.
Если параметр PDU_type равен SNMP_PDU_GETBULK, этот параметр получает значение поля max_repetitions указанного PDU. Этот параметр может принимать значение NULL.
[out] varbindlist
Указатель на переменную, которая получает дескриптор поля списка привязок переменной указанного PDU. Этот параметр может принимать значение NULL. Дополнительные сведения см. в следующем разделе Примечаний.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение будет SNMPAPI_SUCCESS.
Если функция завершается сбоем, возвращаемое значение будет SNMPAPI_FAILURE. Чтобы получить расширенные сведения об ошибке, вызовите SnmpGetLastError. Функция SnmpGetLastError может возвращать одну из следующих ошибок.
Код возврата | Описание |
---|---|
|
Функция SnmpStartup не была успешно завершена. |
|
Произошла ошибка при выделении памяти. |
|
Все выходные параметры имеют значение NULL. Операция SNMP не была выполнена. |
|
Недопустимый тип PDU. |
|
Произошла неизвестная или неопределенная ошибка. |
Комментарии
Все параметры функции SnmpGetPduData являются обязательными. Однако все параметры, кроме параметра PDU , могут иметь значение NULL. В параметрах, которые приложение передает как NULL, функция SnmpGetPduData не возвращает значение.
Функция SnmpGetPduData всегда возвращает дескриптор новому объекту списка привязок переменных, если параметр varbindlist не равен NULL. Кроме того, если параметр PDU указывает новый PDU, функция также присоединяет дескриптор к новому PDU.
Когда приложение вызывает SnmpGetPduData с параметром varbindlist , который не имеет значения NULL, но параметр PDU указывает существующий PDU, функция возвращает дескриптор в новый список повторяющихся привязок переменных. Вызов функции не нарушает дескриптор, подключенный к существующему PDU. Существующий PDU — это тот, который приложение создает с помощью вызова функции SnmpCreatePdu , или тот, который приложение получает и затем считывает с помощью вызова SnmpGetPduData.
Когда приложение создает PDU с snmpCreatePdu или после того, как приложение считывает PDU с помощью SnmpGetPduData, реализация Microsoft WinSNMP ожидает, что приложение "знает" значения полей PDU. Если приложение считывает PDU во второй раз с помощью SnmpGetPduData, вызов приводит к копированию списка привязок переменных указанного PDU. Этот тип вызова SnmpGetPduData также дублирует дескриптор PDU.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winsnmp.h |
Библиотека | Wsnmp32.lib |
DLL | Wsnmp32.dll |