加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows内核对象

发布时间:2020-12-13 22:24:58 所属栏目:Windows 来源:网络整理
导读:一、内核对象 操作系统为了以记录相关信息的方式管理各种资源,在其内部生成数据块(可视为结构体变量)。当然,每种资源需要维护的信息不同,所以每种资源拥有的数据块格式也有差异。这类数据块称为“内核对象”。 内核对象就是为了管理线程、文件等资源而

一、内核对象

  操作系统为了以记录相关信息的方式管理各种资源,在其内部生成数据块(可视为结构体变量)。当然,每种资源需要维护的信息不同,所以每种资源拥有的数据块格式也有差异。这类数据块称为“内核对象”。

  内核对象就是为了管理线程、文件等资源而由操作系统创建的数据块,其创建者和所有者均为操作系统。

  内核对象通过整数型“句柄”区分,句柄相当于linux的文件描述符。

  可以通过句柄区分内核对象,通过内核对象可以区分线程。句柄的整数值在不同进程中可能出现重复,但线程ID在跨进程范围内不会出现重复,线程ID用于区分操作系统创建的所有线程。

二、内核对象的状态

?  资源类型不同,内核对象也含有不同信息。其中,应用程序实现过程中需要特别关注的信息被赋予某种“状态”。例如,线程内核对象中需要重点关注线程是否已终止,所以终止状态又 称“signaled状态”,未终止状态称为“non-signaled状态”。

  WaitForSingleObject函数用于针对单个内核对象验证signaled状态。该函数由于发生事件(变为signaled状态)返回时,有时会把相应内核对象再次改为non-signaled状态。这种可以再次进入non-signaled状态的内核对象称为“auto-test模式”的内核对象,而不会自动跳转到non-signaled状态的内核对象称为“manual-reset模式”的内核对象。

  WaitForMultipleObjects函数可以验证多个内核对象状态。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读