次の方法で共有


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 の 2 つのコールバック ルーチンがあります。 ExceptionCallback ルーチンは、システムのバグ チェックを発行する前に、マシン チェック例外 (MCE) ハンドラーの再起動できないエラー処理中に呼び出されます。 DpcCallback ルーチンは、MCA エラーが再開可能な場合に呼び出されます。 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 ドライバーは 1 つだけです。

Windows Vista 以降のバージョンの Windows では、このトピックで説明するマシン チェック アーキテクチャ (MCA) レポートとマシン チェック例外 (MCE) レポートの種類はサポートされていません。 MCA と MCE レポートは、 代わりに Windows ハードウェア エラー アーキテクチャ (WHEA) を通じてサポートされます。

要件

要件
対象プラットフォーム デスクトップ
Header ntddk.h (Ntddk.h を含む)