ToS(QoS)サポートをSIPクライアント(オープンソースのLinphoneから取得)に次のように追加しようとしています:
retval = setsockopt(session->rtp.socket, proto, value_type, (SOCKET_OPTION_VALUE)&tos, sizeof(tos));
しかし、Windows 7では、ToSを追加する試みはすべて失敗しました。 (Wiresharkで見られるように)ゼロを設定し続けます。これはWindowsの「機能」(バグを読む)だと誰かが言った。
このページ QoSポリシーの作成方法を読んだので、GUIを使用して手動で作成しました。
次の手順を試しました。
HKLM\System\CurrentControlSet\Services\Tcpip\QoS
に移動しますQoS
キーが存在しない場合は、作成しますREG-SZ
という名前のDo not use NLA
パラメータを追加し、値1
を指定します希望どおりに機能しますが、私の質問は、そのようなポリシーの作成を自動化するにはどうすればよいですか(たとえば、プログラムのインストール中に実行できるようにするため)?
[編集]
私のコードは純粋なCであり、minGW
環境と./configure && make && make install
のツールを使用しているため、C#ソースコードを使用するのは少し問題があります。
記事 Windowsでローカルポリシーをプログラムで更新する は、この問題を支援できる.NETライブラリについて説明しています。
.netプログラムを作成したくない場合、最も簡単な解決策は、そのグループポリシーを作成するGUI操作を実行する AutoHotkey マクロを作成することです。これはおそらく.exeにコンパイルされます。
Windows8またはServer2012を使用している場合、PowerShellを介してQoSの構成が可能です。
Windows PowerShellのネットワークサービス品質(QoS)コマンドレット 。