共用方式為


pHalSetSystemInformation 回調函式 (ntddk.h)

向 HAL 註冊 MCA 驅動程式。

語法

pHalSetSystemInformation Phalsetsysteminformation;

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

參數

[in] InformationClass

HalMcaRegisterDriver 向 HAL 註冊 MCA 驅動程式的回呼例程。 有兩個回呼例程:ExceptionCallback 和 DpcCallback。 在計算機檢查例外狀況 (MCE) 處理程式無法重新啟動的錯誤處理期間,會先呼叫 ExceptionCallback 例程,再對系統發出錯誤檢查。 當 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)