(vmbuskernelmodeclientlibapi.h FN_VMB_CHANNEL_CREATE_GPADL_FROM_BUFFER 回调函数)

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

VmbChannelCreateGpadlFromBuffer 函数 (描述客户端缓冲区的 GPADL) 创建来宾物理地址描述符列表。 可以在服务器中使用 GPADL 来访问缓冲区。

语法

FN_VMB_CHANNEL_CREATE_GPADL_FROM_BUFFER FnVmbChannelCreateGpadlFromBuffer;

NTSTATUS FnVmbChannelCreateGpadlFromBuffer(
  VMBCHANNEL Channel,
  UINT32 Flags,
  PVOID Buffer,
  UINT32 ByteCount,
  PUINT32 GpadlHandle
)
{...}

参数

Channel

通道的句柄。

Flags

标志。 下面列出了可能的值:

含义
VMBUS_CHANNEL_GPADL_READ_ONLY
如果指定此值,则缓冲区为只读。 否则,服务器可以写入缓冲区。 这不是安全措施,但可以提高快照和实时迁移性能。

Buffer

缓冲区,将探测并锁定,直到 GPADL 被拆掉。

ByteCount

缓冲区的长度(以字节为单位)。

GpadlHandle

创建的内存描述符列表的 GPADL 句柄 (MDL) 。 将此发送到服务器以与 VmbChannelMapGpadl 函数一起使用。

返回值

如果操作成功,则返回STATUS_SUCCESS,否则返回相应的 NTSTATUS 错误代码。

注解

当此函数返回时,服务器终结点可以调用 VmbChannelMapGpadl,因为 VMBus 已将 GPADL 说明发送到相反的终结点并收到确认。

必须使用 VmbChannelDeleteGpadl 函数删除 GPADL

重要

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

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

要求

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

另请参阅

VmbChannelDeleteGpadl

VmbChannelMapGpadl