(ntddk.h) WHEA_PROCESSOR_GENERIC_ERROR_SECTION 结构
WHEA_PROCESSOR_GENERIC_ERROR_SECTION结构描述不特定于特定处理器体系结构的处理器错误数据。
语法
typedef struct _WHEA_PROCESSOR_GENERIC_ERROR_SECTION {
WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS ValidBits;
UCHAR ProcessorType;
UCHAR InstructionSet;
UCHAR ErrorType;
UCHAR Operation;
UCHAR Flags;
UCHAR Level;
USHORT Reserved;
ULONGLONG CPUVersion;
UCHAR CPUBrandString[128];
ULONGLONG ProcessorId;
ULONGLONG TargetAddress;
ULONGLONG RequesterId;
ULONGLONG ResponderId;
ULONGLONG InstructionPointer;
} WHEA_PROCESSOR_GENERIC_ERROR_SECTION, *PWHEA_PROCESSOR_GENERIC_ERROR_SECTION;
成员
ValidBits
一个WHEA_PROCESSOR_GENERIC_ERROR_SECTION_VALIDBITS联合,指定此结构的哪些成员包含有效数据。
ProcessorType
处理器的处理器体系结构。
仅当设置了 ValidBits 成员的 ProcessorType 位时,此成员才包含有效数据。
值 | 说明 |
---|---|
GENPROC_PROCTYPE_XPF | x86/x64 处理器系列 |
GENPROC_PROCTYPE_IPF | Intel Itanium 处理器系列 |
InstructionSet
发生错误时正在执行的指令集。
仅当设置了 ValidBits 成员的 InstructionSet 位时,此成员才包含有效数据。
值 | 说明 |
---|---|
GENPROC_PROCISA_X86 | x86 |
GENPROC_PROCISA_IPF | Itanium |
GENPROC_PROCISA_X64 | X64 |
ErrorType
发生的错误类型。
仅当设置了 ValidBits 成员的 ErrorType 位时,此成员才包含有效数据。
值 | 说明 |
---|---|
GENPROC_PROCERRTYPE_UNKNOWN | 未知错误 |
GENPROC_PROCERRTYPE_CACHE | 缓存错误 |
GENPROC_PROCERRTYPE_TLB | 翻译旁视缓冲区错误 |
GENPROC_PROCERRTYPE_BUS | 总线错误 |
GENPROC_PROCERRTYPE_MAE | 微体系结构错误 |
Operation
发生错误时正在执行的操作的类型。
仅当设置了 ValidBits 成员的操作位时,此成员才包含有效数据。
值 | 说明 |
---|---|
GENPROC_OP_GENERIC | 未知或泛型操作 |
GENPROC_OP_DATAREAD | 数据读取 |
GENPROC_OP_DATAWRITE | 数据写入 |
GENPROC_OP_INSTRUCTIONEXE | 指令执行 |
Flags
标志的按位 OR 组合,提供有关错误的其他信息。
仅当设置了 ValidBits 成员的 Flags 位时,此成员才包含有效数据。
值 | 说明 |
---|---|
GENPROC_FLAGS_RESTARTABLE | 错误发生后,可以可靠地重启程序执行。 |
GENPROC_FLAGS_PRECISEIP | InstructionPointer 成员中的指令指针与错误直接关联。 |
GENPROC_FLAGS_OVERFLOW | 发生计算机检查溢出。 如果发生第二个错误,而上一个错误的结果仍在错误报告资源中,则会发生这种情况。 |
GENPROC_FLAGS_CORRECTED | 错误已由硬件或固件更正。 |
Level
发生错误的结构的级别,零是缓存的最低级别。
仅当设置了 ValidBits 成员的 Level 位时,此成员才包含有效数据。
Reserved
预留给系统使用。
CPUVersion
CPU 版本,包括系列、型号和单步信息。
对于 x86 和 x64 处理器,此成员包含 WHEA_PROCESSOR_FAMILY_INFO 联合。
对于 Itanium 处理器,此成员包含 CPUID 寄存器 3 中提供的数据。
仅当设置了 ValidBits 成员的 CPUVersion 位时,此成员才包含有效数据。
CPUBrandString[128]
CPU 品牌字符串。
对于 x86 和 x64 处理器,此成员包含执行 CPUID 指令的结果,其中 EAX 设置为输入时0x80000002,然后在输入时将 EAX 设置为 0x80000003 的情况下执行 CPUID 指令。 有关 CPUID 指令的详细信息,请参阅 Intel 64 和 IA-32 体系结构软件开发人员手册
对于 Itanium 处理器,此成员包含执行 PAL_BRAND_INFO 过程的结果。
仅当设置了 ValidBits 成员的 CpuBrandString 位时,此成员才包含有效数据。
ProcessorId
唯一标识系统中逻辑处理器的标识符。
对于 x86 和 x64 处理器,此成员包含编程到本地 APIC ID 寄存器中的值。
对于 Itanium 处理器,此成员包含编程到 LID 寄存器的值。
仅当设置了 ValidBits 成员的 ProcessorId 位时,此成员才包含有效数据。
TargetAddress
与错误关联的目标地址。
仅当设置了 ValidBits 成员的 TargetAddress 位时,此成员才包含有效数据。
RequesterId
唯一标识与错误关联的请求者的标识符。
仅当设置了 ValidBits 成员的 RequesterId 位时,此成员才包含有效数据。
ResponderId
唯一标识与错误关联的响应者的标识符。
仅当设置了 ValidBits 成员的 ResponderId 位时,此成员才包含有效数据。
InstructionPointer
发生错误时的指令指针。
仅当设置了 ValidBits 成员的 InstructionPointer 位时,此成员才包含有效数据。
注解
WHEA_PROCESSOR_GENERIC_ERROR_SECTION 结构描述错误记录的泛型处理器错误节中包含的错误数据。 仅当描述该错误记录的错误记录部分的某个WHEA_ERROR_RECORD_SECTION_DESCRIPTOR结构的 SectionType 成员包含PROCESSOR_GENERIC_ERROR_SECTION_GUID时,错误记录才包含泛型处理器错误节。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | 在 Windows Server 2008、Windows Vista SP1 和更高版本的 Windows 中受支持。 |
标头 | ntddk.h |