Как гарантировать эксклюзивный доступ при изменении свойств сетевого адаптера - PullRequest
3 голосов
/ 07 октября 2011

Я использую класс WMI Win32_NetworkAdapterConfiguration, метод EnableStatic для установки статических IP-адресов сетевого адаптера Loopback для тестирования. Я заметил, что ОС снимает блокировку, когда есть видимый лист свойств. Когда пользователь отклоняет лист с изменениями, все зависает до тех пор, пока обновление не будет завершено.

Как я могу обеспечить эксклюзивный доступ между моей программой в C # и Windows UI?

1 Ответ

2 голосов
/ 13 октября 2011

Я думаю, что метод EnableStatic класса Win32_NetworkAdapterConfiguration уже получает эксклюзивную блокировку для изменения настроек сетевого адаптера.Статья в базе знаний Майкрософт привела меня к такому выводу Microsoft KB .Существует также интерфейс COM под названием INetCfgLock, который можно использовать для приобретения эксклюзивной блокировки для изменения настроек сетевого адаптера.Чтобы получить блокировку, используйте метод INetCfgLock::AcquireWriteLock.

НАЧАТЬ РЕДАКТИРОВАТЬ:

Вот ссылка на проект codeproject , который показывает использование INetCfgLockИнтерфейс COM и INetCfgLock::AcquireWriteLock в C #.

END EDIT

Надеюсь, это поможет.

...