本文主要是介绍APC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
APC — Asynchronous Procedure Call 异步过程调用
APC,通过它的行为,可以这样理解:将一个内核过程插入到一个线程队列等待执行.相当于就是强行插入到特定线程上下文中去执行的一段代码
系统中存在三种APC:
普通内核APC:它们可以插入内核线程,它们在那个内核线程没有执行其他APC的时候执行.
特定内核APC:基本上和上面的一样 .但它们运行在APC_LEVEL中断级,而且不能被阻塞,除非它们运行在更高的中断级. 它们可抢占普通内核APC的执行.
用户态APC:这种APC只能插入到一个用户线程中,这个线程必须事先调用一个等待函数比如WaitForSingleObject而且将Alertable置为TRUE.下一次线程从内核返回的时候,这个APC就得以执行.这就是我们要利用的APC了.
这篇关于APC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!