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
用于读取当前 MCA 错误日志的 HalMcaLogInformation。 如果发现任何未更正的计算机检查错误,则会在缓冲区中返回该错误。 对于 Itanium 系统,请指定 HalCmcLogInformation 读取当前更正的 CPU 错误日志,指定 HalCpeLogInformation 读取当前更正的平台错误日志。
[in] BufferSize
调用方提供的缓冲区的大小(以字节为单位)。
[out] Buffer
指向调用方提供的MCA_EXCEPTION类型的缓冲区的指针,该缓冲区将包含此例程返回的信息。 对于 Intel Itanium 处理器,返回的信息必须至少符合 V3.0 SAL 规范,错误记录结构,2001 年 1 月附录 B”。 对于 Intel Pentium 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
Buffer 中返回的字节数。
返回值
如果存在错误日志,则返回STATUS_SUCCESS。
注解
HalQuerySystemInformation 函数返回第一个错误。 MCA 驱动程序负责再次调用此例程,以查看是否有其他错误可用。
Windows Vista 及更高版本的 Windows 不支持本主题中所述的计算机检查体系结构 (MCA) 和计算机检查异常 (MCE) 报告的类型。 通过 Windows 硬件错误体系结构 (WHEA) 支持 MCA 和 MCE 报告。
要求
要求 | 值 |
---|---|
目标平台 | 桌面 |
标头 | ntddk.h (包括 Ntddk.h) |