EVT_VMB_CHANNEL_PROCESS_PACKET回调函数 (vmbuskernelmodeclientlibapi.h)

[一些信息与预发布产品相关,在商业发行之前可能发生实质性修改。 Microsoft 对于此处提供的信息不作任何明示或默示的担保。]

当数据包到达传入环形缓冲区时,将调用 EvtVmbChannelProcessPacket 回调函数。

语法

EVT_VMB_CHANNEL_PROCESS_PACKET EvtVmbChannelProcessPacket;

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

参数

[in] Channel

数据包到达的通道。

[in] Packet

完成上下文,用于在可以停用事务时将此数据包标识到内核模式客户端库 (KMCL) 。

[in] Buffer

由相反终结点发送的数据包。 此值不包含 VMBus 和 KMCL 标头。

[in] BufferLength

Buffer 参数的长度(以字节为单位)。

[in] Flags

标志。 可能的值如下所示:

含义
VMBUS_CHANNEL_PROCESS_PACKET_FLAGS
0x1
数据包引用外部数据。 可以使用 VmbChannelPacketGetExternalData 函数检索此数据。

返回值

备注

客户端驱动程序使用 VmbChannelInitSetProcessPacketCallbacks 函数注册此回调函数的实现。

每次调用此函数时,最终都必须调用 VmbChannelPacketComplete 函数。

可以在 DISPATCH_LEVEL 或更低时间调用此回调函数,除非通道已配置为将数据包处理延迟到工作线程。

要求

要求
目标平台 Windows
标头 vmbuskernelmodeclientlibapi.h (包括 VmbusKernelModeClientLibApi.h)
IRQL <=DISPATCH_LEVEL

另请参阅

VmbChannelInitSetProcessPacketCallbacks

VmbChannelPacketComplete

VmbChannelPacketGetExternalData