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


Функция SetIpStatisticsEx (iphlpapi.h)

Функция SetIpStatisticsEx переключает или отключает IP-пересылку и задает значение срока жизни по умолчанию для локального компьютера.

Синтаксис

IPHLPAPI_DLL_LINKAGE ULONG SetIpStatisticsEx(
  [in] PMIB_IPSTATS Statistics,
       ULONG        Family
);

Параметры

[in] Statistics

Указатель на структуру MIB_IPSTATS . Вызывающий объект должен задать для членов dwForwarding и dwDefaultTTL этой структуры новые значения. Чтобы сохранить текущее значение одного из элементов, используйте MIB_USE_CURRENT_TTL или MIB_USE_CURRENT_FORWARDING.

Family

Семейство адресов, для которого необходимо задать перенаправление и срок жизни.

Возможные значения для семейства адресов перечислены в файле заголовка Winsock2.h . Обратите внимание, что значения для семейства адресов AF_ и констант семейства PF_ протоколов идентичны (например, AF_INET и PF_INET), поэтому можно использовать либо константу.

В windows SDK, выпущенном для Windows Vista и более поздних версий, организация файлов заголовков изменилась, и возможные значения для этого элемента определяются в файле заголовка Ws2def.h . Обратите внимание, что файл заголовка Ws2def.h автоматически включается в Winsock2.h и никогда не должен использоваться напрямую.

В настоящее время поддерживаются значения AF_INET и AF_INET6.

Значение Значение
AF_INET
2
Семейство адресов IPv4. Если указан этот параметр, эта функция задает параметры пересылки и срока жизни для записей IPv4.
AF_INET6
23
Семейство адресов IPv6. Если указан этот параметр, эта функция задает параметры пересылки и срока жизни для записей IPv6.

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

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

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

Код возврата Описание
ERROR_ACCESS_DENIED
Отказано в доступе". Эта ошибка возвращается при нескольких условиях, которые включают следующее: у пользователя отсутствуют необходимые права администратора на локальном компьютере или приложение не выполняется в расширенной оболочке в качестве встроенного администратора (администратора запуска от имени).
ERROR_INVALID_PARAMETER
В функцию передан недопустимый параметр. Эта ошибка возвращается, если в параметре pIpStats передан указатель NULL или параметру Family не задано значение AF_INET, а AF_INET6. Эта ошибка также возвращается, если член dwForwarding в структуре MIB_IPSTATS , на которую указывает параметр pIpStats , содержит значение, отличное от MIB_IP_NOT_FORWARDING, MIB_IP_FORWARDING или MIB_USE_CURRENT_FORWARDING.
ERROR_NOT_SUPPORTED
Запрос не поддерживается. Эта ошибка возвращается, если на локальном компьютере нет стека IPv4 и AF_INET был указан в параметре Family или на локальном компьютере не находится стек IPv6 и AF_INET6 был указан в элементе Семьи .
Другое
Используйте FormatMessage , чтобы получить строку сообщения для возвращенной ошибки.

Комментарии

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

Функция SetIpStatisticsEx может вызываться только пользователем, вошедшего в систему как член группы Администраторы. Если метод SetIpStatisticsEx вызывается пользователем, не включаемым в группу Администраторы, вызов функции завершится ошибкой и ERROR_ACCESS_DENIED возвращается.

Функция SetIpStatisticsEx также может завершиться сбоем из-за контроля учетных записей (UAC) в Windows Vista и более поздних версиях. Если приложение, содержащее эту функцию, выполняется пользователем, вошедшего в систему как участник группы администраторов, отличный от встроенного администратора, этот вызов завершится ошибкой, если приложение не было отмечено в файле манифеста параметром requestedExecutionLevel , для которого задано значение requireAdministrator. Если в приложении отсутствует этот файл манифеста, пользователь, вошедший в систему как член группы администраторов, отличный от встроенного администратора, должен выполнять приложение в расширенной оболочке в качестве встроенного администратора (администратора запуска от имени) для успешного выполнения этой функции.

Требования

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

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

Справочник по вспомогательным функциям IP

Начальная страница вспомогательного ip-адреса

MIB_IPSTATS

SetIpStatistics

SetIpTTL