PnpSurpriseRemove 规则 (wdm)
PnpSurpriseRemove 规则指定驱动程序在处理 IRP_MN_SURPRISE_REMOVAL 请求时不调用 IoDeleteDevice 或 IoDetachDevice。
PnP 管理器发送 IRP_MN_SURPRISE_REMOVAL 请求,以通知驱动程序设备不再可用于 I/O作,并且可能已意外从计算机中删除该设备。
- 所有 PnP 驱动程序都必须处理 IRP_MN_SURPRISE_REMOVAL 请求。
- 驱动程序不得在设备对象上调用 IoDeleteDevice 或 IoDetachDevice,直到IRP_MN_SURPRISE_REMOVAL IRP 成功,并且关闭设备的所有打开句柄。
- 然后,PnP 管理器将 IRP_MN_REMOVE_DEVICE 请求发送到设备堆栈。 为了响应删除 IRP,驱动程序将其设备对象从堆栈中分离并删除它们。
有关如何响应 IRP_MN_SURPRISE_REMOVAL 请求的驱动程序的详细信息,请参阅 处理IRP_MN_SURPRISE_REMOVAL请求
驱动程序模型:WDM
如何测试
编译时 |
---|
运行 静态驱动程序验证程序 并指定 PnpSurpriseRemove 规则。 使用以下步骤运行代码分析:有关详细信息,请参阅 使用静态驱动程序验证程序查找驱动程序中的缺陷。 |
适用于
另请参阅
处理IRP_MN_SURPRISE_REMOVAL请求IRP_MN_SURPRISE_REMOVALIRP_MN_REMOVE_DEVICE