RtlRunOnceBeginInitialize 함수(ntddk.h)
RtlRunOnceBeginInitialize 루틴은 일회성 초기화를 시작합니다.
구문
NTSYSAPI NTSTATUS RtlRunOnceBeginInitialize(
[in, out] PRTL_RUN_ONCE RunOnce,
[in] ULONG Flags,
[out] PVOID *Context
);
매개 변수
[in, out] RunOnce
RTL_RUN_ONCE 일회성 초기화 구조에 대한 포인터입니다.
[in] Flags
드라이버는 필요에 따라 다음 플래그 중 하나 이상을 지정할 수 있습니다.
RTL_RUN_ONCE_ASYNC
비동기적으로 초기화를 수행합니다. 드라이버는 여러 완료 시도를 병렬로 수행할 수 있습니다. 이 플래그를 사용하는 경우 이 플래그도 지정하지 않으면 이 루틴에 대한 후속 호출이 실패합니다.
RTL_RUN_ONCE_CHECK_ONLY
초기화를 시작하지 말고 검사 초기화가 이미 발생했는지 확인합니다. RtlRunOnceBeginInitialize가 STATUS_SUCCESS 반환하면 초기화가 성공하고 *Context에 초기화된 데이터가 포함됩니다.
[out] Context
초기화된 데이터를 수신하는 PVOID 변수에 대한 포인터를 지정합니다. *Context 값은 루틴이 STATUS_SUCCESS 반환하는 경우에만 유효합니다.
반환 값
RtlRunOnceBeginInitialize 는 다음 NTSTATUS 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
일회성 초기화가 이미 완료되었습니다. 초기화된 데이터는 컨텍스트 가 가리키는 메모리 위치에 저장됩니다. |
|
호출자가 일회성 초기화를 성공적으로 시작했습니다. 이제 호출자가 드라이버별 초기화 단계를 수행한 다음 RtlRunOnceComplete 를 호출하여 초기화를 완료합니다. |
설명
또는 드라이버가 RtlRunOnceExecuteOnce 를 호출하고 RunOnceInitialization 루틴을 제공하여 일회성 초기화를 수행할 수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista 및 이후 버전의 Windows에서 사용할 수 있습니다. |
대상 플랫폼 | 유니버설 |
헤더 | ntddk.h(Ntddk.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |