EVT_VMB_CHANNEL_PROCESS_PACKET callback function (vmbuskernelmodeclientlibapi.h)

[Some information relates to pre-released product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.]

The EvtVmbChannelProcessPacket callback function is invoked when a packet arrives in the incoming ring buffer.

Syntax

EVT_VMB_CHANNEL_PROCESS_PACKET EvtVmbChannelProcessPacket;

void EvtVmbChannelProcessPacket(
  [in] VMBCHANNEL Channel,
  [in] VMBPACKETCOMPLETION Packet,
  [in] PVOID Buffer,
  [in] UINT32 BufferLength,
  [in] UINT32 Flags
)
{...}

Parameters

[in] Channel

The channel on which the packet arrives.

[in] Packet

The completion context, which identifies this packet to Kernel Mode Client Library (KMCL) when the transaction can be retired.

[in] Buffer

The packet which was sent by the opposite endpoint. This value does not contain the VMBus and KMCL headers.

[in] BufferLength

The length of the Buffer parameter, in bytes.

[in] Flags

Flags. Possible values include the following:

Value Meaning
VMBUS_CHANNEL_PROCESS_PACKET_FLAGS
0x1
The packet references external data. This data can be retrieved by using the VmbChannelPacketGetExternalData function.

Return value

None

Remarks

The client driver registers its implementation of this callback function by using the VmbChannelInitSetProcessPacketCallbacks function.

Every time you invoke this function, you must eventually call the VmbChannelPacketComplete function.

This callback function can be invoked at DISPATCH_LEVEL or lower, unless the channel has been configured to defer packet processing to a worker thread.

Requirements

Requirement Value
Target Platform Windows
Header vmbuskernelmodeclientlibapi.h (include VmbusKernelModeClientLibApi.h)
IRQL <=DISPATCH_LEVEL

See also

VmbChannelInitSetProcessPacketCallbacks

VmbChannelPacketComplete

VmbChannelPacketGetExternalData