台式机
桌面具有逻辑显示图面,并包含用户界面对象,如窗口、菜单和挂钩;它可用于创建和管理窗口。 每个桌面对象都是一个安全对象。 创建桌面时,它将与调用进程的当前 窗口工作站 相关联,并分配给调用线程。
窗口消息只能在同一桌面上的进程之间发送。 此外,在特定桌面上运行的进程挂钩过程只能接收用于在同一桌面中创建的窗口的消息。
与交互式窗口工作站 Winsta0 关联的桌面可以设置为显示用户界面并接收用户输入,但一次只有其中一个桌面处于活动状态。 此活动桌面也称为 输入桌面,是当前对用户可见并接收用户输入的桌面。 应用程序可以使用 OpenInputDesktop 函数获取输入桌面的句柄。 具有所需访问权限的应用程序可以使用 SwitchDesktop 函数指定不同的输入桌面。
默认情况下,交互式窗口工作站中有三个桌面:Default、ScreenSaver 和 Winlogon。
当 Winlogon 以登录用户身份启动初始进程时,将创建默认桌面。 此时,默认桌面将变为活动状态,并用于与用户交互。
每当激活安全屏幕保护程序时,系统都会自动切换到 ScreenSaver 桌面,从而保护默认桌面上的进程免受未经授权的用户的影响。 不安全的屏幕保护程序在 Winsta0\Default 上运行。
用户登录时,Winlogon 桌面处于活动状态。 当 shell 指示它已准备好显示某些内容时,或在 30 秒后(以先到者为准)时,系统将切换到默认桌面。 在用户会话期间,当用户按 Ctrl+Alt+DEL 键序列或“用户帐户控制 (UAC) ”对话框处于打开状态时,系统会切换到 Winlogon 桌面。
Windows Server 2003 和 Windows XP/2000: 不支持 UAC 对话框。
Winlogon 桌面的安全描述符允许访问一组非常受限的帐户,包括 LocalSystem 帐户。 应用程序通常不会在其令牌中携带这些帐户的任何 SID,因此在 Winlogon 桌面处于活动状态时无法访问 Winlogon 桌面或切换到其他桌面。
有关详情,请参阅以下主题: