使用TraceView观察Windows PCIE驱动设备加载和卸载过程

        本文主要结合TraceView.exe工具,介绍一个典型的KMDF驱动程序的加载和卸载过程。相关理论主要来自《Win7设备驱动程序开发》一书。关于TraceView.exe的使用,可以参考我之前的博客:点击打开链接。

一、启动和加载顺序

        在《Win7设备驱动程序开发》的7.2节——“设备的枚举和启动”中,提到:为了准备操作设备,KMDF将按固定顺序调用驱动程序的回调例程。其中FDO或过滤器DO回调过程如下:(自下而上,从插入设备开始)

使用TraceView观察Windows PCIE驱动设备加载和卸载过程_第1张图片


二、卸载顺序

        关闭FDO或过滤器DO电源以及移除FDO或过滤器DO过程中涉及的回调函数调用顺序。

使用TraceView观察Windows PCIE驱动设备加载和卸载过程_第2张图片


三、实际设备加载和卸载事件跟踪

        下面我以微软的PLX9x5x驱动示例程序的加载和卸载过程的traceview跟踪信息展示实际过程。

使用TraceView观察Windows PCIE驱动设备加载和卸载过程_第3张图片


    大致可以看出:

1,加载过程:PlxEvtDeviceAdd    ->   AddDevicePDO  -> PlxEvtDevicePrepareHardware -> 其他初始化

2,卸载过程:PlxShutdown   ->   PlxEvtDevicePrepareHardware   -> PlxEvtDriverContextCleanup

你可能感兴趣的:(使用TraceView观察Windows PCIE驱动设备加载和卸载过程)