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 會在此呼叫中傳遞至 重新初始化 例程的內容中指向該字元串複本。

如果驅動程式以動態方式載入,在正常執行的系統期間可能會發生這種情況,因此必須同步處理重新初始化佇列的所有參考。

DriverReinitializationRoutineCount 輸入指出呼叫此例程的次數,包括目前的呼叫。

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)

另請參閱

DRIVER_OBJECT

IoRegisterBootDriverReinitialization