Smss.exe - 设置任何核心亲和性都会破坏 Windows 7/Windows Server 2012 上的 rdp

Smss.exe - 设置任何核心亲和性都会破坏 Windows 7/Windows Server 2012 上的 rdp

我曾尝试将 smss.exe 的核心亲和性设置为不在 Windows 7 和 Windows Server 2008r2 上的一个关键核心上运行。事实证明,简单地将核心亲和性设置为任何值(甚至是 smss.exe 已经具有的完整掩码)似乎有效,但会阻止用户在重新启动之前通过 rdp 进入计算机。已登录的用户可能会继续使用他们的会话。

此行为不会发生在 Windows 8/Windows Server 2012 上。

有人知道为什么会发生这种情况吗?

答案1

Smss.exe(会话管理器)对于创建新用户会话(包括人们远程登录时的终端服务会话)至关重要。

当 Smss 启动时,它会检查自己是否是第一个实例(主 Smss)或者是主 Smss 启动以创建会话的自身的实例。

根据 Mark Russinovich 的Windows 内部原理书中,Smss.exe 包含以特殊方式利用处理器亲和性的算法:

“通过在启动和终端服务会话创建期间创建自身的多个实例,Smss 可以同时创建多个会话(最多四个并发会话,另外每个额外的 CPU 都会创建一个会话)。”

和:

如果系统支持热处理器添加,则启用自动处理器亲和性更新,以便在添加新处理器时新会话将利用新处理器。

您对进程亲和力掩码的调整可能会干扰这些算法。

简而言之,不要这么做。无论你想实现什么,你很可能用错了方法。

相关内容