다음을 통해 공유


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 값 중 하나를 반환합니다.

반환 코드 설명
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