FN_VMB_PACKET_INITIALIZE回调函数 (vmbuskernelmodeclientlibapi.h)

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

VmbPacketInitialize 函数初始化缓冲区以包含 VMBus 数据包。

语法

FN_VMB_PACKET_INITIALIZE FnVmbPacketInitialize;

NTSTATUS FnVmbPacketInitialize(
  VMBCHANNEL Channel,
  VMBPACKET VmbPacket,
  UINT32 ByteCount
)
{...}

参数

Channel

通道的句柄。

VmbPacket

用于存储 VMBus 数据包的缓冲区。

ByteCount

缓冲区的大小(以字节为单位)。

返回值

VmbPacketInitialize 返回以下状态代码:

返回代码 说明
STATUS_SUCCESS
函数已成功完成。
STATUS_INVALID_PARAMETER_3
ByteCount 的值无效。 它需要大于最大数据包大小加上 void 指针的大小。

注解

缓冲区的大小必须至少是使用 VmbChannelSizeofPacket 函数计算的大小。

VmbPacketInitializeVmbPacketAllocate 函数的替代方法。 如果调用方为数据包对象提供内存,请使用当前函数。

数据包的初始完成例程无效,必须在发送数据包之前进行设置。

重要

此函数通过 VMBus 内核模式客户端库 (KMCL) 接口调用,由 Vmbkmcl.sys 总线驱动程序提供。 这是从 KMCL_CLIENT_INTERFACE_V1 结构访问的客户端函数。

有关详细信息,请参阅 KMCL_CLIENT_INTERFACE_V1的“备注”部分。

要求

要求
最低受支持的客户端 Windows 10 版本 1803
标头 vmbuskernelmodeclientlibapi.h

另请参阅

VmbChannelSizeofPacket

VmbPacketAllocate