So erstellen Sie richtlinienbasierte QoS unter Windows 7 über die CLI?

4309
Maxim Shoustin

Ich versuche, einem SIP-Client (von Open Source Linphone genommen) ToS (QoS) -Unterstützung hinzuzufügen:

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

In Windows 7 scheiterten jedoch alle meine Versuche, ToS hinzuzufügen. es setzt weiterhin Nullen (wie in Wireshark zu sehen). Jemand sagte, es sei eine "Funktion" (Lesefehler) in Windows.

Ich habe auf dieser Seite gelesen, wie eine QoS-Richtlinie erstellt wird. Daher habe ich eine manuell mithilfe der GUI erstellt:

Screenshot of Policy Editor showing QoS configuration

Ich habe folgende Schritte ausprobiert:

  1. Gehe zu HKLM\System\CurrentControlSet\Services\Tcpip\QoS
  2. Erstellen Sie den QoSSchlüssel, falls er nicht vorhanden ist
  3. Fügen Sie einen REG-SZParameter mit dem Namen hinzu Do not use NLAund geben Sie den Wert an1
  4. Starten Sie neu

Es funktioniert wie gewünscht, aber jetzt frage ich mich, wie ich die Erstellung einer solchen Richtlinie automatisieren kann (z. B. damit sie während einer Programminstallation durchgeführt werden kann).

[BEARBEITEN]

Mein Code ist reines C und die Verwendung von C # -Quellcode wird ein wenig problematisch sein, da ich die minGWUmgebung und die Tools dazu benutze ./configure && make && make install.

3
Ist die Frage zum Einrichten der Registrierung über eine REG-Datei oder den Befehl [reg add] (http://technet.microsoft.com/de-de/library/cc742162.aspx)? harrymc vor 10 Jahren 0
@harrymc überhaupt nicht, es ist nicht Registrierung, sondern Gruppenrichtlinien. IDK, wenn es in der Registry gespeichert ist. Durch das Hinzufügen von "Keine Verwendung von NLA" zu QoS in der Registrierung aktiviere ich nur die erstellte Richtlinie. ansonsten funktioniert es nicht Maxim Shoustin vor 10 Jahren 0

1 Antwort auf die Frage

1
harrymc

Der Artikel Programmgesteuerte Aktualisierung lokaler Richtlinien in Windows beschreibt eine .NET-Bibliothek, die dieses Problem unterstützen kann.

Wenn Sie kein .net-Programm schreiben möchten, besteht die einfachste Lösung darin, ein AutoHotkey- Makro zu erstellen, das möglicherweise zu einer .exe- Datei kompiliert wird und die GUI-Manipulationen durchführt, mit denen diese Gruppenrichtlinie erstellt wird.

Wenn Sie Windows 8 oder Server 2012 verwenden, ist die Konfiguration von QoS über PowerShell:
QoS-Cmdlets (Network Quality of Service) in Windows PowerShell möglich .

Vielen Dank für die Information, ich fand diesen Beitrag: http: //pete.akeo.ie/2011/03/porgramatisch-setting-and-applying.html hilfreich. Ich habe jedoch Gpedit.h nicht unter Windows 7 gefunden. Klingt so, als würde es nicht unter Windows 7 laufen. Ich habe eine SIP-Videoanwendung, die Video mit ToS 0 sendet und Code nicht funktioniert. Ich recherchiere weiter. Vielen Dank Maxim Shoustin vor 10 Jahren 0
Ich habe auch diesen Beitrag gesehen und beschlossen, ihn nicht zu empfehlen. Wenn Sie sich mit Programmierung beschäftigen, ist auch der Quellcode der von mir gefundenen .NET-Bibliothek verfügbar. harrymc vor 10 Jahren 0
Ich bin in der Programmierung aber mein Code ist reines C lang mit make unter minGL kompiliert Maxim Shoustin vor 10 Jahren 0
Ich habe nie MinGL verwendet, bezweifle aber, dass die Integration in Windows so gut wie Visual Studio ist. Das Programm, das Sie benötigen, ist so einfach, dass Sie .NET in Betracht ziehen. Microsoft Visual Studio Express für Windows Desktop ist kostenlos. harrymc vor 10 Jahren 0
Ich habe VS8 und VS10, es ist in Ordnung, die Probleme, die das Plugin von Martin Eden in C # geschrieben hat, und ich kompiliere Code mit "gcc", also suche ich nach dem Weg, es zu benutzen. Vielen Dank Maxim Shoustin vor 10 Jahren 0
Es gibt viele Ressourcen zum Aufruf von C # von C und umgekehrt. Zum Beispiel [C # von C aufrufen] (http://stackoverflow.com/questions/4428267/calling-c-sharp-from-c). gcc ist schwieriger, aber eine Isolierungsmethode ist das Erstellen einer DLL (möglicherweise statisch verknüpft). harrymc vor 10 Jahren 0