共用方式為


RtlRunOnceComplete 函式 (ntddk.h)

RtlRunOnceComplete 例程會完成由 RtlRunOnceBeginInitialize 開始的單次初始化。

語法

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

參數

[in, out] RunOnce

RTL_RUN_ONCE一次性初始化結構的指標。

[in] Flags

驅動程式可以選擇性地指定下列一或多個旗標:

RTL_RUN_ONCE_ASYNC

以異步模式操作。 此模式可讓多個完成嘗試平行執行。 如果使用此旗標,除非同時指定此旗標,否則 RtlRunOnceComplete 例程的後續呼叫將會失敗。

RTL_RUN_ONCE_INIT_FAILED

初始化嘗試失敗。

[in, optional] Context

指定初始化的數據。

傳回值

RtlRunOnceComplete 會傳回下列其中一個 NTSTATUS 值:

傳回碼 Description
STATUS_SUCCESS
作業已成功完成。
STATUS_UNSUCCESSFUL
無法完成作業。 如果在 Flags 參數中指定呼叫端RTL_RUN_ONCE_ASYNC,這個值可以指出另一個線程已完成初始化。

備註

如果 RtlRunOnceComplete 傳回STATUS_SUCCESS,則相同RTL_RUN_ONCE結構的任何後續對 RtlRunOnceBeginInitialize 的呼叫會提供 Context 做為初始化的數據。

如果在 Flags 參數中指定呼叫端RTL_RUN_ONCE_ASYNC, 而 RtlRunOnceComplete 傳回STATUS_SUCCESS以外的任何值,呼叫端必須清除其嘗試的任何初始化。

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 中使用。
目標平台 Universal
標頭 ntddk.h (包含 Ntddk.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceExecuteOnce

RtlRunOnceInitialize

RunOnceInitialization