RtlRunOnceExecuteOnce 関数 (ntddk.h)

RtlRunOnceExecuteOnce は、1 回限りの初期化を実行します。

構文

NTSYSAPI NTSTATUS RtlRunOnceExecuteOnce(
  PRTL_RUN_ONCE         RunOnce,
  PRTL_RUN_ONCE_INIT_FN InitFn,
  PVOID                 Parameter,
  PVOID                 *Context
);

パラメーター

[in, out] RunOnce

RTL_RUN_ONCE 1 回限 りの 初期化構造体へのポインター。

[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構造体に対して 2 回呼び出されません。

RtlRunOnceExecuteOnce は、通常のカーネル APC が無効になっている状態で実行されます。 すべての呼び出しがAPC_LEVELで発生しない限り、特別なカーネル APC 内でルーチンを呼び出さないでください。

要件

要件
サポートされている最小のクライアント Windows Vista 以降で使用できます。
対象プラットフォーム ユニバーサル
Header ntddk.h (Ntddk.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= APC_LEVEL (「解説」セクションを参照)。

こちらもご覧ください

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization