RtlRunOnceComplete 関数 (ntddk.h)

RtlRunOnceComplete ルーチン は、RtlRunOnceBeginInitialize によって開始された 1 回限りの初期化完了します。

構文

NTSYSAPI NTSTATUS RtlRunOnceComplete(
  [in, out]      PRTL_RUN_ONCE RunOnce,
  [in]           ULONG         Flags,
  [in, optional] PVOID         Context
);

パラメーター

[in, out] RunOnce

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

[in] Flags

ドライバーは、必要に応じて、次のフラグの 1 つ以上を指定できます。

RTL_RUN_ONCE_ASYNC

非同期モードで動作します。 このモードでは、複数の完了試行を並列で実行できます。 このフラグを使用する場合、このフラグも指定されていない限り、RtlRunOnceComplete ルーチンへの後続の呼び出しは失敗します。

RTL_RUN_ONCE_INIT_FAILED

初期化の試行に失敗しました。

[in, optional] Context

初期化されたデータを指定します。

戻り値

RtlRunOnceComplete は、次のいずれかの NTSTATUS 値を返します。

リターン コード 形容
STATUS_SUCCESS
操作が正常に完了しました。
STATUS_UNSUCCESSFUL
操作を完了できませんでした。 呼び出し元が Flags パラメーターにRTL_RUN_ONCE_ASYNC指定した場合、この値は別のスレッドが初期化を完了したことを示すことができます。

備考

RtlRunOnceComplete STATUS_SUCCESSを返す場合、同じ RTL_RUN_ONCE 構造体に対して RtlRunOnceBeginInitialize する後続の呼び出しは、初期化されたデータ コンテキスト を提供します。

呼び出し元が Flags パラメーターにRTL_RUN_ONCE_ASYNCを指定し、RtlRunOnceComplete STATUS_SUCCESS以外の値を返す場合、呼び出し元は、試行したすべての初期化をクリーンアップする必要があります。

必要条件

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

関連項目

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization