两种访问模式

Windows使用了内核模式和用户模式两种访问权限,来控制对内存的访问。每种资源都会标记相应的访问模式,只有对应模式才能访问对应的资源。

系统地址空间页只能通过内核模式。所有的用户地址空间都可以从用户模式访问。

当应用程序调用一个系统函数时,用户的应用程序会从用户模式切换到内核模式去执行。

内核对象

内核对象是系统提供的用户模式下代码与内核模式下代码进行交互的基本接口。内核对象是一块内核分配的内存,只能在内核模式下的被访问。其资源为系统资源。内核对象的数据结构是隐蔽的,必须通过一个对象服务才能从对象中得到数据或向其中输入数据。

作用:为系统资源提供名字;在进程之间共享资源和数据;保护资源不会被未经认可的代码访问;跟踪对象的引用情况。

对象句柄

调用函数创建内核对象时,函数返回标识这个对象的句柄。来定位内核对象。

使用计数

内核对象是进程内的资源,使用计数属性记录对特定内核对象的引用次数,当系统发现引用次数是0时,自动关闭资源。