【发布时间】:2018-02-05 20:44:06
【问题描述】:
我正在开发一个不处理 IRP_MJ_POWER 或 IRP_MN_SET_POWER 的 NDIS 6 微型端口虚拟 NIC 驱动程序。驱动程序没有在 IRP_MJ_POWER 的 DispatchPower 函数中注册。它将其设置为 NULL。驱动程序使用 OID_PNP_CAPABILITIES 和 OID_PNP_SET_POWER 进行电源管理。
最近我观察到 Windows 7 机器发生崩溃,代码为 DRIVER_POWER_STATE_FAILURE (9f)。在做了一些分析后,我观察到崩溃的发生是因为驱动程序没有处理 Power IRP (IRP_MJ_POWER) 超过 10 分钟。这是我第一次发现这个问题。
我也很想知道更多关于向司机交付 IRP_MJ_POWER/IRP_MN_SET_POWER 的信息。 NDIS 驱动程序是否必须处理这些 IRP。我见过多个没有为 IRP_MJ_POWER 注册调度功能的微型端口驱动程序。如果不是强制的,驱动也不需要为IRP_MJ_POWER注册dispatch函数,在什么情况下会出现这样的问题。
【问题讨论】:
标签: ndis