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


Функция CreateIpNetEntry2

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

Синтаксис

NETIOAPI_API CreateIpNetEntry2(
  _In_ const MIB_IPNET_ROW2 *Row
);

Параметры

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

CreateIpNetEntry2 возвращает STATUS_SUCCESS, если функция выполнена успешно.

В случае сбоя функции CreateIpNetEntry2 возвращает один из следующих кодов ошибок:

Код возврата Описание
STATUS_INVALID_PARAMETER

В функцию передан недопустимый параметр. Эта ошибка возвращается, если возникает один из следующих элементов:

  • В параметре Row передается указатель NULL.

  • Элементу AddressMIB_IPNET_ROW2 структура, на которую указывает параметр Row, не задан допустимый адрес IPv4 или IPv6 для одноадресной, любой рассылки или многоадресной рассылки.

  • Для элементов PhysicalAddress и PhysicalAddressLength структуры MIB_IPNET_ROW2 не задан допустимый физический адрес.

  • Элементы InterfaceLuid и InterfaceIndex структуры MIB_IPNET_ROW2 не указаны.

  • В элемент Address передан адрес замыкания на себя.

STATUS_NOT_FOUND

Не удалось найти указанный интерфейс. Эта ошибка возвращается, если функции не удается найти сетевой интерфейс, заданный элементом InterfaceLuid или InterfaceIndex структуры MIB_IPNET_ROW2, на которую указывает параметр Row .

STATUS_NOT_SUPPORTED

Запрос не поддерживается. Эта ошибка возвращается, если на локальном компьютере не расположен стек IPv4 и IPv4-адрес был указан в элементе Address структуры MIB_IPNET_ROW2, на которую указывает параметр Row , или если на локальном компьютере не расположен стек IPv6 и в элементе Address был указан IPv6-адрес.

ERROR_OBJECT_ALREADY_EXISTS

Объект уже существует. Эта ошибка возвращается, если элемент Address структуры MIB_IPNET_ROW2, на которую указывает параметр Row , является дубликатом существующего соседнего IP-адреса в интерфейсе, заданном элементом InterfaceLuid или InterfaceIndex структуры MIB_IPNET_ROW2.

Другое

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

Комментарии

Драйвер должен инициализировать следующие элементы структуры MIB_IPNET_ROW2 , на которые указывает параметр Row :

  • Задайте для элемента Address допустимый адрес одноадресной, любой рассылки или многоадресной рассылки IPv4 или IPv6-адрес и семейство.

  • Задайте для элементов PhysicalAddress и PhysicalAddressLength в структуре MIB_IPNET_ROW2 допустимый физический адрес.

  • Задайте для InterfaceLuid или InterfaceIndex значение LUID или индекса интерфейса.

Элементы InterfaceLuid и InterfaceIndex используются в порядке, указанном ранее. Таким образом, если указан InterfaceLuid , этот элемент используется для определения интерфейса для добавления одноадресного IP-адреса. Если для элемента InterfaceLuid не задано значение (значение этого элемента было равно нулю), далее для определения интерфейса используется элемент InterfaceIndex .

Функция CreateIpNetEntry2 завершается сбоем, если IP-адрес, передаваемый в элементе Address MIB_IPNET_ROW2 структуры, на которую указывает параметр Row , является дубликатом существующего соседнего IP-адреса в интерфейсе.

Требования

Целевая платформа

Универсальное

Версия

Доступно в Windows Vista и более поздних версиях операционных систем Windows.

Заголовок

Netioapi.h (включая Netioapi.h)

Библиотека

Netio.lib

IRQL

< DISPATCH_LEVEL

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

DeleteIpNetEntry2

FlushIpNetTable2

GetIpNetEntry2

GetIpNetTable2

MIB_IPNET_ROW2

MIB_IPNET_TABLE2

ResolveIpNetEntry2

SetIpNetEntry2