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에 대한 첫 번째 호출의 경우 RtlRunOnceExecuteOnce는 RunOnceInitialization 루틴을 호출하여 데이터를 초기화합니다. 해당 구조체에 대한 RtlRunOnceExecuteOnce 에 대한 모든 후속 호출은 동일한 초기화된 데이터를 제공합니다. RunOnceInitialization 루틴은 동일한 RTL_RUN_ONCE 구조에 대해 두 번 호출되지 않습니다.
RtlRunOnceExecuteOnce는 일반 커널 APC가 비활성화된 상태에서 실행됩니다. APC_LEVEL 모든 호출이 발생하지 않는 한 특수 커널 APC 내에서 루틴을 호출해서는 안 됩니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista부터 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | ntddk.h(Ntddk.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL(주의 섹션 참조) |