PshedSynchronizeExecution 函数 (ntddk.h)

PshedSynchronizeExecution 函数将给定函数的执行与错误源的硬件错误处理同步。

语法

NTPSHEDAPI BOOLEAN PshedSynchronizeExecution(
  [in] PWHEA_ERROR_SOURCE_DESCRIPTOR ErrorSource,
  [in] PKSYNCHRONIZE_ROUTINE         SynchronizeRoutine,
  [in] PVOID                         SynchronizeContext
);

参数

[in] ErrorSource

指向描述错误源的 WHEA_ERROR_SOURCE_DESCRIPTOR 结构的指针。

[in] SynchronizeRoutine

指向调用方提供的函数的指针,该函数的执行与 ErrorSource 参数描述的错误源的硬件错误处理同步。 SynchronizeRoutine 函数声明如下:

BOOLEAN
SynchronizeRoutine(
    _In_ PVOID  SynchronizeContext
    );

SynchronizeContext

SynchronizeContext 参数中传递给 PshedSynchronizeExecution 函数的上下文值。

[in] SynchronizeContext

指向调用方提供的上下文区域的指针,该上下文区域传递给由 SynchronizeRoutine 参数指向的函数。

返回值

PshedSynchronizeExecution 返回由 SynchronizeRoutine 参数指向的函数返回的值。

言论

PSHED 插件调用 PshedSynchronizeExecution 函数,以便将给定函数的执行与错误源的硬件错误处理同步。 每当 PSHED 插件在常规硬件错误处理流外部执行的代码与作为正常硬件错误处理流的一部分执行的代码之间共享资源时,都需要这样做。 有关处理硬件错误的详细信息,请参阅 错误处理

调用此函数时,将发生以下情况:

  1. IRQL 被提升到 IRQL,其中执行错误源的低级别硬件错误处理程序 (LLHEH)。

  2. 通过获取关联的旋转锁,访问由 SynchronizeContext 参数指定的上下文区域与 LLHEH 同步。

  3. 调用 SynchronizeRoutine 参数中指定的函数。

PshedSynchronizeExecution 函数的调用方必须在 IRQL <= DIRQL 上运行,即小于或等于执行错误源 LLHEH 的 IRQL。

要求

要求 价值
目标平台 普遍
标头 ntddk.h (包括 Ntddk.h)
Pshed.lib
DLL Pshed.dll
IRQL IRQL <= DIRQL

另请参阅

WHEA_ERROR_SOURCE_DESCRIPTOR