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:
Я попробовал следующие шаги:
- Идти к
HKLM\System\CurrentControlSet\Services\Tcpip\QoS
- Создать
QoS
ключ, если он не существует - Добавить
REG-SZ
названный параметрDo not use NLA
и дать ему значение1
- перезагружать
Это работает, как хотелось бы, но теперь мой вопрос заключается в том, как я могу автоматизировать создание такой политики (например, чтобы это можно было сделать во время установки программы)?
[РЕДАКТИРОВАТЬ]
Мой код - чистый C, и использовать исходный код C# будет немного проблематично, так как я использую minGW
окружающая среда и инструменты с ./configure && make && make install
,
1 ответ
В статье " Обновление локальной политики в Windows программным способом" описывается библиотека.NET, которая может помочь в решении этой проблемы.
Если вы не хотите писать программу.net, самым простым решением будет создание макроса AutoHotkey, возможно скомпилированного в.exe, который будет выполнять манипуляции с графическим интерфейсом, которые создают эту групповую политику.
Если вы используете Windows 8 или Server 2012, настройка QoS возможна через PowerShell:
Командлеты по качеству обслуживания сети (QoS) в Windows PowerShell.