FN_VMB_CHANNEL_CREATE_GPADL_FROM_MDL回调函数 (vmbuskernelmodeclientlibapi.h)
[一些信息与预发布产品相关,在商业发行之前可能发生实质性修改。 Microsoft 对于此处提供的信息不作任何明示或默示的担保。]
VmbChannelCreateGpadlFromMdl 函数创建描述客户端缓冲区的来宾物理地址描述符列表 (GPADL) 。 可以在服务器中使用 GPADL 来访问缓冲区。
语法
FN_VMB_CHANNEL_CREATE_GPADL_FROM_MDL FnVmbChannelCreateGpadlFromMdl;
NTSTATUS FnVmbChannelCreateGpadlFromMdl(
VMBCHANNEL Channel,
UINT32 Flags,
PMDL Mdl,
UINT32 StartOffsetWithinMdl,
UINT32 DataLengthWithinMdl,
PUINT32 GpadlHandle
)
{...}
参数
Channel
通道的句柄。
Flags
标志。 下面列出了可能的值:
值 | 含义 |
---|---|
|
如果指定此值,则缓冲区为只读。 否则,服务器可以写入缓冲区。 这不是安全措施,但可以提高快照和实时迁移性能。 |
Mdl
指向内存描述符列表的指针 (描述缓冲区的 MDL) 链。 缓冲区可能有多个部分,这些片段通过使用 MDL 下一个指针进行链接。
StartOffsetWithinMdl
MDL 中要开始映射的偏移量(以字节为单位)。
DataLengthWithinMdl
缓冲区链的长度(以字节为单位)。 如果此值为零 (0) ,请使用 MDL 结束。
GpadlHandle
创建的 MDL 的 GPADL 句柄。 将此数据发送到服务器,以便与 VmbChannelMapGpadl 函数一起使用。
返回值
如果操作成功,则返回STATUS_SUCCESS,否则返回相应的 NTSTATUS 错误代码。
注解
当此函数返回时,服务器终结点可以调用 VmbChannelMapGpadl,因为 VMBus 已将 GPADL 说明发送到相反的终结点并收到确认。
必须使用 VmbChannelDeleteGpadl 函数删除 GPADL 。
重要
此函数通过 VMBus 内核模式客户端库 (KMCL) 接口调用,由 Vmbkmcl.sys 总线驱动程序提供。 这是从 KMCL_CLIENT_INTERFACE_V1 结构访问的客户端函数。
有关详细信息,请参阅 KMCL_CLIENT_INTERFACE_V1的“备注”部分。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1803 |
标头 | vmbuskernelmodeclientlibapi.h |