一个关注IT技术分享,关注互联网的网站,爱分享网络资源,分享学到的知识,分享生活的乐趣。
目录前言KiFindReadyThread参数分析函数实现KiSelectReadyThread前言在分析KiFindReadyThread函数前,需要了解KTHREAD,KPCR中部分成员.正在运行的线程存储在FS:[0x124]->KPCR.KPRCB.CURRENTTHREAD.就绪状态和等待状态的线程全在另外33个链表中.一个等待链表,32个调度链表.这些链表都使用了_KTHREAD->WaitListEntry这个位置,也就是说线程在某一时刻,只能属于其中一个圈.等待链表(等待状态的线程)_KPRCB->WaitListHead(_LIST_ENTRY).线程调用了Sleep()或者W
目录前言调用API触发线程切换机制KiSwapThread参数分析函数功能KiSwapContextSwapContext前言通过研究KiSwapThread函数,就可以知道单核CPU是如何同时运行多个进程.需要了解进程内核结构KPROCESS,其成员CR3,ApcState等等.需要了解线程内核结构KTHREAD,会用到很多线程内核结构成员.并且对WindowsAPI调用有了解(系统调用),需要了解一个API是如何进R0,以及如何从R3堆栈切换到R0堆栈等.需要了解处理器控制区KPCR,线程切换会通过其成员ReadySummary/DisPatcherReadyListHead来查找当前核就绪线程等.建议阅
Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1