Невозможно установить LinkLocalAddressBehavior в LinkLocalAlwaysOff - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь установить LinkLocalAddressBehavior для интерфейса на LinkLocalAlwaysOff с помощью функции SetIpInterfaceEntry , но я всегда получаю ERROR_INVALID_PARAMETER.Когда я устанавливаю LinkLocalAddressBehavior на LinkLocalDelayed, SetIpInterfaceEntry выполняется без проблем.

В MSDN я не нашел ничего, что могло бы помочь с этой проблемой ( SetIpInterfaceEntry , MIB_IPINTERFACE_ROW или NL_LINK_LOCAL_ADDRESS_BEHAVIOR )

).1018 * Есть предложения?

Спасибо!

ОБНОВЛЕНИЕ : Пример кода:

// Initialize MIB_IPINTERFACE_ROW with actual InterfaceLuid:
auto row = MIB_IPINTERFACE_ROW{ AF_INET, 1689399632855040 };

// GetIpInterfaceEntry succeeds
auto result = GetIpInterfaceEntry(&row);

// Setting the value:
row.LinkLocalAddressBehavior = LinkLocalAlwaysOff;

// SetIpInterfaceEntry fails with ERROR_INVALID_PARAMETER:
result = SetIpInterfaceEntry(&row);

1 Ответ

0 голосов
/ 11 марта 2019

Согласно этой статье :

Назначение локального IPv4-адреса на интерфейсе основывается исключительно на состоянии интерфейса и не зависит от каких-либодругие протоколы, такие как DHCP.Хост НЕ ДОЛЖЕН изменять свое поведение и использовать другие протоколы, такие как DHCP, поскольку хост назначил интерфейсу локальный IPv4-адрес для интерфейса.

Поэтому мы не можем изменить его поведение, когдаэто включено.LinkLocalDelayed успешен, потому что исходный статус был LinkLocalDelayed.

Для IPv6 я нашел ответ на msdn .Похоже, у них похожее поведение.Если он был включен, он не сможет быть отключен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...