共用方式為


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 的呼叫都會提供相同的初始化數據。 相同的RTL_RUN_ONCE結構不會呼叫 RunOnceInitialization 例程兩次。

RtlRunOnceExecuteOnce 會停用一般核心 APC 執行。 除非在APC_LEVEL發生所有呼叫,否則不應該在特殊核心 APC 內呼叫例程。

規格需求

需求
最低支援的用戶端 從 Windows Vista 開始提供。
目標平台 Universal
標頭 ntddk.h (包含 Ntddk.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= APC_LEVEL (请参阅一节。)

另請參閱

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization