服务器句柄1006_$

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

句柄:(handle)

一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识windows应用程序中的不同对象和同类中的不同的实例,例如:一个窗口,图标,滚动条,输出设备,控件或者文件等。

在程序设计中,句柄是一种特殊的智能指针,应用程序能够通过句柄访问相应的对象(数据库,操作系统)的信息.

句柄与普通指针的区别在于,指针包含的是引用对象的内存地址,而句柄则是由系统所管理的引用标识,该标识可以被系统重新定位到一个内存地址上。这种间接访问对象的模式增强了系统对引用对象的控制。

例如:桌面上的一个窗体由一个HWND类型的句柄来标识.

windows之所以用设立句柄,根本上源于内存管理机制的问题--虚拟地址,简而言之数据的地址需要变动,变动以后就需要有人来记录管理变动,(就好像户籍管理一样),因此系统用句柄来记载数据地址的变更。

数据对象加载进入内存中之后即获得了地址,但是这个地址并不是固定的。数据对象会根据需要在内存与硬盘之间移动,因此其物理地址总是变动的,那么作为管理者则必须对管理对象所发生的变化了如指掌才行,因此系统为进程分配固定的地址(句柄)来储存进程下的数据对象变化后的地址也就是当前的地址,其实设计机制很简单:系统的某个部门移动了对象的地址后,同时上报给句柄所属部门管理者,管理者将改动写入句柄即可。该数据被重新启用时去其所属句柄内按内容存取即可。

内核对象句柄,是用来标识某个内核对象的一个ID,同一个对象的该id对于每个进程是不同的。

进程创建时,windows系统为进程构造了一个句柄表

当该进程希望获得一个内核对象句柄或者创建一个内核对象从而获得该对象句柄时

系统会将在句柄表中增加一个表项,表项的内容中存储了指向目标内核对象的指针

同时,系统返回这个表项在句柄表中的索引作为句柄.

相关文档
最新文档