摘要: 这两天一直在查一个Bug,图方便,直接通过Windbg Release调试。问题出现在一个很奇怪的地方,线程栈似乎被破坏,但是始终查不到原因。后来同事帮忙,VS Debug一下就把问题定位了,出在一个动态库导出函数的调用约定不一致。定义为_stdcall,调用处声明为C调用约定了。Release确实忽略了一些边界的检查,如果Release不能再现,或者思路不清的。别忘了使用Debug版。 阅读全文
posted @ 2012-07-25 15:04 友学友 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 驱动模型区分:WDM 必须满足n种被要求的特性(如电源管理,即插即用);如果没有这些功能,则统一称为NT式驱动;如果调用了WDF的内核API,则称为WDF驱动。本书关注于通用的内核程序开发,不是针对某种硬件。例如,文件系统驱动,存储设备驱动,网络驱动。不是为了驱动某个硬件,而是在通用的windows上实现某种功能。开发环境的搭建:下载WDK,编译调试。无需VS,VS只是方便工程管理和编码。因为不是应用程序,所以所有win32API都不能使用。部分C Runtime函数也不能使用,但文档中说明的函数则可以使用。简单代码示例:#include <ntddk.h> // 提供一个Unlo 阅读全文
posted @ 2012-07-25 13:48 友学友 阅读(435) 评论(0) 推荐(0) 编辑