存档

文章标签 ‘删除锁’

IO_REMOVE_LOCK使用方法小结

2012年1月1日 没有评论

IO_REMOVE_LOCK(删除锁)的具体结构没有公开,WDK的文档中中查不到IO_REMOVE_LOCK。最开始看到IO_REMOVE_LOCK是在WDK的例子event中。下面是参考网上的一些资料之后的一点总结,错误的地方请指正。

为什么要用IO_REMOVE_LOCK?
WDM 驱动程序在处理设备删除 IRP 并释放驱动程序分配的内存后可能接收到附加的 IRP。在处理附加的 IRP 时试图引用已经释放的内存会导致系统崩溃。驱动程序能够接收已删除设备的 IRP,这有两个原因:
1. 在设备被删除后,另一个组件可以发送 I/O。
2. 在设备删除请求之前发送的 I/O 请求可能在目标驱动程序处理设备删除请求之后到达。[......]