我正在尝试将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语言,使用C#源代码会有些问题,因为我将minGW
环境和工具与一起使用./configure && make && make install
。
有关通过.reg文件或reg add命令设置注册表的问题吗?
—
harrymc
@harrymc根本不是,不是注册表,而是组策略。IDK(如果将其存储到注册表中)。通过添加
—
马克西姆Shoustin
Do not use NLA
到注册表中的QoS,我仅激活创建的策略。否则它不工作