关于WIN32 API
2011-06-24 15:24
190 查看
内核对象
它一般由OS创建与管理的对象,内核对象其实是由系统内核分配的一块内存。这个内存是一个数据结构,包含了关于该对象的信息。
内核对象数据结构只能由内核访问,应用程序不能在内存中定位这些数据结构,也不可能直接改变它们的内容,而只能通过WIN32提供的一套API函数来操纵这些内核对象和相应的数据结构。当用户调用创建内核对象的API函数时,函数返回一个用于代表该对象的句柄,它可以被进程内的所有线程使用。
对象与句柄
对象是指一个静态定义的对象类型的一个运行实例。
对象类型(在OOP中称为类)由一个系统定义的数据类型、在该对象类上进行操作的一系列函数和一些对象属性构成。
在OS中使用对象的概念和方法与普通数据结构的一个关键的区别在于:对象的内部结构对外界是隐藏的,必须使用系统提供的接口函数来访问内部数据,而不能直接对数据进行访问。这样就防止了用户对底层数据的破坏性操作,同时减小了具体实现的改变对用户的影响。
句柄是在系统创建对象后返回的用来代表该对象的一个值。通过句柄用户就能够对对象进行访问,它代表对对象的引用。形象的说,句柄就像你的身份证号码一样表示一个对象实体。
安全属性
内核对象能够被一个安全描述符来保护。安全描述符是针对内核对象而言,每个内核对象在创建时都可以指定安全描述符,而用户对象或者其他对象都不能指定安全描述符。安全描述符描述了谁创建了该对象、谁能访问该对象、谁不能访问该对象等系列安全属性。安全描述符类型为SECURITY_ATTRIBUTES结构体(具体见MSDN)。
它一般由OS创建与管理的对象,内核对象其实是由系统内核分配的一块内存。这个内存是一个数据结构,包含了关于该对象的信息。
内核对象数据结构只能由内核访问,应用程序不能在内存中定位这些数据结构,也不可能直接改变它们的内容,而只能通过WIN32提供的一套API函数来操纵这些内核对象和相应的数据结构。当用户调用创建内核对象的API函数时,函数返回一个用于代表该对象的句柄,它可以被进程内的所有线程使用。
对象与句柄
对象是指一个静态定义的对象类型的一个运行实例。
对象类型(在OOP中称为类)由一个系统定义的数据类型、在该对象类上进行操作的一系列函数和一些对象属性构成。
在OS中使用对象的概念和方法与普通数据结构的一个关键的区别在于:对象的内部结构对外界是隐藏的,必须使用系统提供的接口函数来访问内部数据,而不能直接对数据进行访问。这样就防止了用户对底层数据的破坏性操作,同时减小了具体实现的改变对用户的影响。
句柄是在系统创建对象后返回的用来代表该对象的一个值。通过句柄用户就能够对对象进行访问,它代表对对象的引用。形象的说,句柄就像你的身份证号码一样表示一个对象实体。
安全属性
内核对象能够被一个安全描述符来保护。安全描述符是针对内核对象而言,每个内核对象在创建时都可以指定安全描述符,而用户对象或者其他对象都不能指定安全描述符。安全描述符描述了谁创建了该对象、谁能访问该对象、谁不能访问该对象等系列安全属性。安全描述符类型为SECURITY_ATTRIBUTES结构体(具体见MSDN)。
相关文章推荐
- Win32关于GDI 的API (Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的API,可以很高效的实现想要)
- 关于 Hook Win32 API 的一点研究
- 关于Win32 API 函数 ReadDirectoryChangesW(CDirectoryChangeWatcher by Wes Jones)的使用
- 关于Win32 API的RedrawWindow函数和InvalidateRect函数
- Win32系统中关于COM串口操作的API
- 关于Win32 API的RedrawWindow函数和InvalidateRect函数
- 关于 Hook Win32 API 的一点研究
- 关于部分WIN32 API 在WIN 7下失效的问题
- 关于Win32 API(VC作为程序设计语言)的创建线程,解决互斥访问临界资源问题
- 关于Win32 API的RedrawWindow函数和InvalidateRect函数
- 关于Win32 API的RedrawWindow函数和InvalidateRect函数
- win32系统下关于串口通讯API详解(microsoft )
- Win32 API 常用函数之二
- Win32 API 串口编程
- 关于google map api中的球平投影算法接口: GProjection和GMercatorProjection类
- WIN32 API的.NET封装
- 使用Win32 API做个系统托盘图标
- CSharp Tips:调用Win32 API如何处理指针类型的参数
- 关于vs2015生成软件在XP中运行时提示不是有效的WIN32应用程序
- C#通过WIN32 API 获取外部程序sysListview的值和TreeView的值