FN_VMB_CHANNEL_MAP_GPADL回调函数 (vmbuskernelmodeclientlibapi.h)

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

VmbChannelMapGpadl 函数通过使用来宾物理地址描述符列表 (GPADL) 编号将客户端缓冲区映射到服务器端物理地址空间。

语法

FN_VMB_CHANNEL_MAP_GPADL FnVmbChannelMapGpadl;

NTSTATUS FnVmbChannelMapGpadl(
  VMBCHANNEL Channel,
  UINT32 Flags,
  UINT32 GpadlHandle,
  PMDL *Mdl
)
{...}

参数

Channel

通道的句柄。

Flags

标志。 可能的标志值为:

含义
VMBUS_CHANNEL_GPADL_FLAG_READ_ONLY
具有只读访问权限的映射。
 

如果未设置此标志值,则函数会尝试映射 GPADL 以便进行写入访问。 如果未使用写入访问权限创建 GPADL,则此映射尝试将失败。 如果设置了此标志,则不会阻止调用方写入缓冲区。 此方案用于提高实时迁移和快照的性能。

GpadlHandle

要映射的 GPADL 的 GPADL 句柄。

Mdl

指向描述客户端缓冲区的 MDL 的指针。 此缓冲区仅映射到物理地址空间。 调用方必须采取其他步骤将其映射到虚拟地址空间。

返回值

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

注解

GPADL 必须由客户端预先建立,例如,使用 VmbChannelCreateGpadlFromBuffer 函数。

对于任何给定的 GPADL,一次只能存在一个映射。

必须将对此函数的调用与 对 VmbChannelUnmapGpadl 函数的调用配对。

重要

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

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

要求

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

另请参阅

VmbChannelCreateGpadlFromBuffer

VmbChannelUnmapGpadl