C # программно отключить большую разгрузку отправки (LSO)

#c# #.net

#c# #.net

Вопрос:

Мы развертываем приложение, для которого требуется несколько конкретных изменений конфигурации, связанных с сетевой картой. Одним из этих изменений является отключение «Large Send Offload V2» или «LSO» из всех сетевых адаптеров. Есть ли способ сделать это программно с помощью C # и .NET? Я хотел бы написать простое консольное приложение или приложение на основе форм, которое может делать это автоматически. Я изучал System.Management.ManagementClass, но, похоже, у него нет этих дополнительных опций. Заранее спасибо за вашу помощь.

введите описание изображения здесь

Комментарии:

1. Возможно, вы могли бы проверить, действительно ли эти настройки есть в реестре — и если да, вы могли бы сделать это таким образом.

2. Мне не удалось найти это в реестре, но я продолжу поиски.

3. Возможно, используя класс NetworkInterface и . GetProperties()?

4. Можете ли вы прислать мне ссылку на этот класс? Я нахожу только Win32_NetworkAdapter, и я не верю, что у него есть метод GetProperties.

5. Возможно, этот документ: ссылка — Взгляните внизу, там находится расположение реестра.

Ответ №1:

Я не уверен в способе C #, но есть командлеты PowerShell, которые могут это сделать с помощью Set-NetAdapterAdvancedProperty. Однако я не уверен, какой API используется для внесения изменений.

 Set-NetAdapterAdvancedProperty Ethernet -DisplayName "Large Send Offload V2 (IPv4)" -DisplayValue "Disabled" -NoRestart
  

Комментарии:

1. Я думаю , что c # поддерживает процессы командной строки через Process.Invoke или что-то подобное

2. @DavidBenKnoble это так и есть. Вы также можете использовать System.Management. Автоматизация для вызова PowerShell непосредственно из C # и получения объектов. Ссылка