wdk tips (5): 再谈IO_STACK_LOCATION:IoMarkIrpPending
IO_STACK_LOCATION很重要,再多聊一点也无妨。上上回我们谈了IO_STACK_LOCATION和那几个重要的函数,当然,我的目的不是扫盲,而是记下一些容易犯错的地方(实际上都是工作中碰到过的钉子)以方便自己回顾。我的记性是如此的差以至于几月不看就会忘记。如果你对这东西没概念,我建议你先多查查WDK文档。
上回我们聊了IoCopyCurrentIrpStackLocationToNex
http://www.cyqdata.cn/cnblogs/article-detail-5604
wdk tips (2): IO_STACK_LOCATION
如前文所述,nt内核的驱动模型没有完全使用函数调用栈,而是自己山寨出来一个IO_STACK_LOCATION,里面保存了驱动调用序列。我们知道函数调用栈的push和pop都是编译器帮忙弄的,你甚至都可以在完全不了解内幕的前提下写代码,但是驱动开发不一样,调用序列要你自己去关心,何时入栈,何时出栈,栈内保留的什么内容,全部都要照顾好,否则BSOD就在前方不远等你。
与IO_STACK_LOCATIO
http://www.cyqdata.cn/cnblogs/article-detail-4726