Sessions, Desktops and Windows Stations

session是由代表单个用户登录会话的所有进程和系统对象组成的。其中的对象包括所有的窗口,桌面和windows stations。桌面是特定session页的内存池并且被加载到内核存储区。这个区域正是session私有的GUI对象的存储区域。windows station基本上可以被描述为包含桌面和进程的安全边界。因此,一个session可以包含多个windows station,而每个windows station又可拥有多个桌面。

只有被称为 winsta0 的windowsstation才被允许与用户交互。在winsta0下共被载入三个桌面:winlogon(登陆界面),缺省桌面(用户桌面),和Disconnect( ? )。它们三个都有各自的显存,这就是为什么当你锁定工作站时你的主桌面会消失。当你锁定工作站时,屏幕由用户桌面切换到登录界面,并且两者之间并没有交互。在windows vista这一点更是体现的淋漓尽致。例如当你看到UAC弹出时,系统会将用户桌面的快照降低灰度,而在前端显示UAC窗口,UAC窗口是安全桌面(vista系统的新特性类似登录桌面)并且在你给予权限之前禁止你与用户桌面的交互。

其他windows station存在但并不与用户交互。例如:加载到‘service-0x0-3e7$’无用户交互windows station中的服务。另外也有些需要与用户交互的服务被加载到winsta0。

内存页是被所有用户所共享的,但是每个用户会将其各自的session空间映射到虚拟内存。session空间被划分到四个不同的区域:

session 结构存储区-内存控制器结构,其中包含session工作集

session映像存储区-保留一块私有的win32k.sys修改过的数据,一个sin32k,sys代码副本和原始数据副本,还有各种驱动

session视图存储区-包括桌面堆在内的session映射视图

session分页存储区-用于这个session被分页了的内存池

        正如前文所提到的,一个桌面正是被加载了显示信息的内核对象。其中包括窗口,菜单,还有钩子。session0是一个基础session,服务在其中运行,并且一般情况下也是控制台session。在windows Vista中session0仅仅用来运行服务,而控制台session一般在session1。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值