次の方法で共有


pHalQuerySystemInformation コールバック関数 (ntddk.h)

pHalQuerySystemInformation コールバック関数は、MCA バンクのステータス レジスタを読み取ります。

構文

pHalQuerySystemInformation Phalquerysysteminformation;

NTSTATUS Phalquerysysteminformation(
  [in]  HAL_QUERY_INFORMATION_CLASS InformationClass,
  [in]  ULONG BufferSize,
  [out] PVOID Buffer,
  [out] PULONG ReturnedLength
)
{...}

パラメーター

[in] InformationClass

現在の MCA エラー ログを読み取る HalMcaLogInformation。 修正されていないマシン チェック エラーのいずれかが見つかった場合は、バッファーに返されます。 Itanium システムの場合は、HalCmcLogInformation を指定して、現在修正された CPU エラー ログと HalCpeLogInformation を読み取り、現在修正されたプラットフォーム エラー ログを読み取ります。

[in] BufferSize

呼び出し元が提供するバッファーのサイズ (バイト単位)。

[out] Buffer

このルーチンによって返される情報を格納するMCA_EXCEPTION型の呼び出し元から提供されるバッファーへのポインター。 Intel Itanium プロセッサの場合、返される情報は、少なくとも V3.0 SAL 仕様である Error Record Structures、2001 年 1 月、付録 B" に準拠している必要があります。 Intel Pentium Pro プロセッサの場合、情報は次のコード例の説明に従います。

typedef union _MCI_STATS {
  struct {
    USHORT  McaCod;
    USHORT  MsCod;
    ULONG  OtherInfo   : 25;
    ULONG  Damage    : 1;
    ULONG  AddressValid  : 1;
    ULONG  MiscValid  : 1;
    ULONG  Enabled    : 1;
    ULONG  UnCorrected  : 1;
    ULONG  OverFlow  : 1;
    ULONG  Valid    : 1;
  } MciStats;

  ULONGLONG  QuadPart;
} MCI_STATS, *PMCI_STATS;


typedef union _MCI_ADDR{
  struct {
    ULONG Address;
    ULONG Reserved;
  } MciAddr;

  ULONGLONG  QuadPart;
} MCI_ADDR, *PMCI_ADDR;


typedef struct _MCA_EXCEPTION {

  ULONG  VersionNumber;  // Version number of this record type
  MCA_EXCEPTION_TYPE  ExceptionType;  // MCA or MCE
  LARGE_INTEGER  TimeStamp;  // exception recording timestamp
  ULONG  ProcessorNumber;// processor number

  union {
    struct {
      UCHAR  BankNumber;  // bank number
      MCI_STATS  Status;  
      MCI_ADDR  Address;
      ULONGLONG  Misc;
    } Mca;

    struct {
      ULONGLONG  McAddress;  // physical address for the cycle causing the error
      ULONGLONG  McType;   // cycle specification causing the error
    } Mce;
  } u;

} MCA_EXCEPTION, *PMCA_EXCEPTION;

[out] ReturnedLength

Buffer で返されるバイト数。

戻り値

エラー ログが存在する場合は、STATUS_SUCCESSを返します。

注釈

HalQuerySystemInformation 関数は、最初のエラーを返します。 このルーチンをもう一度呼び出して、使用可能なエラーがもう一度発生するかどうかを確認するのは、MCA ドライバーの責任です。

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

要件

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