PINIT_ONCE_FN回调函数 (synchapi.h)

应用程序定义的回调函数。 在调用 InitOnceExecuteOnce 函数时指定指向此函数的指针。 PINIT_ONCE_FN类型定义指向此回调函数的指针。 InitOnceCallback 是应用程序定义的函数名称的占位符。

语法

PINIT_ONCE_FN PinitOnceFn;

BOOL PinitOnceFn(
  [in, out]           PINIT_ONCE InitOnce,
  [in, out, optional] PVOID Parameter,
  [out, optional]     PVOID *Context
)
{...}

参数

[in, out] InitOnce

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

[in, out, optional] Parameter

传递给回调函数的可选参数。

[out, optional] Context

要使用一次性初始化结构存储的数据。 如果 Context 引用值,则该值的低序 INIT_ONCE_CTX_RESERVED_BITS 必须为零。 如果 Context 指向数据结构,则数据结构必须与 DWORD 对齐。 上下文 不能是 Arm32 上的代码指针,因为 Arm32 代码指针始终具有最少有效位集,有关详细信息,请参阅 Arm32 ABI

返回值

如果函数返回 TRUE,则块标记为已初始化。

如果函数返回 FALSE,则块未标记为已初始化,并且对 InitOnceExecuteOnce 的 调用将失败。 若要传达其他错误信息,请在返回 FALSE 之前调用 SetLastError

注解

此函数可以创建同步对象并在 lpContext 参数中返回它。

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

示例

有关使用此函数的示例,请参阅 使用 One-Time 初始化

要求

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

另请参阅

InitOnceExecuteOnce

InitOnceInitialize

同步函数