Como criar QoS baseado em políticas no Windows 7 por meio de CLI?

Como criar QoS baseado em políticas no Windows 7 por meio de CLI?

Estou tentando adicionar suporte ToS (QoS) a um cliente SIP (retirado do Linphone de código aberto) da seguinte forma:

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

Mas no Windows 7, todas as minhas tentativas de adicionar ToS falharam; ele continua definindo zeros (como visto no Wireshark). Alguém disse que é um “recurso” (leia-se bug) do Windows.

eu li emesta páginacomo criar uma política de QoS, então criei uma manualmente usando a GUI:

Captura de tela do Policy Editor mostrando a configuração de QoS

Eu tentei as seguintes etapas:

  1. Vá paraHKLM\System\CurrentControlSet\Services\Tcpip\QoS
  2. Crie a QoSchave se ela não existir
  3. Adicione um REG-SZparâmetro chamado Do not use NLAe atribua o valor a ele1
  4. Reinício

Funciona como desejado, mas agora minha pergunta é como posso automatizar a criação de tal política (por exemplo, para que isso possa ser feito durante a instalação de um programa)?

[EDITAR]

Meu código é C puro e usar código-fonte C# será um pouco problemático, pois uso o minGWambiente e as ferramentas com ./configure && make && make install.

Responder1

O artigoAtualizando programaticamente a política local no Windowsdescreve uma biblioteca .NET que pode ajudar com esse problema.

Se você não deseja escrever um programa .net, a solução mais simples seria criar um AutoHotkeymacro, possivelmente compilada em um .exe, que fará as manipulações da GUI que criam essa política de grupo.

Se você estiver usando Windows 8 ou Server 2012, a configuração de QoS é possível via PowerShell:
Cmdlets de qualidade de serviço (QoS) de rede no Windows PowerShell.

informação relacionada