关于WIN32 API

来源:互联网 发布:mac声音无法调节 编辑:程序博客网 时间:2024/06/05 17:41

内核对象

它一般由OS创建与管理的对象,内核对象其实是由系统内核分配的一块内存。这个内存是一个数据结构,包含了关于该对象的信息。

内核对象数据结构只能由内核访问,应用程序不能在内存中定位这些数据结构,也不可能直接改变它们的内容,而只能通过WIN32提供的一套API函数来操纵这些内核对象和相应的数据结构。当用户调用创建内核对象的API函数时,函数返回一个用于代表该对象的句柄,它可以被进程内的所有线程使用。

对象与句柄

对象是指一个静态定义的对象类型的一个运行实例。

对象类型(在OOP中称为类)由一个系统定义的数据类型、在该对象类上进行操作的一系列函数和一些对象属性构成。

在OS中使用对象的概念和方法与普通数据结构的一个关键的区别在于:对象的内部结构对外界是隐藏的,必须使用系统提供的接口函数来访问内部数据,而不能直接对数据进行访问。这样就防止了用户对底层数据的破坏性操作,同时减小了具体实现的改变对用户的影响。

句柄是在系统创建对象后返回的用来代表该对象的一个值。通过句柄用户就能够对对象进行访问,它代表对对象的引用。形象的说,句柄就像你的身份证号码一样表示一个对象实体。

安全属性

内核对象能够被一个安全描述符来保护。安全描述符是针对内核对象而言,每个内核对象在创建时都可以指定安全描述符,而用户对象或者其他对象都不能指定安全描述符。安全描述符描述了谁创建了该对象、谁能访问该对象、谁不能访问该对象等系列安全属性。安全描述符类型为SECURITY_ATTRIBUTES结构体(具体见MSDN)。

 

原创粉丝点击