Partager via


Fonction de rappel pHalQuerySystemInformation (ntddk.h)

La fonction de rappel pHalQuerySystemInformation lit les registres status des banques MCA.

Syntaxe

pHalQuerySystemInformation Phalquerysysteminformation;

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

Paramètres

[in] InformationClass

HalMcaLogInformation pour lire le journal des erreurs MCA actuel. Si l’une des erreurs de vérification de machine non corrigées est trouvée, elle est retournée dans la mémoire tampon. Pour les systèmes Itanium, spécifiez HalCmcLogInformation pour lire le journal des erreurs du processeur corrigé actuel et HalCpeLogInformation pour lire le journal des erreurs de la plateforme corrigée actuelle.

[in] BufferSize

Taille, en octets, de la mémoire tampon que l’appelant fournit.

[out] Buffer

Pointeur vers une mémoire tampon fournie par l’appelant de type MCA_EXCEPTION qui contiendra les informations retournées par cette routine. Pour les processeurs Intel Itanium, les informations retournées doivent être conformes, au minimum, à la spécification SAL V3.0, Error Record Structures, janvier 2001, Annexe B «  ». Pour les processeurs Intel Pentium Pro, les informations sont décrites dans l’exemple de code suivant.

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

Nombre d’octets retournés dans La mémoire tampon.

Valeur retournée

Retourne STATUS_SUCCESS si un journal des erreurs existe.

Remarques

La fonction HalQuerySystemInformation retourne la première erreur. Il incombe au pilote MCA d’appeler à nouveau cette routine pour voir si d’autres erreurs sont disponibles.

Windows Vista et les versions ultérieures de Windows ne prennent pas en charge les types de rapports McA (Machine Check Architecture) et McE (Machine Check Exception) décrits dans cette rubrique. À la place, les rapports MCA et MCE sont pris en charge via l’architecture d’erreur matérielle Windows (WHEA).

Configuration requise

Condition requise Valeur
Plateforme cible Desktop (Expérience utilisateur)
En-tête ntddk.h (inclure Ntddk.h)