RtlRunOnceExecuteOnce 函式 (ntddk.h)
RtlRunOnceExecuteOnce 會執行一次性初始化。
語法
NTSYSAPI NTSTATUS RtlRunOnceExecuteOnce(
PRTL_RUN_ONCE RunOnce,
PRTL_RUN_ONCE_INIT_FN InitFn,
PVOID Parameter,
PVOID *Context
);
參數
[in, out] RunOnce
RTL_RUN_ONCE 一次性初始化結構的指標。
[in] InitFn
RunOnceInitialization 例程的指標。
[in, out] Parameter
要當做 Parameter 參數傳遞至 RunOnceInitialization 例程的值。
[out] Context
接收初始化數據的 PVOID 變數指標。
傳回值
RtlRunOnceExecuteOnce 如果作業成功,則會傳回STATUS_SUCCESS,如果作業失敗,則傳回適當的 NTSTATUS 錯誤碼。
言論
針對特定 RTL_RUN_ONCE 結構第一次呼叫 RtlRunOnceExecuteOnce,RtlRunOnceExecuteOnce會呼叫 runOnceInitialization 例程來初始化數據。 針對該結構的每個後續呼叫 RtlRunOnceExecuteOnce 都會提供相同的初始化數據。 RunOnceInitialization 例程不會針對相同的 RTL_RUN_ONCE 結構呼叫兩次。
RtlRunOnceExecuteOnce 會停用一般核心 APC 執行。 除非在APC_LEVEL發生所有呼叫,否則不應該在特殊核心 APC 內呼叫例程。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows Vista 開始提供。 |
目標平臺 | 普遍 |
標頭 | ntddk.h (包括 Ntddk.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL (請參閱一節。) |