Freigeben über


pHalQuerySystemInformation-Rückruffunktion (ntddk.h)

Die pHalQuerySystemInformation Rückruffunktion liest die Statusregister der MCA-Banken vor.

Syntax

pHalQuerySystemInformation Phalquerysysteminformation;

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

Parameter

[in] InformationClass

Die HalMcaLogInformation zum Lesen des aktuellen MCA-Fehlerprotokolls. Wenn eines der nicht erkannten Computerüberprüfungsfehler gefunden wird, wird sie im Puffer zurückgegeben. Geben Sie für Itanium-Systeme HalCmcLogInformation an, um das aktuelle korrigierte CPU-Fehlerprotokoll zu lesen, und HalCpeLogInformation, um das aktuelle korrigierte Plattformfehlerprotokoll zu lesen.

[in] BufferSize

Die Größe des Puffers, den der Aufrufer bereitstellt, in Byte.

[out] Buffer

Ein Zeiger auf einen vom Aufrufer bereitgestellten Puffer vom Typ MCA_EXCEPTION, der die von dieser Routine zurückgegebenen Informationen enthält. Für Intel Itanium-Prozessoren müssen die zurückgegebenen Informationen mindestens mit der V3.0 SAL-Spezifikation, Error Record Structures, Januar 2001, Anhang B", kompatibel sein. Für Intel Processor Pro-Prozessoren werden die Informationen wie im folgenden Codebeispiel beschrieben.

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

Die Anzahl der Bytes, die in Buffer zurückgegeben werden.

Rückgabewert

Gibt STATUS_SUCCESS zurück, wenn ein Fehlerprotokoll vorhanden ist.

Bemerkungen

Die HalQuerySystemInformation Funktion gibt den ersten Fehler zurück. Es liegt in der Verantwortung des MCA-Treibers, diese Routine erneut aufzurufen, um festzustellen, ob weitere Fehler verfügbar sind.

Windows Vista und höhere Versionen von Windows unterstützen nicht den Typ der Computerprüfungsarchitektur (Machine Check Architecture, MCA) und der McE-Berichterstellung (Machine Check Exception), die in diesem Thema beschrieben wird. MCA- und MCE-Berichterstellung werden stattdessen über Windows Hardware Error Architecture (WHEA) unterstützt.

Anforderungen

Anforderung Wert
Zielplattform- Desktop
Header- ntddk.h (include Ntddk.h)