04进程与线程002结构体.pptx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本节内容线程结构体ETHREAD视频提供:昆山爱达人信息技术有限公司官网地址:联系QQ:1250121864QQ交流群 系电话:内容回顾 上一节我们介绍了进程相关的一个重要的结构体: EPROCESS 这节课我们介绍一下与线程相关的结构体: ETHREAD1、线程结构体ETHREAD 每个windows线程在0环都有一个对应的结构体:ETHREAD 这个结构体包含了线程所有重要的信息。 (在winbbg中查看ETHREAD结构体)2、KTHREAD主要成员介绍1) +0x000 Header : _DISPATCHER_HEADER “可等待”对象,比如Mutex互斥体、Event事件等(WaitForSingleObject)2) +0x018 InitialStack : Ptr32 Void +0x01c StackLimit : Ptr32 Void +0x028 KernelStack : Ptr32 Void 线程切换相关3) +0x020 Teb : Ptr32 Void TEB,Thread Environment Block,线程环境块。 大小4KB,位于用户地址空间。 FS:[0] - TEB(3环时 0环时FS执行KPCR)2、KTHREAD主要成员介绍4) +0x02c DebugActive : UChar 如果值为-1 不能使用调试寄存器:Dr0 - Dr75) +0x034 ApcState : _KAPC_STATE +0x0e8 ApcQueueLock : Uint4B +0x138 ApcStatePointer : [2] Ptr32 _KAPC_STATE +0x14c SavedApcState : _KAPC_STATE APC相关 6) +0x02d State : UChar 线程状态:就绪、等待还是运行3、KTHREAD主要成员介绍7) +0x06c BasePriority : Char 其初始值是所属进程的BasePriority值(KPROCESS-BasePriority),以后可以通过KeSetBasePriorityThread()函数重新设定8) +0x070 WaitBlock : [4] _KWAIT_BLOCK 等待哪个对象(WaitForSingleObject)9) +0x0e0 ServiceTable : Ptr32 Void 指向系统服务表基址4、KTHREAD主要成员介绍10) +0x134 TrapFrame 进0环时保存环境11) +0x140 PreviousMode : Char 某些内核函数会判断程序是0环调用还是3环调用的12) +0x1b0 ThreadListEntry : _LIST_ENTRY 双向链表 一个进程所有的线程 都挂在一个链表中 挂的就是这个位置 一共有两个这样的链表5、ETHREAD其他成员介绍1) +0x1ec Cid : _CLIENT_ID 进程ID、线程ID2) +0x220 ThreadsProcess : Ptr32 _EPROCESS 指向自己所属进程3) +0x22c ThreadListEntry : _LIST_ENTRY 双向链表 一个进程所有的线程 都挂在一个链表中 挂的就是这个位置 一共有两个这样的链表昆山爱达人信息技术有限公司 QQ:1250121864课后练习:线上班学员可见

您可能关注的文档

文档评论(0)

153****4985 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档