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)