HalQuerySystemInformation function
The HalQuerySystemInformation function can be used to read MCA banks' status registers.
Syntax
NTSTATUS HalQuerySystemInformation(
_In_ HAL_QUERY_INFORMATION_CLASS InformationClass,
_In_ ULONG BufferSize,
_Out_ PVOID Buffer,
_Out_ PULONG ReturnedLength
);
Parameters
InformationClass [in]
Specify HalMcaLogInformation to read the current MCA error log. If any of the uncorrected Machine Check errors is found, it is returned in the buffer. For Itanium systems, specify HalCmcLogInformation to read the current corrected CPU error log and HalCpeLogInformation to read the current corrected platform error log.BufferSize [in]
The size, in bytes, of the buffer that the caller supplies.Buffer [out]
A pointer to a caller-supplied buffer of type MCA_EXCEPTION that will contain the information returned by this routine. For Intel Itanium processors, the returned information must be compliant, at a minimum, with the V3.0 SAL specification, Error Record Structures, January 2001, Appendix B"". For Intel Pentium Pro processors, the information is as described in the following code example.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;
ReturnedLength [out]
The number of bytes that are returned in Buffer.
Return value
HalQuerySystemInformation returns STATUS_SUCCESS if an error log exists.
Remarks
The HalQuerySystemInformation function returns the first error. It is the MCA driver's responsibility to call this routine again to see if there are any more errors available.
Note Windows Vista and later versions of Windows do not support the type of Machine Check Architecture (MCA) and Machine Check Exception (MCE) reporting that is described in this topic. MCA and MCE reporting are supported through Windows Hardware Error Architecture (WHEA) instead.
Requirements
Target platform |
Desktop |
Header |
Ntddk.h |