启动设备的设计指导原则
在 IRP_MN_START_DEVICE IRP 完成之前,PnP 管理器无法为设备创建请求,指示设备的所有驱动程序都已执行其启动操作。
由于 DispatchPnP 例程在 IRQL PASSIVE_LEVEL 的系统线程上下文中运行,因此,只要驱动程序不控制保存系统页文件的设备,使用 ExAllocatePoolWithTag 分配的任何内存在初始化期间专用于分页池即可。 在 DispatchPnP 例程返回控件之前,必须使用 ExFreePool 释放此类内存分配。
WDM 设备驱动程序的 ISR 应该能够确定是否在设备启动期间使用虚假中断调用它。 从处理IRP_MN_START_DEVICE的代码路径中调用 IoConnectInterrupt 返回时,如果设备上启用了中断,可以立即调用 ISR。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈