Mar*_*gel 2 c c++ windows windows-10
Windows 10有一项名为Wifi Sense的新功能.该功能将WLAN适配器连接到附近的任何开放热点.它还通过Facebook与朋友共享WLAN密码.根据我们的测试它:
我找到了几个答案如何通过Windows UI禁用Wifi Sense:例如这里.但是,没有答案真的禁止为开放热点创建新的配置文件.有没有办法完全禁用Wifi Sense?最好以编程方式.
TL; DR:有未记录的注册表值可以禁用Wifi Sense的某些功能.该值位于键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\features并分别命名为WiFiSenseCredShared和WiFiSenseOpen.首先控制是否共享Wifi凭证第二个控制Wifi Sense是否为打开的热点创建新的配置文件.两者的默认值(至少在我的机器上)是1.将它们更改为0. WcmSvcservice包含Wifi Sense的实现,需要在注册表更改后重新启动.我尝试发送SERVICE_CONTROL_PARAMCHANGE到WcmSvc通过ControlServiceAPI但我得到了ERROR_ACCESS_DENIED如此全面的服务重启是必要的,直到MS发布一些公共API.请注意,由于值未记录,MS可能会更改其位置,甚至在下一版本的Windows中删除它们.
编辑:上面推荐的值停止使用最新版本的Windows 10.但是我发现Wifi Sense配置状态存储在值中
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\features\S-1-5-21-774371734-2276234837-1234541976-1000\FeatureStates.请注意,密钥名称S-1-5-21-774371734-2276234837-1234541976-1000可能因机器而异.值本身是一个具有以下语义的位掩码:
enum EWifiManagerFeatureStates
{
CONNECT_OPEN_HOTSPOTS = 0x0001,
CONNECT_NETWORKS_FROM_CONTACTS = 0x0040,
CONNECT_PAID_HOTSPOTS = 0x200,
}
Run Code Online (Sandbox Code Playgroud)
这些位必须设置为0才能完全禁用Wifi Sense.我无法找到其余位的含义,但其他人也可以尝试将它们设置为0.
长篇小说:对于感兴趣的人,这里是一个简短的描述我如何找到未记录的注册表值.它可能会帮助其他人找到更多未记录的注册表值.
首先,我猜测应该有一个无证的注册表设置,可以关闭WifiSense.所以我安装了Process Monitor工具,它能够列出所有正在运行的进程的所有注册表访问.我打开了Windows设置用户界面Network/Wifi/Advanced Wifi Settings并更改了与Wifi Sense相关的设置.然后我查看了Process Monitor输出,以查看访问了哪些注册表部分.我将输出过滤到RegSetValue以仅查看写入并减少其他注册表操作的噪音.
我看到几次写入key的值
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WcmSvc\wifinetworkmanager\features\S-1-5-21-774371734-2276234837-1234541976-1000
在注册注册表中的密钥时,我没有发现任何有趣的内容,但其父密钥中有两个非常可疑的值(...\wifinetworkmanager\features).值为DWORD(数字),名为WiFiSenseCredShared和WiFiSenseOpen.两者都设置为1.我将它们设置为0并重新启动WcmSvc服务,以便重新读取新值.此Wifi Sense关闭后.我能够删除它创建的配置文件,并且没有创建新的打开配置文件.