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 |
---|---|
|
作業已成功完成。 |
|
無法完成作業。 如果在 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 |