次の方法で共有


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

パラメーター パラメーターとして RunOnceInitialization ルーチンに渡す値。

[out] Context

初期化されたデータを受け取る PVOID 変数へのポインター。

戻り値

RtlRunOnceExecuteOnce は、操作が成功した場合はSTATUS_SUCCESSを返し、操作が失敗した場合は適切な NTSTATUS エラー コードを返します。

備考

特定の RTL_RUN_ONCE 構造体に対して RtlRunOnceExecuteOnce する最初の呼び出しでは、RtlRunOnceExecuteOnce RunOnceInitialization ルーチンを呼び出してデータを初期化します。 その構造体 RtlRunOnceExecuteOnce を後続で呼び出すたびに、同じ初期化されたデータが提供されます。 RunOnceInitialization ルーチンは、同じ RTL_RUN_ONCE 構造体に対して 2 回呼び出されません。

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

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー ntddk.h (Ntddk.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL (「解説」セクションを参照)。

関連項目

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization