Expand Minimize

HV_EVENTLOG_BUFFER_HEADER structure

The HV_EVENTLOG_BUFFER_HEADER structure describes a buffer header that immediately precedes event log entry data.

Syntax


typedef struct _HV_EVENTLOG_BUFFER_HEADER {
  UINT32                            BufferSize;
  HV_EVENTLOG_BUFFER_INDEX          BufferIndex;
  UINT32                            EventsLost;
  volatile UINT32                   ReferenceCounter;
  union {
    UINT64          TimeStamp;
    HV_NANO100_TIME ReferenceTime;
  };
  UINT64                            Reserved1;
  UINT64                            Reserved2;
  struct {
    UINT8  LogicalProcessor;
    UINT8  Alignment;
    UINT16 LoggerId;
  };
  volatile HV_EVENTLOG_BUFFER_STATE BufferState;
  UINT32                            NextBufferOffset;
  HV_EVENTLOG_TYPE                  Type;
  HV_EVENTLOG_BUFFER_INDEX          NextBufferIndex;
  UINT32                            Reserved3;
  UINT32                            Reserved4[2];
} HV_EVENTLOG_BUFFER_HEADER, *PHV_EVENTLOG_BUFFER_HEADER;

Members

BufferSize

The size, in bytes, of the buffer.

BufferIndex

The hypervisor-assigned index of the buffer within the event log type. The index was returned to the caller when the buffer was created.

EventsLost

A UINT32 value that indicates the number of events that have not been recorded since the last event log buffer was placed into the complete state. This value also indicates that there were no free buffers available for the hypervisor to record these events, and the events have therefore been lost. When buffers become available, this event counter is reset to zero. For event log types that use local buffers, this event-counter value is maintained on a logical processor basis.

ReferenceCounter

A UINT32 value that indicates the reference count of the event log entry buffer header.

TimeStamp

A UINT64 value that records the time, in 100-nanosecond units, at which the buffer entered the "in use" state. This value represents the time that has elapsed since the hypervisor was started and can be used to determine the buffer fill order (that is, which buffers were "complete" first).

ReferenceTime

ReferenceTimeStamp

Reserved1

Reserved. Do not use.

Reserved2

Reserved. Do not use.

( unnamed struct )

The size, in bytes, of the buffer.

LogicalProcessor

The number of the logical processor that controls the buffer. This member is used only for local buffers and is undefined when using global buffers and when the buffer state is free.

Alignment

The alignment of the buffer.

LoggerId

The number that identifies a log for the buffer.

BufferState

An HV_EVENTLOG_BUFFER_STATE value that indicates, for example, whether the buffer is currently free, in use, or complete.

NextBufferOffset

A UINT32 value that indicates the byte offset into the buffer where the next entry will be written. NextBufferOffset is undefined if the buffer is free. When a buffer is marked "in use", this offset value is initially set to the size of the buffer header to indicate that the next entry will be placed immediately after it. The hypervisor guarantees that entries written before this offset, if any, are complete. In other words, this offset value is updated only after an event has been recorded within the buffer. This allows a guest to safely read the partial content of a buffer before it enters the complete state.

Type

An HV_EVENTLOG_TYPE value that indicates the event-log type that the buffer is related to. The combination of Type and BufferIndex values can be used to identify a specific buffer.

NextBufferIndex

An HV_EVENTLOG_BUFFER_INDEX value that specifies the event log buffer index of the next buffer in the completion list or HV_EVENTLOG_BUFFER_INDEX_NONE if this buffer is the last buffer in the completion list. NextBufferIndex is valid only for buffers in the HvEventLogBufferStateReady state (from the HV_EVENTLOG_BUFFER_STATE enumeration).

Reserved3

Reserved. Do not use.

Reserved4

Reserved. Do not use.

Remarks

Requirements

Header

HvTrApi.h (include Hvgdk.h)

See also

HV_EVENTLOG_BUFFER_STATE
HV_EVENTLOG_TYPE

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.