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,或下列一或多個旗標。
值 | 意義 |
---|---|
|
啟用多個初始化嘗試以平行方式執行。 如果使用這個旗標,除非同時指定此旗標,否則對此函式的後續呼叫將會失敗。 |
|
此函數調用不會開始初始化。 傳回值會指出初始化是否已完成。 如果函式傳回 TRUE, 則 lpContext 參數會接收數據。 |
[out] fPending
如果函式成功,此參數會指出目前的初始化狀態。
如果此參數為 TRUE ,且 dwFlags 包含 INIT_ONCE_CHECK_ONLY,則初始化為擱置中,且內容數據無效。
如果此參數為 FALSE,則初始化已完成,而且呼叫端可以從 lpContext 參數擷取內容數據。
如果此參數為 TRUE , 而且 dwFlags 不包含 INIT_ONCE_CHECK_ONLY,則已啟動初始化,而且呼叫端可以執行初始化工作。
[out, optional] lpContext
選擇性參數,會在成功時接收以一次性初始化結構儲存的數據。 數據的低順序 INIT_ONCE_CTX_RESERVED_BITS 位一律為零。
傳回值
如果未指定 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.h、Windows Server 2008 Windows Server 2008 R2) |
程式庫 | Kernel32.lib |
DLL | Kernel32.dll |