“哪些你不曾了解的WindowStations窗口站”
今天,我们来谈谈你不知道的windowstations窗口车站的复印件吧。 在这里,我简单介绍一下你不知道的窗口车站。 希望能帮到大家。
视窗站窗口站? 一听到这个名词,很多读者就头脑一片空白。 windowstations窗口站是什么? 这是很专业的名词吗? 没必要知道吧。 这是很多网民的第一印象。 编辑对你说,也不是。 其实,window stations和桌面可能是windows nt服务中最不同的。 大多数程序员不会直接接触这两个对象,但客户必须随时接触。 与其他windows nt对象(如事件、互斥量和信号)一样,窗口和桌面对象是安全的。 窗口对象包括剪贴板、全局原子集和更多的桌面对象。 窗口是可见的或不可见的。 可用的窗口站接收客户通过鼠标或键盘输入的信息。 显示设备也已连接的新闻可以向交互式客户显示。
在windows nt 4.0中,只有一个窗口站被识别为winsta0。 可见的窗口也是交互式定义的。 隐藏的窗口没有交互,也不接受客户的输入,也没有显示设备已连接。
如前所述,桌面包含在窗口对象中。 桌面对象包含逻辑显示面,以及窗口、菜单等。 只有属于可以查看的窗口站的台式机才能查看和接收客户的输入。 这个桌面叫做活动桌面。
作为交互式客户,您可能会遇到三种不同的台式机:默认、winlogon和屏幕服务器。 winlogon桌面是按下ctrl+alt+delete键时出现在眼前的对话框。 默认桌面是由浏览器或交互式客户端启动的所有进程。 应该被理解为交互式应用程序桌面。 最终的桌面是屏幕服务器,显示屏幕服务器。 可能观察到了可以在不同的桌面之间切换。 一位客户按下ctrl+alt+delete键,操作系统将从默认状态切换到winlogon桌面。 如果在登录对话框中选择取消,系统将再次返回到默认桌面。 进行切换时,有人问其他桌面的东西是否被破坏了,但回答是否定的。 我看不见其他的桌面,但还在那里。
系统中的所有进程都与window station和桌面相关。 一位客户首次登录时,交互式窗口站、winsta0和默认桌面与该客户的shell进程相关联。 现在客户可以看到壳牌了。 否则,客户什么也看不见。 之后,由shell启动的所有进程都与winsta0和默认桌面相关联。
startupinfo数据结构的LP桌面成员,也可以指定进程与哪个窗口站和桌面相关联。 此数据结构传播到两个函数: createprocess和createprocessasuser。 可以将LP桌面初始化为空。 意思是createprocess函数采用与调用过程相同的窗口站和桌面。 可以将自己的窗口站和桌面的组合定义为winsta0\default或空字符串。 此参数允许操作系统创建新的不可见的窗口站和桌面,以启动该进程。 与这两个新对象相关联的安全性为每个组提供完全访问权限。
类型结构_启动信息
魔兽争霸赛;
lptstr保留型;
LPTSTR LP桌面;
lptstr LP标题;
dword dwx;
万维网;
魔兽世界大小;
魔兽世界大小;
dword dwxcountchars;
魔兽世界计数;
万维网文档属性;
万维网标志;
魔兽世界;
word CB保留2;
液化字节优先2;
手持主机输入;
手持主机输出;
手持集线器;
启动信息,* LP启动信息;
窗口和桌面是安全的对象。 与window station和桌面相关的进程需要对这些对象具有适当的访问权限。 如果进程没有权限,则为user32.dllinitializationfailure ( user32.dll初始化失败)或kernel32.dllinitializationfailure.) kernel33 那么,适当的权限是什么意思呢? 如果有对象,如文件。 可以为该文件创建dacl,以便用户对该文件具有读取权限。 window station和桌面用同样的方法工作。
对桌面对象的访问权限之一称为桌面_ createwindow。 如果客户未被授予此访问权限,则此客户启动的流程将无法创建窗口。 不幸的是,用户APIs (如createwindow )在遇到与createfile或createmutex api类似的安全问题时不会返回“被访问”的消息。 user32.dll中的windows应用程序将终止,并发生dll初始化错误。 kernel32.dll初始化过程在创建仪表板窗口时发生。 例程在没有对window station和桌面的适当访问权限时启动cmd.exe。 但不幸的是,createprocess没有检查这个错误的机制。 如果客户没有对window station和桌面的适当访问权限,则不会返回错误消息。 createprocess将启动此应用程序,并在dll失败后退出该应用程序。
程序员也有跨越user32.dllinitializationfailure ( user32.dll初始化失败消息)的方法。 系统有一堆用于为窗口站分配内存。 内存有限。 默认情况下,可以创建7个或8个窗口站对象。 如果你把内存都用光了,你就会看到这个消息。 不过,幸运的是,有一个注册表项可以用来添加这个设置。 (请参阅知识库体系结构q 142676 )
如果没有开发服务,只有普通的应用程序,则window stations和桌面不是真正的问题。 您的应用程序只与交互式桌面winsta0\default相关联。 如果正在开发服务,则可能与以下窗口站和桌面的组合有关:
winsta 0缺省值
服务- 0x0- 3e7$ \默认
服务帐户号码\默认
winsta0\default在本地系统帐户中运行,与桌面交互的服务有关。 (对于服务类型,必须指定服务_交互_处理标志。) . 如果服务与不同的桌面进行交互,则它与service-0x0-3e7$\default相关联。 这是一个不可见的窗口站。 你一定知道这乱七八糟的0x0-3e7$是什么,那是服务的登录sid。 登录sid是唯一的。 指客户所属的组。 系统中的所有客户都有登录sid。
我相信在你不知道的windowstations窗口可以用这个复印件帮助你,在和好朋友分享的时候,也欢迎有兴趣的朋友们一起探讨。
免责声明:雪球目录网免费收录各个行业的优秀中文网站,提供网站分类目录检索与关键字搜索等服务,本篇文章是在网络上转载的,本站不为其真实性负责,只为传播网络信息为目的,非商业用途,如有异议请及时联系btr2031@163.com,本站的工作人员将予以删除。
上一篇:“分享让电脑快速启动的做法”
下一篇:“分享隐藏超级客户的做法”