RtlRunOnceExecuteOnce 함수(ntddk.h)

RtlRunOnceExecuteOnce는 일회성 초기화를 수행합니다.

구문

NTSYSAPI NTSTATUS RtlRunOnceExecuteOnce(
  PRTL_RUN_ONCE         RunOnce,
  PRTL_RUN_ONCE_INIT_FN InitFn,
  PVOID                 Parameter,
  PVOID                 *Context
);

매개 변수

[in, out] RunOnce

RTL_RUN_ONCE 일회성 초기화 구조에 대한 포인터입니다.

[in] InitFn

RunOnceInitialization 루틴에 대한 포인터입니다.

[in, out] Parameter

RunOnceInitialization 루틴에 Parameter 매개 변수로 전달할 값입니다.

[out] Context

초기화된 데이터를 수신하는 PVOID 변수에 대한 포인터입니다.

반환 값

RtlRunOnceExecuteOnce 는 작업이 성공하면 STATUS_SUCCESS 반환하고, 작업이 실패하면 적절한 NTSTATUS 오류 코드를 반환합니다.

설명

특정 RTL_RUN_ONCE 구조에 대한 RtlRunOnceExecuteOnce에 대한 첫 번째 호출의 경우 RtlRunOnceExecuteOnceRunOnceInitialization 루틴을 호출하여 데이터를 초기화합니다. 해당 구조체에 대한 RtlRunOnceExecuteOnce 에 대한 모든 후속 호출은 동일한 초기화된 데이터를 제공합니다. RunOnceInitialization 루틴은 동일한 RTL_RUN_ONCE 구조에 대해 두 번 호출되지 않습니다.

RtlRunOnceExecuteOnce는 일반 커널 APC가 비활성화된 상태에서 실행됩니다. APC_LEVEL 모든 호출이 발생하지 않는 한 특수 커널 APC 내에서 루틴을 호출해서는 안 됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 ntddk.h(Ntddk.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL(주의 섹션 참조)

추가 정보

RTL_RUN_ONCE

RtlRunOnceBeginInitialize

RtlRunOnceComplete

RtlRunOnceInitialize

RunOnceInitialization