How to create Policy-based QoS on Windows 7 through CLI?

I am trying to add ToS (QoS) support to a SIP client (taken from open-source Linphone) as so:

retval = setsockopt(session->rtp.socket, proto, value_type, (SOCKET_OPTION_VALUE)&tos, sizeof(tos));

But in Windows 7, all my attempts to add ToS failed; it continues to set zeros (as seen in Wireshark). Someone said it's a “feature” (read bug) in Windows.

I read in this page how to create a QoS policy, so I created one manually by using the GUI:

Снимок экрана редактора политик с настройкой QoS

Я попробовал следующие шаги:

  1. Идти к HKLM\System\CurrentControlSet\Services\Tcpip\QoS
  2. Создать QoS ключ, если он не существует
  3. Добавить REG-SZ названный параметр Do not use NLA и дать ему значение 1
  4. перезагружать

Это работает, как хотелось бы, но теперь мой вопрос заключается в том, как я могу автоматизировать создание такой политики (например, чтобы это можно было сделать во время установки программы)?

[РЕДАКТИРОВАТЬ]

Мой код - чистый C, и использовать исходный код C# будет немного проблематично, так как я использую minGW окружающая среда и инструменты с ./configure && make && make install,

1 ответ

Решение

В статье " Обновление локальной политики в Windows программным способом" описывается библиотека.NET, которая может помочь в решении этой проблемы.

Если вы не хотите писать программу.net, самым простым решением будет создание макроса AutoHotkey, возможно скомпилированного в.exe, который будет выполнять манипуляции с графическим интерфейсом, которые создают эту групповую политику.

Если вы используете Windows 8 или Server 2012, настройка QoS возможна через PowerShell:
Командлеты по качеству обслуживания сети (QoS) в Windows PowerShell.

Другие вопросы по тегам