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_REMOVAL IRP_MN_REMOVE_DEVICE