windows第三大结构体--KPCR

前面我们介绍了windows的两大结构体,一个是进程结构体,一个是线程结构体。那么第三个就是KPCR。KPCR是什么呢,是用于描述CPU的结构体。每一个CPU都有一个这样的结构体来描述CPU干了什么事。

1.在当线程切换的时候,也就是线程从3环进入0环时,FS:[0]->TEB切换成KPCR

2.每个CPU都有一个KPCR结构体

3.KRCR中存储了CPU本身要用到的一些重要的数据结构:GDT.IDT等

上图就是KPCR结构体成员。

 第一个成员叫NtTib,这个成员非常重要。它也是个结构体:

 在KPCR最后一个成员叫PrcbData,他是一个扩展结构体,也是放了很多有用的信息。不过这个结构体很大,我们截取一部分看看:

    +0x004 CurrentThread    : Ptr32 _KTHREAD
   +0x008 NextThread       : Ptr32 _KTHREAD
   +0x00c IdleThread       : Ptr32 _KTHREAD

这三个成员和线程切换有关,第一个描述了当前在跑的线程,第二个描述了一会要切换的线程是谁,第三个是当没有线程需要执行的时候,执行的空闲线程是谁。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值