共用方式為


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 結構第一次呼叫 RtlRunOnceExecuteOnceRtlRunOnceExecuteOnce會呼叫 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 (請參閱一節。)

另請參閱

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization