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

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

Функция WinSNMP SnmpOidCompare лексикографически сравнивает два идентификатора объекта SNMP до длины, заданной параметром maxlen .

Синтаксис

SNMPAPI_STATUS SNMPAPI_CALL SnmpOidCompare(
  [in]  smiLPCOID xOID,
  [in]  smiLPCOID yOID,
  [in]  smiUINT32 maxlen,
  [out] smiLPINT  result
);

Параметры

[in] xOID

Указатель на первый сравниваемый идентификатор объекта smiOID . Длина идентификатора объекта может быть равна нулю.

[in] yOID

Указатель на второй идентификатор объекта smiOID для сравнения. Длина идентификатора объекта может быть равна нулю.

[in] maxlen

Если значение не равно нулю, указывает количество сравниваемых подидентификаторов. Этот параметр должен быть меньше MAXOBJIDSIZE: 128 подидентификаторов, максимальное число компонентов в идентификаторе объекта. Дополнительные сведения см. в следующем разделе Примечаний.

[out] result

Указатель на целочисленную переменную для получения результата сравнения. Переменная может получить один из следующих результатов.

Результат Значение
Больше 0
xOID больше yOID
Равно 0
xOID равно yOID
Меньше 0
xOID меньше yOID
 

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

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

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

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

Код возврата Описание
SNMPAPI_NOT_INITIALIZED
Не удалось выполнить функцию SnmpStartup .
SNMPAPI_ALLOC_ERROR
Ошибка при выделении памяти.
SNMPAPI_OID_INVALID
Один или оба параметра xOID и yOID недопустимы.
SNMPAPI_SIZE_INVALID
Недопустимый параметр maxlen . Размер параметра больше MAXOBJIDSIZE.
SNMPAPI_OTHER_ERROR
Произошла неизвестная или неопределенная ошибка.

Комментарии

Приложение WinSNMP может вызвать функцию SnmpOidCompare , чтобы определить, имеют ли два идентификатора объектов общие префиксы.

Если параметр maxlen не равен нулю и не больше MAXOBJIDSIZE, значение maxlen задает верхний предел для сравниваемого числа подидентификаторов. Максимальное число подидентификаторов, которое функция SnmpOidCompare сравнивает по умолчанию с наименьшим числом — параметром maxlen или элементом len одной из структур smiOID , на которые указывают параметры xOID и yOID .

Если параметр maxlen равен нулю, максимальное число подидентификаторов, сравниваемых функцией SnmpOidCompare , по умолчанию соответствует числу меньшего числа элементов len двух структур smioid .

Значение параметра result указывает, что xOID равно yOID, если две структуры smiOID лексикографически равны и происходит одно из следующих действий:

  • SnmpOidCompare сравнивает максимальное число подидентификаторов.
  • SnmpOidCompare сравнивает максимальное число подидентификаторов, а члены len обеих структур smiOID равны, но меньше, чем параметр maxlen .

Требования

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

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

Функции WinSNMP

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

smiOID