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

3

Estou tentando adicionar suporte ToS (QoS) a um cliente SIP (tirado 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; continua a definir zeros (como visto no Wireshark). Alguém disse que é um "recurso" (leia bug) no Windows.

Eu li em esta página como criar uma política de QoS, criei uma manualmente usando a GUI:

Eu tentei os seguintes passos:

  1. Ir para HKLM\System\CurrentControlSet\Services\Tcpip\QoS
  2. Crie a chave QoS , se ela não existir
  3. Adicione um parâmetro REG-SZ denominado Do not use NLA e forneça o valor 1
  4. Reinicializar

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 o código-fonte C # será um pouco problemático já que eu uso o ambiente minGW e as ferramentas com ./configure && make && make install .

    
por Maxim Shoustin 28.11.2013 / 22:48

1 resposta

1

O artigo Atualizar programaticamente a política local no Windows descreve 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 A macro AutoHotkey , possivelmente compilada em um .exe, que fará as manipulações da GUI que criam essa política de grupo.

Se você estiver usando o Windows 8 ou o Server 2012, a configuração da QoS será possível por meio do PowerShell: Cmdlets de qualidade de serviço (QoS) de rede no Windows PowerShell .

    
por 01.12.2013 / 19:36