InitOnceBeginInitialize 함수(synchapi.h)
일회성 초기화를 시작합니다.
구문
BOOL InitOnceBeginInitialize(
[in, out] LPINIT_ONCE lpInitOnce,
[in] DWORD dwFlags,
[out] PBOOL fPending,
[out, optional] LPVOID *lpContext
);
매개 변수
[in, out] lpInitOnce
일회성 초기화 구조에 대한 포인터입니다.
[in] dwFlags
이 매개 변수의 값은 0이거나 다음 플래그 중 하나 이상을 가질 수 있습니다.
[out] fPending
함수가 성공하면 이 매개 변수는 현재 초기화 상태 나타냅니다.
이 매개 변수가 TRUE 이고 dwFlags 에 INIT_ONCE_CHECK_ONLY 포함된 경우 초기화가 보류 중이며 컨텍스트 데이터가 잘못되었습니다.
이 매개 변수가 FALSE이면 초기화가 이미 완료되었으며 호출자는 lpContext 매개 변수에서 컨텍스트 데이터를 검색할 수 있습니다.
이 매개 변수가 TRUE 이고 dwFlags 에 INIT_ONCE_CHECK_ONLY 포함되어 있지 않으면 초기화가 시작되고 호출자가 초기화 작업을 수행할 수 있습니다.
[out, optional] lpContext
성공 시 일회성 초기화 구조로 저장된 데이터를 수신하는 선택적 매개 변수입니다. 데이터의 하위 순서 INIT_ONCE_CTX_RESERVED_BITS 비트는 항상 0입니다.
반환 값
INIT_ONCE_CHECK_ONLY 지정되지 않고 함수가 성공하면 반환 값은 TRUE입니다.
INIT_ONCE_CHECK_ONLY 지정되고 초기화가 완료되면 반환 값은 TRUE입니다.
그렇지 않으면 반환 값이 FALSE입니다.
확장 오류 정보를 가져오려면 GetLastError를 호출합니다.
설명
이 함수는 동기 또는 비동기 일회성 초기화에 사용할 수 있습니다. 비동기 일회성 초기화의 경우 INIT_ONCE_ASYNC 플래그를 사용합니다. 동기 일회성 초기화 중에 실행할 콜백 함수를 지정하려면 InitOnceExecuteOnce 함수를 참조하세요.
이 함수가 성공하면 스레드는 동기화 개체를 만들고 InitOnceComplete 함수의 lpContext 매개 변수에 를 지정할 수 있습니다.
이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 0x0600 이상으로 정의합니다. 자세한 내용은 Windows 헤더 사용을 참조하세요.
일회성 초기화 개체는 이동하거나 복사할 수 없습니다. 프로세스는 초기화 개체를 수정하지 않아야 하며, 대신 논리적으로 불투명한 것으로 처리해야 합니다. 일회성 초기화 함수만 사용하여 일회성 초기화 개체를 관리합니다.
예제
이 함수를 사용하는 예제는 One-Time 초기화 사용을 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | synchapi.h(Windows 7, Windows Server 2008 Windows Server 2008 R2의 Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |