¿Cómo crear QoS basada en políticas en Windows 7 a través de CLI?

¿Cómo crear QoS basada en políticas en Windows 7 a través de CLI?

Estoy intentando agregar soporte ToS (QoS) a un cliente SIP (tomado de Linphone de código abierto) de la siguiente manera:

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

Pero en Windows 7, todos mis intentos de agregar ToS fallaron; continúa estableciendo ceros (como se ve en Wireshark). Alguien dijo que es una "característica" (léase error) en Windows.

leí enesta páginacómo crear una política de QoS, así que creé una manualmente usando la GUI:

Captura de pantalla del Editor de políticas que muestra la configuración de QoS

Intenté los siguientes pasos:

  1. Ir aHKLM\System\CurrentControlSet\Services\Tcpip\QoS
  2. Crea la QoSclave si no existe
  3. Agregue un REG-SZparámetro llamado Do not use NLAy asígnele el valor.1
  4. Reiniciar

Funciona como lo deseo, pero ahora mi pregunta es ¿cómo puedo automatizar la creación de dicha política (por ejemplo, para que pueda realizarse durante la instalación de un programa)?

[EDITAR]

Mi código es C puro y usar el código fuente de C# será un poco problemático ya que uso el minGWentorno y las herramientas con ./configure && make && make install.

Respuesta1

El artículoActualización programática de la política local en Windowsdescribe una biblioteca .NET que puede ayudar con este problema.

Si no desea escribir un programa .net, la solución más sencilla sería crear un AutoHotkeymacro, posiblemente compilada en un .exe, que realizará las manipulaciones de la GUI que crean esa política de grupo.

Si utiliza Windows 8 o Server 2012, la configuración de QoS es posible a través de PowerShell:
Cmdlets de calidad de servicio (QoS) de red en Windows PowerShell.

información relacionada