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