内核对象空间

  终端服务器的名字空间 终端服务器拥有内核对象的多个名字空间。

如果存在一个可供内核对象使用的全局名字空间,就意味着它可以供所有的客户程序会话访问。该名字空间主要供服务程序使用。

此外,每个客户程序会话都有它自己的名字空间。它能防止运行相同应用程序的两个或多个会话之间出现互相干扰的情况,也就是说一个会话无法访问另一个会话的对象,尽管该对象拥有相同的名字。

在没有终端服务器的机器上,服务程序和应用程序拥有上面所说的相同的内核对象名字空间;

而在拥有终端服务器的机器上,却不是这样。服务程序的名字空间对象总是放在全局名字空间中。

按照默认设置,在终端服务器中,应用程序的命名内核对象将放入会话的名字空间中。但是,如果像下面这样将“Global/”置于对象名的前面,就可以使命名对象进入全局名字空间:

HANDLE h = CreateEvent(NULL,FALSE,"Global//MyName");

也可以显式说明想让内核对象进入会话的名字空间,

方法是将“Local/”置于对象名的前面: HANDLE h = CreateEvent(NULL,FALSE,"Local//MyName");

Microsoft将Global和Local视为保留关键字,除非要强制使用特定的名字空间,否则不应该使用这两个关键字。

你可能感兴趣的:(内核对象空间)