pHalSetSystemInformation 回调函数 (ntddk.h)

向 HAL 注册 MCA 驱动程序。

语法

pHalSetSystemInformation Phalsetsysteminformation;

NTSTATUS Phalsetsysteminformation(
  [in]  HAL_SET_INFORMATION_CLASS InformationClass,
  [in]  ULONG BufferSize,
  [out] PVOID Buffer
)
{...}

参数

[in] InformationClass

用于向 HAL 注册 MCA 驱动程序回调例程的 HalMcaRegisterDriver。 有两个回调例程:ExceptionCallback 和 DpcCallback。 在计算机检查异常 (MCE) 处理程序不可重启的错误处理期间调用 ExceptionCallback 例程,然后才会对系统发出 bug 检查。 当 MCA 错误可重启时,将调用 DpcCallback 例程。 对于 Itanium 系统,指定 HalCmcRegisterDriver 注册驱动程序的更正 CPU 错误 DpcCallback 例程,指定 HalCpeRegisterDriver 注册驱动程序的“更正的平台错误 DpcCallback”。

[in] BufferSize

调用方提供的缓冲区的大小(以字节为单位)。

[out] Buffer

指向调用方提供的 MCA_DRIVER_INFO 类型的缓冲区的指针,定义如下。

typedef struct _MCA_DRIVER_INFO {
  PDRIVER_EXCPTN_CALLBACK  ExceptionCallback; // NULL for Itanium corrected error registration
  PKDEFERRED_ROUTINE  DpcCallback;
  PVOID  DeviceContext;
} MCA_DRIVER_INFO, *PMCA_DRIVER_INFO;

此结构包含以下成员:

  • ExceptionCallback

    在计算机检查异常 (MCE) 发生未更正错误时调用的驱动程序提供的例程。 驱动程序显式不能使用任何内核服务或旋转锁例程。 处理程序被限制为与在最高 IRQL 运行的驱动程序相同的约束。

  • DpcCallback

    驱动程序提供的例程,针对导致计算机检查异常的更正错误调用 (MCE) 。 必须在DISPATCH_LEVEL调用此例程。

  • DeviceContext

    此 MCA 驱动程序的设备特定上下文。

返回值

如果注册成功,则返回STATUS_SUCCESS。

注解

必须先调用 HalSetSystemInformation,MCA 驱动程序才能使用任何其他接口例程。 在任何给定时间,只能向 HAL 注册一个 MCA 驱动程序。

Windows Vista 和更高版本的 Windows 不支持计算机检查体系结构 (MCA) 和计算机检查异常 (MCE) 报告的类型,如本主题中所述。 通过 Windows 硬件错误体系结构 (WHEA) 支持 MCA 和 MCE 报告。

要求

要求
目标平台 桌面
标头 ntddk.h (包括 Ntddk.h)