Expand Minimize

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

Hvgdk.h (include Hvgdk.h)

See also

HV_CRASHDUMP_PROCESSOR_STATE

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.