IoRegisterBootDriverReinitialization 例程由启动驱动程序调用,以在枚举和启动所有设备后,向 I/O 管理器注册驱动程序的重新初始化例程。
语法
VOID IoRegisterBootDriverReinitialization(
[in] PDRIVER_OBJECT DriverObject,
[in] PDRIVER_REINITIALIZE DriverReinitializationRoutine,
[in, optional] PVOID Context
);
参数
[in] DriverObject
指向要重新初始化的启动驱动程序的驱动程序对象的指针。
[in] DriverReinitializationRoutine
指向驱动程序 重新初始化 例程的指针。
[in, optional] Context
要传递给驱动程序重新初始化例程的可选上下文指针。
返回值
没有
言论
启动驱动程序通常从启动驱动程序初始化期间运行的 DriverEntry 例程调用 IoRegisterBootDriverReinitialization。 IoRegisterBootDriverReinitialization 注册驱动程序的重新初始化回调例程,以在枚举和启动所有设备后由 I/O 管理器调用。 DriverReinitializationRoutine 在 IRQL = PASSIVE_LEVEL 的系统线程中运行。
仅当驱动程序 DriverEntry 例程将返回STATUS_SUCCESS时,驱动程序才应调用 IoRegisterBootDriverReinitialization。
如果 DriverReinitializationRoutine 使用注册表,则 DriverEntry 例程必须包含在 IoRegisterBootDriverReinitialization的 Context 参数中,DriverEntry自己的 RegistryPath 参数点的副本。
DriverEntry 例程只能调用 IoRegisterBootDriverReinitialization 一次。 如果需要多次运行重新初始化例程,DriverReinitializationRoutine 可以根据需要调用 IoRegisterBootDriverReinitialization 多次,使用 Count 参数跟踪已调用 DriverReinitializationRoutine 的次数。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | 从 Windows 2000 开始可用。 |
| 目标平台 | 普遍 |
| 标头 | ntddk.h(包括 Ntifs.h、Ntddk.h、Ntifs.h) |
| 库 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |
| DDI 符合性规则 | HwStorPortProhibitedDIS(storport),PowerIrpDDis(wdm) |