Функция SnmpExtensionQueryEx (snmp.h)
[SNMP доступен для использования в операционных системах, указанных в разделе Требования. В последующих версиях он может быть изменен или недоступен. Вместо этого используйте удаленное управление Windows, которое является реализацией WS-Man майкрософт.]
Служба Microsoft SNMP вызывает функцию SnmpExtensionQueryEx для обработки запросов SNMP, указывающих переменные в одном или нескольких поддеревьях MIB, зарегистрированных агентами расширения SNMP. Эта функция является элементом API агента расширения SNMP.
Синтаксис
BOOL SNMP_FUNC_TYPE SnmpExtensionQueryEx(
[in] UINT nRequestType,
[in] UINT nTransactionId,
[in, out] SnmpVarBindList *pVarBindList,
[in, out] AsnOctetString *pContextInfo,
[out] AsnInteger32 *pErrorStatus,
[out] AsnInteger32 *pErrorIndex
);
Параметры
[in] nRequestType
Указывает тип операции, которую служба SNMP запрашивает у агента расширения. Этот параметр может принимать одно из указанных ниже значений.
Дополнительные сведения о типах запросов SET, то есть тех, которые начинаются с SNMP_EXTENSION_SET_, см. в следующем разделе Примечания.
[in] nTransactionId
Указывает переменную DWORD , которая является уникальным идентификатором PDU входящего SNMP-запроса. Агент расширения может использовать это значение для корреляции нескольких вызовов службы SNMP, которые используют один И тот же PDU.
[in, out] pVarBindList
Указатель на список привязок переменных, содержащий интересующие переменные.
[in, out] pContextInfo
Указатель на строку октета, содержащую определяемые пользователем сведения о контексте.
Агент расширения может использовать этот параметр для хранения контекстных сведений, используемых во время многофазных операций SNMP SET. Агент расширения должен освободить ресурсы, связанные с этим параметром, во время запроса CLEANUP. Служба SNMP не освобождает ресурсы, связанные с этим параметром. Дополнительные сведения см. в следующем разделе Примечаний.
[out] pErrorStatus
Указатель на переменную для получения результата состояния ошибки. Этот параметр может быть одним из следующих значений, определенных SNMPv2C.
[out] pErrorIndex
Указатель на переменную для получения результата индекса ошибки.
Возвращаемое значение
Если функция выполнена успешно, возвращается значение TRUE.
Если функция завершается сбоем, возвращается значение FALSE.
Комментарии
Служба SNMP вызывает функцию SnmpExtensionQueryEx несколько раз для обработки входящего запроса SNMP SET. Служба может вызывать SnmpExtensionQueryEx во время этапа запроса TEST, этапа запроса COMMIT, этапа запроса UNDO и этапа запроса CLEANUP.
ЗАПРОС TEST
Служба SNMP обрабатывает тип запроса SNMP SET, сначала вызывая функцию SnmpExtensionQueryEx с dwRequestType SNMP_EXTENSION_SET_TEST. Служба вызывает каждый агент расширения, отвечающий за привязки переменных в запросе. Каждый агент расширения должен проверять переменные в списке привязки переменных. При необходимости они могут хранить любые сведения о контексте, необходимые для следующих запросов, в переменной, на которую указывает параметр pContextInfo .Если запрос TEST завершается сбоем, служба инициирует запрос CLEANUP. Служба вызывает каждый агент расширения, который ранее вернул true в запрос TEST с помощью функции SnmpExtensionQueryEx . Служба вызывает каждый агент расширения, используя SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Запрос COMMIT
Если все агенты расширения возвращают true в запрос TEST, служба SNMP вызывает каждый агент расширения с функцией SnmpExtensionQueryEx , используя SNMP_EXTENSION_SET_COMMIT dwRequestType. Служба возвращает сведения о контексте агента расширения, которые агент расширения передал службе. Это контекстная информация, переданная агентом расширения в параметре pContextInfo во время запроса TEST. Агент расширения может использовать сведения контекста для обновления значений указанных переменных в определенном инструментировании способом.Если агент расширения поддерживает обработку отката, он может обновить сведения о контексте в параметре pContextInfo в данный момент. Служба SNMP передает сведения обратно агенту расширения во время запроса UNDO.
Если все агенты расширения возвращают true в запрос COMMIT, служба вызывает каждый агент расширения с функцией SnmpExtensionQueryEx , используя SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Если какой-либо агент расширения не выполняет запрос COMMIT, служба также инициирует запрос CLEANUP. Служба вызывает каждый агент расширения, который ранее вернул true в запрос COMMIT с помощью функции SnmpExtensionQueryEx . Служба вызывает каждый агент расширения, используя SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Запрос CLEANUP
Служба возвращает агенту расширения сведения о контексте, переданные в параметре pContextInfo во время запроса TEST или COMMIT. В данный момент агент расширения должен освободить ресурсы, связанные с параметром .Запрос UNDO
Если какой-либо агент расширения возвращает значение FALSE в запрос COMMIT, служба SNMP завершает запрос COMMIT. Служба вызывает каждый агент расширения, возвращающий true в запрос COMMIT, с dwRequestType SNMP_EXTENSION_SET_UNDO. Это сигнализирует агентам расширения о том, что запрос COMMIT завершился сбоем, и они должны инициировать обработку отката.Агенты расширения должны попытаться сбросить значения интересующих переменных, вернувшись к значениям, которые они были до сбоя запроса COMMIT. Для этого агенты расширения используют сведения о контексте, возвращенные в параметре pContextInfo во время запроса COMMIT.
Если какой-либо агент расширения возвращает false в запрос UNDO, вся операция SET завершается ошибкой с кодом SNMP_ERRORSTATUS_UNDOFAILED. Если все агенты расширения возвращают значение TRUE в запрос UNDO, операция SNMP SET завершается сбоем с кодом ошибки, заданным агентом расширения, который не выполнил запрос COMMIT.
После запроса UNDO служба всегда вызывает каждый агент расширения с функцией SnmpExtensionQueryEx , используя SNMP_EXTENSION_SET_CLEANUP dwRequestType.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | snmp.h |