HvPostDebugData function

The HvPostDebugData function posts a block of data for transmission over a debugging connection.

Syntax


HV_STATUS  HvPostDebugData(
  _In_   UINT32 Count,
  _In_   HV_DEBUG_OPTIONS Options,
  _In_   PUINT8 Data,
  _Out_  PUINT32 PendingCount
);

Parameters

Count [in]

The number of bytes that HvPostDebugData should post from the buffer to which the Data parameter points. This number can range from zero to HV_DEBUG_MAXIMUM_DATA_SIZE.

Options [in]

A valid bitwise OR combination of HV_DEBUG_OPTIONS values that specify the posting options.

The HV_DEBUG_POST_LOOP option indicates that the guest will continue to call HvPostDebugData until HvPostDebugData completes successfully.

Data [in]

A pointer to a buffer that contains an opaque stream of bytes that the hypervisor posts for transmission over the connection.

PendingCount [out]

A pointer to a variable that HvPostDebugData fills with the total number of bytes that the hypervisor posted to the outgoing session buffer. This total represents bytes that are pending transmission and includes any bytes that were just posted.

Return value

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

Return codeDescription
HV_STATUS_SUCCESS

HvPostDebugData successfully posted a block of data for transmission over the connection.

HV_STATUS_FEATURE_UNAVAILABLE

Guest debugging support is not present or is not enabled in the hypervisor.

HV_STATUS_ACCESS_DENIED

The caller's partition does not possess the Debugging privilege.

HV_STATUS_OPERATION_DENIED

The partition's Debug Channel Identifier property has not been assigned a unique, nonzero value.

HV_STATUS_INVALID_PARAMETER

One of the following conditions exists:

  • The Count parameter specifies more than HV_DEBUG_MAXIMUM_DATA_SIZE bytes of data.

  • The area that is described by the Data and Count parameters crosses a page boundary.

  • An Options flag other than HV_DEBUG_POST_LOOP was specified.

HV_STATUS_INSUFFICIENT_BUFFERS

There is insufficient space in the outgoing session buffer to accept all bytes from the buffer to which the Data parameter points.

 

Remarks

HvPostDebugData allows the caller to post a block of data up to HV_DEBUG_MAXIMUM_DATA_SIZE bytes in size. If there is sufficient space in the hypervisor's outgoing data buffer for the entire block of data, the hypervisor posts the data for transmission. Otherwise, HvPostDebugData returns HV_STATUS_INSUFFICIENT_BUFFERS, and no data is posted. The hypervisor can determine from a count of zero in the Count parameter that pending data is present in the outgoing session buffer.

HvPostDebugData has the following restrictions:

  • The partition must possess the Debugging privilege.

Native Interface

HvPostDebugData

Call Code = 0x0069

Input Parameters

0

Count (4 bytes) Options (4 bytes)

8

Data (up to HV_DEBUG_MAXIMUM_DATA_SIZE bytes)

Output Parameters

0

PendingCount (4 bytes) Padding (4 bytes)

 

Requirements

Version

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

Header

Hvgdk.h (include Hvgdk.h)

IRQL

Any level

 

 

Send comments about this topic to Microsoft

Build date: 11/16/2013

Show:
© 2014 Microsoft. All rights reserved.