驱动卸载的问题,想不明白,请各位老师指教一二。
Windows内核调试
驱动卸载的问题,想不明白,请各位老师指教一二。
zyq8709
2011-09-08, 09:08 上午
例如下面的设备树:如果卸载或弹出设备节点A处的设备,那么是向A、B、C三个设备栈的栈顶都发送IRP_MN_REMOVE_DEVICE,还是找到设备树的最上层设备栈然后再发送IRP_MN_REMOVE_DEVICE。两种方法的不同在于需不需要B及C节点中的PDO要转送该IRP向下层的设备栈。想跟踪一下CM_Request_Device_Eject_ExW的内核实现又不知该如何下断,请问一下各位老师windows是按哪种方式实现的?另外存储设备的磁盘管理栈和卷管理栈并不是上下叠加的关系,在不同的分支上,那么是否这里就需要磁盘管理栈的PDO向卷管理栈及文件系统栈转发IRP_MN_REMOVE_DEVICE才可成功完成卸载?多谢了!
A
|
B
|
C
Re: 驱动卸载的问题,想不明白,请各位老师指教一二。
zyq8709
2011-09-08, 17:37 下午
另外还有一点不明白:例如u盘的磁盘栈有usbstor、disk、partmgr三种设备,那么CM_Request_Device_Eject_ExW中的设备实例到底是指向这三种设备中的哪一个呢?即弹出函数中的设备参数是哪个设备呢?