如何透過 CLI 在 Windows 7 上建立基於策略的 QoS?

如何透過 CLI 在 Windows 7 上建立基於策略的 QoS?

我正在嘗試向 SIP 用戶端添加 ToS (QoS) 支援(取自開源 Linphone),如下所示:

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

但在Windows 7中,我所有新增ToS的嘗試都失敗了;它繼續設定零(如 Wireshark 中所示)。有人說這是 Windows 中的一個「功能」(讀取錯誤)。

我讀到這一頁如何建立 QoS 策略,因此我使用 GUI 手動建立了一個策略:

顯示 QoS 配置的策略編輯器的螢幕截圖

我嘗試了以下步驟:

  1. HKLM\System\CurrentControlSet\Services\Tcpip\QoS
  2. QoS如果密鑰不存在則創建
  3. 新增一個REG-SZ名為的參數Do not use NLA並為其賦予值1
  4. 重啟

它按預期工作,但現在我的問題是如何自動建立這樣的策略(例如,以便可以在程式安裝期間完成)?

[編輯]

我的程式碼是純 C 的,使用 C# 原始碼會有點問題,因為我minGW使用./configure && make && make install.

答案1

文章以程式設計方式更新 Windows 中的本機策略描述了一個可以幫助解決此問題的 .NET 程式庫。

如果您不想編寫 .net 程序,最簡單的解決方案是建立一個 自動熱鍵宏,可能編譯為 .exe,它將執行建立該群組原則的 GUI 操作。

如果您使用的是 Windows 8 或 Server 2012,則可以透過 PowerShell 設定 QoS:
Windows PowerShell 中的網路服務品質 (QoS) Cmdlet

相關內容