其他
内核APC调用过程学习笔记
本文为看雪论坛优秀文章
看雪论坛作者ID:三一米田
主要内容
内核APC函数执行点1:线程切换
执行点2:当产生系统调用、
中断或者异常时
2) 判断KTHREAD.ApcState.KernelApcInProgress是否为1(当前APC是否正在执行);
3) 判断是否禁用内核APC(KTHREAD.KernelApcDisable是否为1);
4) 将当前链表的KAPC结构体从链表中摘除(我们是通过链表找到这个KAPC的);
5) 执行KAPC.KernelRoutine指定的函数,释放KAPC结构体占用的空间;
6) 将KTHREAD.ApcState.KernelApcInProgress设置为1 标识正在执行内核APC;
7) 执行真正的内核APC函数(KAPC.NormalRoutine);
8) 执行完毕,将KernelApcInProgress改为0;
9) 循环第1)步。
总结
看雪ID:三一米田
https://bbs.pediy.com/user-881392.htm
*本文由看雪论坛 三一米田 原创,转载请注明来自看雪社区。
推荐文章++++
求分享
求点赞
求在看