Поделиться через


Функция обратного вызова 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

HalMcaLogInformation для чтения текущего журнала ошибок MCA. Если обнаружена какая-либо из неисправимых ошибок проверки компьютера, она возвращается в буфере. Для систем Itanium укажите HalCmcLogInformation для чтения журнала исправленных ошибок ЦП и HalCpeLogInformation для чтения текущего исправленного журнала ошибок платформы.

[in] BufferSize

Размер (в байтах) буфера, который предоставляет вызывающий объект.

[out] Buffer

Указатель на буфер типа MCA_EXCEPTION, который будет содержать сведения, возвращаемые этой подпрограммой. Для процессоров Intel Itanium возвращаемые сведения должны быть как минимум совместимы со спецификацией SAL версии 3.0, структурами записи ошибок, январь 2001 г., приложение B". Сведения для процессоров Intel Xeon 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

Число байтов, возвращаемых в буфере.

Возвращаемое значение

Возвращает STATUS_SUCCESS, если журнал ошибок существует.

Комментарии

Функция HalQuerySystemInformation возвращает первую ошибку. Драйвер MCA отвечает за то, чтобы снова вызвать эту процедуру, чтобы узнать, есть ли еще какие-либо доступные ошибки.

Windows Vista и более поздние версии Windows не поддерживают отчеты об использовании архитектуры проверки компьютера (MCA) и исключения проверки компьютера (MCE), описанные в этом разделе. Вместо этого отчеты MCA и MCE поддерживаются с помощью архитектуры аппаратных ошибок Windows (WHEA).

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть ntddk.h (включая Ntddk.h)