3

Я пытаюсь добавить поддержку ToS (QoS) в SIP-клиент (взятый из открытого телефона Linphone) следующим образом:

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

Но в Windows 7 все мои попытки добавить ToS потерпели неудачу; он продолжает устанавливать нули (как видно из Wireshark). Кто-то сказал, что это «особенность» (ошибка чтения) в Windows.

На этой странице я прочитал, как создать политику QoS, поэтому я создал ее вручную с помощью графического интерфейса:

Снимок экрана редактора политик с настройкой 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 ответ1

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .