initOnceComplete 函数 (synchapi.h)

完成从 InitOnceBeginInitialize 函数开始的一次性初始化。

语法

BOOL InitOnceComplete(
  [in, out]      LPINIT_ONCE lpInitOnce,
  [in]           DWORD       dwFlags,
  [in, optional] LPVOID      lpContext
);

参数

[in, out] lpInitOnce

指向一次性初始化结构的指针。

[in] dwFlags

此参数可以是以下标志之一。

含义
INIT_ONCE_ASYNC
0x00000002UL
在异步模式下运行。 这使多个完成尝试可以并行执行。 此标志必须与在对 InitOnceBeginInitialize 函数的相应调用中传递的标志匹配。 此标志不能与 INIT_ONCE_INIT_FAILED组合使用。
INIT_ONCE_INIT_FAILED
0x00000004UL
初始化尝试失败。 此标志不能与 INIT_ONCE_ASYNC结合使用。 若要使异步初始化失败,只需放弃它 (即,不要) 调用 InitOnceComplete 函数。

[in, optional] lpContext

指向使用一次性初始化结构存储的数据的指针。 此数据在传递给对 InitOnceBeginInitialize 函数的后续调用的 lpContext 参数中返回。 如果 lpContext 指向某个值,则该值的低序 INIT_ONCE_CTX_RESERVED_BITS 必须为零。 如果 lpContext 指向数据结构,则数据结构必须与 DWORD 对齐。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

若要编译使用此函数的应用程序, 请将_WIN32_WINNT 定义为 0x0600 或更高版本。 有关详细信息,请参阅 使用 Windows 标头

示例

有关使用此函数的示例,请参阅 Using One-Time Initialization

要求

要求
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 synchapi.h (包括 Windows 7 上的 Windows.h、Windows Server 2008 Windows Server 2008 R2)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

InitOnceBeginInitialize

一次性初始化

同步函数