win10都有哪些版本1.每个内核对象都只是一个内存块,它由(2)

电脑杂谈  发布时间:2018-02-09 05:12:34  来源:网络整理

3.用于创建内核对象的函数(比如CreateSemaphore)总是返回具有完全访问权限的句柄。如果想限制一个句柄的访问权限,可以使用这些函数的扩展版本(*ex)。win10都有哪些版本

win10都有哪些版本_win10哪个版本打游戏好_win10哪个版本最流畅

4.由于在进程B的句柄表中,用一个新的记录项来引用了这个对象,所以这个互斥量对象的使用计数会被增加。

5。进程B创建内核对象时,如果已经存在,则传递的安全属性和其他参数会被忽略。

6.调用Create*函数和调用Open*函数的主要区别在于,如果对象不存在,Create*会创建,Open*只是调用失败。

7.终端服务的情况和前面描述的稍微有所区别。正在运行终端服务的计算机中,有多个用于内核对象的命名空间。其中一个时全局命名空间,所有客户端都能访问的内核对象要放在这个命名空间中。这个命名空间主要由服务使用。此外,每个客户端会话都有一个自己的命名空间,这样即使对象的名称相同也会不互相干扰。并非只有服务器才会遇到这种情况,因为Remote Desktop和快速用户切换特性也是利用终端服务会话来实现的。

8.在没有任何用户登陆的时候,服务会在第一个会话(Session 0)中启动,这个会话不是交互式的。和以前的版本不同,在Windows Vista中,只要用户登陆,应用程序就会在一个新的会话(与Session 0不同的一个会话)中启动。win10都有哪些版本所以.任何对象想要和用户应用程序共享,都必须在全局命名空间中创建它。

9.如果必须知道我们的进程在哪个Terminal Services会话中运行,可以借助于ProcessIdToSessionId函数。

10.一个服务的命名内核对象始终位于全局命名空间内。默认情况下,在终端服务中,应用程序自己的命名内核对象在会话的命名空间内。不过我们可以在其名称前加上“Global\”前缀强制把一个命名对象放入全局命名空间。或者在名称前加上“Local\”前缀把内核对象放入当前会话的命名空间中。

11.Microsoft认为Global和Local是保留关键字,所以除非为了强制一个特定的命名空间,否则不应在对象名称中使用它们。Session也是保留关键字,我们可以使用Session\<当前会话ID>\,但是不能使用另一个会话中的名称和Session前缀来新建一个对象,这样会导致函数调用失败。

12.所有保留关键字都是区分大小写的。

复制对象句柄

1.DuplicateHandle函数获得一个进程的句柄表中的一个记录项,然后在另一个进程的句柄表中创建这个记录项的一个副本。其第一个和第三个参数必须是进程内核对象。第二个参数是指向任何类型的内核对象的一个句柄。但是它的句柄值一定不能与调用DuplicateHandle函数的那个进程相关。

2.进程中永远不要关闭为另外一个进程复制出来的句柄。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-68237-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...