Condividi tramite


funzione di callback pHalQuerySystemInformation (ntddk.h)

La funzione di callback pHalQuerySystemInformation legge i registri di stato delle banche MCA.

Sintassi

pHalQuerySystemInformation Phalquerysysteminformation;

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

Parametri

[in] InformationClass

HalMcaLogInformation per leggere il log degli errori MCA corrente. Se viene trovato uno degli errori di controllo computer non corretti, viene restituito nel buffer. Per i sistemi Itanium, specificare HalCmcLogInformation per leggere il log degli errori della CPU corretto corrente e HalCpeLogInformation per leggere il log degli errori della piattaforma corretto corrente.

[in] BufferSize

Dimensioni, in byte, del buffer fornito dal chiamante.

[out] Buffer

Puntatore a un buffer fornito dal chiamante di tipo MCA_EXCEPTION che conterrà le informazioni restituite da questa routine. Per i processori Intel Itanium, le informazioni restituite devono essere conformi, almeno, con la specifica V3.0 SAL, Le strutture record di errore, gennaio 2001, Appendice B"". Per i processori Intel Pentium Pro, le informazioni sono descritte nell'esempio di codice seguente.

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

Numero di byte restituiti nel buffer.

Valore restituito

Restituisce STATUS_SUCCESS se esiste un log degli errori.

Commenti

La funzione HalQuerySystemInformation restituisce il primo errore. È responsabilità del driver MCA chiamare di nuovo questa routine per verificare se sono disponibili altri errori.

Windows Vista e versioni successive di Windows non supportano il tipo di report MCA (Machine Check Architecture) e Machine Check Exception (MCE) descritto in questo argomento. I report MCA e MCE sono supportati tramite l'architettura degli errori hardware di Windows (WHEA).

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione ntddk.h (include Ntddk.h)