RtlRunOnceBeginInitialize 関数 (ntddk.h)
RtlRunOnceBeginInitialize ルーチンは、1 回限りの初期化を開始します。
構文
NTSYSAPI NTSTATUS RtlRunOnceBeginInitialize(
[in, out] PRTL_RUN_ONCE RunOnce,
[in] ULONG Flags,
[out] PVOID *Context
);
パラメーター
[in, out] RunOnce
RTL_RUN_ONCE 1 回限りの初期化構造体へのポインター。
[in] Flags
ドライバーは、必要に応じて、次のフラグの 1 つ以上を指定できます。
RTL_RUN_ONCE_ASYNC
初期化を非同期的に実行します。 ドライバーは、複数の完了試行を並列で実行できます。 このフラグを使用する場合、このフラグも指定されていない限り、このルーチンの後続の呼び出しは失敗します。
RTL_RUN_ONCE_CHECK_ONLY
初期化は開始しませんが、初期化が既に発生しているかどうかを確認してください。 RtlRunOnceBeginInitialize がSTATUS_SUCCESSを返した場合、初期化は成功し、*Context には初期化されたデータが含まれます。
[out] Context
初期化されたデータを受け取る PVOID 変数へのポインターを指定します。 *Context の値は、ルーチンがSTATUS_SUCCESSを返す場合にのみ有効です。
戻り値
RtlRunOnceBeginInitialize 、次のいずれかの NTSTATUS 値が返されます。
リターン コード | 形容 |
---|---|
|
1 回限りの初期化は既に完了しています。 初期化されたデータは、コンテキスト が指 メモリの場所に格納されます。 |
|
呼び出し元は、1 回限りの初期化を正常に開始しました。 呼び出し元は、ドライバー固有の初期化手順を実行し、RtlRunOnceComplete 呼び出して初期化を完了します。 |
備考
ドライバーは、RtlRunOnceExecuteOnce 呼び出し、RunOnceInitialization ルーチンを指定することで、1 回限りの初期化を実行することもできます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のバージョンの Windows で使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntddk.h (Ntddk.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
関連項目
RtlRunOnceComplete の
RtlRunOnceExecuteOnce の
RtlRunOnceInitialize の