RtlRunOnceExecuteOnce 函数 (ntddk.h)
RtlRunOnceExecuteOnce 执行一次性初始化。
语法
NTSYSAPI NTSTATUS RtlRunOnceExecuteOnce(
PRTL_RUN_ONCE RunOnce,
PRTL_RUN_ONCE_INIT_FN InitFn,
PVOID Parameter,
PVOID *Context
);
参数
[in, out] RunOnce
指向 RTL_RUN_ONCE 一次性初始化结构的指针。
[in] InitFn
指向 RunOnceInitialization 例程的指针。
[in, out] Parameter
要作为 Parameter 参数传递给 RunOnceInitialization 例程的值。
[out] Context
指向接收初始化数据的 PVOID 变量的指针。
返回值
RtlRunOnceExecuteOnce 如果作成功,则返回STATUS_SUCCESS;如果作失败,则返回相应的 NTSTATUS 错误代码。
言论
对于特定 RTL_RUN_ONCE 结构的首次调用 RtlRunOnceExecuteOnce,RtlRunOnceExecuteOnce 调用 RunOnceInitialization 例程来初始化数据。 对 RtlRunOnceExecuteOnce 的每个后续调用都为该结构提供相同的初始化数据。 RunOnceInitialization 例程不会为同一 RTL_RUN_ONCE 结构调用两次。
RtlRunOnceExecuteOnce 在禁用正常内核 APC 的情况下运行。 除非所有调用都发生在APC_LEVEL,否则不应在特殊内核 APC 中调用该例程。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows Vista 开始可用。 |
目标平台 | 普遍 |
标头 | ntddk.h (包括 Ntddk.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL (请参阅“备注”部分)。 |