HvInitializeEventLogBufferGroup function

The HvInitializeEventLogBufferGroup function defines the geometry (that is, the size and count) for the event log buffer group that is associated with a specific event log type and establishes a message completion threshold.

Syntax


HV_STATUS  HvInitializeEventLogBufferGroup(
  _In_  HV_EVENTLOG_TYPE Type,
  _In_  UINT32 MaximumBufferCount,
  _In_  UINT32 BufferPages,
  _In_  UINT32 Threshold,
  _In_  HV_EVENTLOG_ENTRY_TIME_BASIS TimeBasis,
  _In_  HV_NANO100_TIME SystemTime
);

Parameters

Type [in]

An HV_EVENTLOG_TYPE value that specifies the type of the associated group to initialize.

MaximumBufferCount [in]

The maximum number of buffers that can exist for the associated event log buffer group at any time. Valid buffer index values are from zero to MaximumBufferCount-1.

BufferPages [in]

The number of pages that will constitute each buffer for the associated buffer group.

Threshold [in]

The minimum number of buffers that must be completed before the hypervisor will post a buffer completion message.

TimeBasis [in]

An HV_EVENTLOG_ENTRY_TIME_BASIS value that specifies the source of the event header timestamp.

SystemTime [in]

The current system time in 100 nanosecond units.

Return value

HvInitializeEventLogBufferGroup returns one of the following values. In addition to these values, HvInitializeEventLogBufferGroup can also return one of the values that are specified in Common Hypercall Status Codes.

Return codeDescription
HV_STATUS_SUCCESS

HvInitializeEventLogBufferGroup successfully initialized the event log buffer group.

HV_STATUS_ACCESS_DENIED

The caller is not the root partition.

HV_STATUS_INVALID_PARAMETER

One of the following invalid parameter conditions exists:

  • The specified event log type is invalid.

  • The BufferPages parameter specifies that buffers are composed of fewer than 1 or more than 512 pages.

  • The MaximumBufferCount parameter specifies fewer than 1 or more than 512 buffers.

  • The Threshold parameter specifies an inappropriate value.

  • The TimeBasis parameter does not specify either HV_EVENTLOG_ENTRY_TIME_REFERENCE or HV_EVENTLOG_ENTRY_TIME_TSC.

HV_STATUS_OBJECT_IN_USE

The event log buffer group is already initialized.

HV_STATUS_INSUFFICIENT_MEMORY

The number of pages in the memory pool of the caller is insufficient to perform the operation.

 

Remarks

HvInitializeEventLogBufferGroup establishes the buffer size, maximum number of buffers, completion threshold, and time basis for the event log buffer group. HvInitializeEventLogBufferGroup allocates pages from the guest's pool that are necessary to support the event logging infrastructure for the type.

HvInitializeEventLogBufferGroup has the following restrictions:

  • The caller must be the root partition.

  • The event log type must not be previously initialized.

Native Interface

HvInitializeEventLogBufferGroup

Call Code = 0x0060

Input Parameters

0

Type (4 bytes) MaximumBufferCount (4 bytes)

8

BufferPages (4 bytes) Threshold (4 bytes)

16

TimeBasis (4 bytes) Padding (4 bytes)

 

Requirements

Version

HvInitializeEventLogBufferGroup is available in version 1.0 and later versions of the hypervisor.

Header

Hvgdk.h (include Hvgdk.h)

IRQL

Any level

See also

HV_EVENTLOG_ENTRY_TIME_BASIS
HV_EVENTLOG_TYPE

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.