HV_CRASHDUMP_AREA structure
The HV_CRASHDUMP_AREA structure describes crash dump information.
Syntax
typedef struct _HV_CRASHDUMP_AREA { UINT32 Version; union { UINT32 FlagsAsUINT32; struct { UINT32 Valid :1; UINT32 Reserved :31; }; }; UINT64 HypervisorBase; UINT32 SizeOfImage; UINT32 CheckSum; UINT64 CurrentPartition; UINT64 PartitionsCreated; UINT32 PartitionsRunning; UINT64 CompartmentFreePfns; UINT16 ImageNameLength; WCHAR ImageName[HV_IMAGE_NAME_MAX_LENGTH]; UINT64 BugCheckData[5]; UINT64 BugCheckErrorReturnAddress; UINT64 PageTableBase; UINT64 PfnDataBase; UINT64 DebuggerDataBlock; UINT32 NumberProcessors; UINT32 CurrentProcessor; UINT64 CodeSpa; UINT8 CodeChunk[CODE_CHUNK_SIZE]; UINT32 ContextCount; UINT32 ContextOffset; UINT32 ContextSize; } HV_CRASHDUMP_AREA, *PHV_CRASHDUMP_AREA;
Members
- Version
-
The version of this crash-dump area structure.
- FlagsAsUINT32
-
A member in the union that can hold one 32-bit value that contains flags that indicate content validity and other attributes of the crash-dump area.
- Valid
-
A UINT32 value that specifies whether the content of the crash-dump area is valid.
- Reserved
-
Reserved. Do not use.
- HypervisorBase
-
A UINT64 value that specifies the hypervisor base address of the loaded module.
- SizeOfImage
-
A UINT32 value that specifies the size in bytes of the loaded module.
- CheckSum
-
A UINT32 value that specifies the checksum for the loaded module.
- CurrentPartition
-
A UINT64 value that specifies the current partition.
- PartitionsCreated
-
A UINT64 value that specifies the number of partition that have been created.
- PartitionsRunning
-
A UINT32 value that specifies the number of partition that are currently running.
- CompartmentFreePfns
-
A UINT64 value that specifies the number of compartment-free Pfns.
- ImageNameLength
-
The number of Unicode characters that are in the module name that the ImageName member specifies.
- ImageName
-
A string of Unicode characters that is the module name. The HV_IMAGE_NAME_MAX_LENGTH constant specifies the maximum length of the string.
- BugCheckData
-
An array that contains the bug-check data.
- BugCheckErrorReturnAddress
-
A UINT64 value that specifies the bug-check return address.
- PageTableBase
-
The root of the page table that is required to look up virtual addresses and the debugger data block. Particularly, within the page table is the prcb address that contain the processor state.
- PfnDataBase
- DebuggerDataBlock
-
The debugger data block contains all the information that is required for the debugger to interpret the dump file.
- NumberProcessors
-
The number of processors.
- CurrentProcessor
-
The current processor.
- CodeSpa
-
The code system physical address (SPA).
- CodeChunk
-
An array of bytes that consists of the code page data to save during a crash. The source of the fault has the in-memory copy of the code and its SPA.
- ContextCount
-
The number of HV_CRASHDUMP_PROCESSOR_STATE structures.
- ContextOffset
-
The offset to a set of HV_CRASHDUMP_PROCESSOR_STATE structures. The crashing processor should always be included.
- ContextSize
-
The context size.
Remarks
HV_CRASHDUMP_AREA is used to transfer crash dump information between the hypervisor and the HvBoot.sys driver in the root Windows instance at the time of a hypervisor BugCheck. The HvBoot.sys driver allocates this structure when the hypervisor starts. The structure's SPA is handed to the hypervisor via the loader block.
The size of code page to save during a crash is defined as:
#define CODE_CHUNK_SIZE 0x200
The hypervisor defines the following constants for the crash dump area version, maximum module length, and the default number of crash dump SPA pages:
#define HV_CRASHDUMP_AREA_VERSION 2 #define HV_IMAGE_NAME_MAX_LENGTH 32 #define HV_DEFAULT_CRASHDUMP_SPA_PAGES 5
Requirements
Header |
|
---|
See also
Send comments about this topic to Microsoft
Build date: 11/16/2013