标签:
本文主要结合TraceView.exe工具,介绍一个典型的KMDF驱动程序的加载和卸载过程。相关理论主要来自《Win7设备驱动程序开发》一书。关于TraceView.exe的使用,可以参考我之前的博客:点击打开链接。
一、启动和加载顺序
在《Win7设备驱动程序开发》的7.2节——“设备的枚举和启动”中,提到:为了准备操作设备,KMDF将按固定顺序调用驱动程序的回调例程。其中FDO或过滤器DO回调过程如下:(自下而上,从插入设备开始)
二、卸载顺序
关闭FDO或过滤器DO电源以及移除FDO或过滤器DO过程中涉及的回调函数调用顺序。
三、实际设备加载和卸载事件跟踪
下面我以微软的PLX9x5x驱动示例程序的加载和卸载过程的traceview跟踪信息展示实际过程。
大致可以看出:
1,加载过程:PlxEvtDeviceAdd -> AddDevicePDO -> PlxEvtDevicePrepareHardware -> 其他初始化
2,卸载过程:PlxShutdown -> PlxEvtDevicePrepareHardware -> PlxEvtDriverContextCleanup
使用TraceView观察Windows PCIE驱动设备加载和卸载过程
标签:
原文地址:http://blog.csdn.net/sagittarius_warrior/article/details/51332583