Обновить состояние внутренней сети Windows - PullRequest
2 голосов
/ 02 февраля 2010

Я работаю над программным обеспечением, которое должно эффективно взаимодействовать с серверными сокетами на другой стороне сетевого моста XP Windows. Теперь это работает нормально, но если произойдет сбой одного из подключений, которое является частью моста (например, удален физический кабель), а затем восстановлено, средство просмотра сетевых подключений не обновит отображение.

Теперь, обычно это не так уж и сложно, однако через мост невозможно установить соединение через сокет, пока я не нажму правой кнопкой мыши в Сетевые подключения и не выберу пункт контекстного меню «Обновить». После чего все соединения в окне «Сетевые подключения» указывают на надежное соединение, и мое программное обеспечение может установить сокет через мост.

Я предполагаю, что программный мост Windows использует некоторое внутреннее состояние сети Windows, чтобы решить, следует ли маршрутизировать пакеты от различных соединений.

Итак, мой вопрос, что именно делает эта волшебная кнопка «Обновить»? И, более конкретно, есть ли способ, которым я могу автоматизировать все, что есть в моем программном обеспечении?

Приветствия

Ответы [ 3 ]

2 голосов
/ 16 февраля 2010

Возможно, вы могли бы обойтись, пока не найдете прямой вызов? Восстановление сетевого подключения

Или использовать инструменты SysInternals, чтобы увидеть, какие вызовы DLL / Reg выполняются, когда вы выполняете это вручную? Это может привести вас к поиску в Google по крайней мере. ; -)

1 голос
/ 16 февраля 2010

Я не нашел прямого решения моей проблемы, но я нашел обходной путь в следующей форме:

Данный компьютер имеет соединение FireWire и, следовательно, имеет сетевой адаптер 1394 (который никогда не используется). Я обнаружил, что отключение и повторное включение адаптера 1394 (из диспетчера устройств) приводит к тому, что все состояния корректно обновляются.

Однако я не хочу отключать, а затем включать устройство все время, поскольку значок в разделе «Сетевые подключения» будет серым, а затем возвращаться к нормальному состоянию каждый раз, когда я выполняю этот цикл. Таким образом, вместо этого, используя инструмент DevCon, я выполнил перезапуск устройства , который работает тихо (в том, что нет никаких видимых изменений в адаптере на панели сетевых подключений), и успешно обновляет состояние сетевых подключений.

Оказывается, что проблема была вызвана в первую очередь программным мостом, который существует для всего остального для работы.

Вряд ли это идеальное решение, но, похоже, оно делает свою работу.

0 голосов
/ 14 февраля 2010

Единственное место, где я могу начать искать, это MSDN -Windows Networking Functions . Я оглянулся, но не нашел ничего конкретного, что упоминало бы о твоей свежести.

...