IoRegisterDriverReinitialization 函式 (ntddk.h)
IoRegisterDriverReinitialization 例程是由驅動程式在初始化或重新初始化期間呼叫,以在驅動程式之前再次呼叫其 Reinitialize 例程,而且可能是系統初始化完成。
語法
void IoRegisterDriverReinitialization(
[in] PDRIVER_OBJECT DriverObject,
[in] PDRIVER_REINITIALIZE DriverReinitializationRoutine,
[in, optional] PVOID Context
);
參數
[in] DriverObject
驅動程序物件的指標,該物件是 DriverEntry 例程的輸入。
[in] DriverReinitializationRoutine
驅動程式重新初始化例程 的 指標。
[in, optional] Context
要傳遞至驅動程式 重新初始化 例程之內容的指標。
傳回值
無
備註
只有在 DriverEntry 例程傳回STATUS_SUCCESS時,驅動程式才能呼叫此例程。 如果驅動程式提供的 Reinitialize 例程必須使用登錄, DriverEntry 例程應該包含一份字串複本, 而 RegistryPath 會在此呼叫中傳遞至 重新初始化 例程的內容中指向該字元串複本。
如果驅動程式以動態方式載入,在正常執行的系統期間可能會發生這種情況,因此必須同步處理重新初始化佇列的所有參考。
DriverReinitializationRoutine 的 Count 輸入指出呼叫此例程的次數,包括目前的呼叫。
DriverEntry 例程只能呼叫 IoRegisterDriverReinitialization 一次。 如果 重新初始化 例程應該在任何其他驅動程式的 Reinitialize 例程傳回控件之後再次執行, 則 Reinitialize 例程也可以呼叫 IoRegisterDriverReinitialization ,因為應該執行驅動程式的重新 初始化 例程。
通常,具有 重新初始化 例程的驅動程式是控制 PnP 和舊版裝置的高階驅動程式。 這類驅動程式不僅必須為 PnP 管理員偵測到 (的裝置建立裝置物件,而且 PnP 管理員會呼叫驅動程式的 AddDevice 例程) ,驅動程式也必須為 PnP 管理員未偵測的舊版裝置建立裝置物件。 驅動程式可以使用 重新初始化 例程來建立這些裝置物件,並將驅動程式分層至基礎裝置的下一個較低驅動程式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows 2000 開始提供。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs (storport) 、 IrqlIoPassive5 (wdm ) 、 PowerIrpDDis (wdm) |