Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функция SetIpNetEntry2 задает физический адрес существующей записи соседнего IP-адреса на локальном компьютере.
Синтаксис
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API SetIpNetEntry2(
[in, out] PMIB_IPNET_ROW2 Row
);
Параметры
[in, out] Row
Указатель на запись структуры MIB_IPNET_ROW2 для записи соседнего IP-адреса.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение будет NO_ERROR.
Если функция завершается сбоем, возвращается один из следующих кодов ошибок.
| Код возврата | Описание |
|---|---|
|
Отказано в доступе". Эта ошибка возвращается при нескольких условиях, которые включают следующее: у пользователя отсутствуют необходимые права администратора на локальном компьютере или приложение не работает в расширенной оболочке в качестве встроенного администратора (администратор запуска от имени администратора). |
|
В функцию передан недопустимый параметр. Эта ошибка возвращается, если в параметре Row передается указатель NULL, члену AddressMIB_IPNET_ROW2, на который указывает параметр Row, не задан допустимый одноадресный, anycast или многоадресный адрес IPv4 или IPv6, а членам PhysicalAddress и PhysicalAddressLengthMIB_IPNET_ROW2, на которые указывает параметр Row, не задан допустимый физический адрес. или оба элемента InterfaceLuid или InterfaceIndexMIB_IPNET_ROW2, на которые указывает параметр Row, не указаны. Эта ошибка также возвращается, если в элементе Address был передан адрес замыкания на себя. |
|
Не удалось найти указанный интерфейс. Эта ошибка возвращается, если не удалось найти сетевой интерфейс, указанный элементом InterfaceLuid или InterfaceIndexMIB_IPNET_ROW2 , на который указывает параметр Row . |
|
Запрос не поддерживается. Эта ошибка возвращается, если на локальном компьютере нет стека IPv4 и адрес IPv4 был указан в элементе AddressMIB_IPNET_ROW2 , на который указывает параметр Row , или нет стека IPv6 на локальном компьютере и адрес IPv6 был указан в элементе Address . |
|
Используйте FormatMessage , чтобы получить строку сообщения для возвращаемой ошибки. |
Комментарии
Функция SetIpNetEntry2 определена в Windows Vista и более поздних версиях.
Функция SetIpNetEntry2 используется для задания физического адреса для существующей записи соседнего IP-адреса на локальном компьютере.
Элемент Address в структуре MIB_IPNET_ROW2 , на который указывает параметр Row , должен быть инициализирован допустимым одноадресным, anycast или многоадресным адресом IPv4 или IPv6 и семейством. Элементы PhysicalAddress и PhysicalAddressLength в структуре MIB_IPNET_ROW2 , на которую указывает параметр Row , должны быть инициализированы допустимым физическим адресом. Кроме того, интерфейсу необходимо инициализировать по крайней мере один из следующих элементов в структуре MIB_IPNET_ROW2 , указывающего на параметр Row : InterfaceLuid или InterfaceIndex.
Поля используются в указанном выше порядке. Таким образом, если указан InterfaceLuid , этот член используется для определения интерфейса, к которому добавляется одноадресный IP-адрес. Если для элемента InterfaceLuid не задано значение (значения этого элемента равны нулю), то для определения интерфейса используется элемент InterfaceIndex .
Функция SetIpNetEntry2 завершится ошибкой, если IP-адрес, переданный в элементе AddressMIB_IPNET_ROW2 , на который указывает параметр Row , не является существующим IP-адресом соседа в указанном интерфейсе.
Функцию SetIpNetEntry2 может вызывать только пользователь, вошедший в систему как член группы Администраторы. Если метод SetIpNetEntry2 вызывается пользователем, не включаемым в группу Администраторы, вызов функции завершится ошибкой и возвращается ERROR_ACCESS_DENIED .
Функция SetIpNetEntry2 также может завершиться сбоем из-за контроля учетных записей пользователей (UAC) в Windows Vista и более поздних версиях. Если приложение, содержащее эту функцию, выполняется пользователем, вошедшего в систему как член группы администраторов, отличный от встроенного администратора, этот вызов завершится ошибкой, если приложение не было отмечено в файле манифеста с параметром requestedExecutionLevel , для которого задано значение requireAdministrator. Если в приложении отсутствует этот файл манифеста, пользователь, вошедший в систему как член группы администраторов, отличный от встроенного администратора, должен выполнить приложение в расширенной оболочке в качестве встроенного администратора (администратора запуска от имени), чтобы эта функция была успешной.
Требования
| Требование | Значение |
|---|---|
| Минимальная версия клиента | Windows Vista [только классические приложения] |
| Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
| Целевая платформа | Windows |
| Header | netioapi.h (включая Iphlpapi.h) |
| Библиотека | Iphlpapi.lib |
| DLL | Iphlpapi.dll |