
私は、SIP クライアント (オープンソースの Linphone から取得) に ToS (QoS) サポートを追加しようとしています。
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
- リブート
期待どおりに動作しますが、ここでの質問は、このようなポリシーの作成を自動化するにはどうすればよいかということです (たとえば、プログラムのインストール中に実行できるようにするなど)。
[編集]
minGW
私のコードは純粋な C であり、の環境とツールを使用するため、C# ソース コードを使用すると少し問題が発生します./configure && make && make install
。
答え1
記事Windows でローカル ポリシーをプログラム的に更新するこの問題を解決するのに役立つ .NET ライブラリについて説明します。
.netプログラムを書きたくない場合は、最も簡単な解決策は、 オートホットキーグループ ポリシーを作成する GUI 操作を実行するマクロ (.exe にコンパイルされる可能性があります)。
Windows 8 または Server 2012 を使用している場合は、PowerShell を使用して QoS を構成できます。
Windows PowerShell のネットワーク Quality of Service (QoS) コマンドレット。