FN_VMB_PACKET_SEND回调函数 (vmbuskernelmodeclientlibapi.h)
[一些信息与预发布产品相关,在商业发行之前可能发生实质性修改。 Microsoft 对于此处提供的信息不作任何明示或默示的担保。]
VmbPacketSend 函数将数据发送到数据包缓冲区或外部数据内存描述符列表 (MDL) 。 函数将该数据与 VMBus 数据包对象相关联,该对象在事务的整个生存期内表示数据包。
语法
FN_VMB_PACKET_SEND FnVmbPacketSend;
NTSTATUS FnVmbPacketSend(
__drv_aliasesMem VMBPACKET PacketObject,
PVOID Buffer,
UINT32 BufferLength,
PMDL ExternalDataMdl,
UINT32 Flags
)
{...}
参数
PacketObject
VMBus 数据包对象的句柄。
Buffer
一个缓冲区,其中包含通过 VMBus 环形缓冲区发送的命令数据包。
BufferLength
Buffer 参数中缓冲区的长度(以字节为单位)。
ExternalDataMdl
描述与数据包关联的数据缓冲区的 MDL。
Flags
标志。 下面是相关标志:
值 | 含义 |
---|---|
|
在完成数据包从相反的终结点返回之前,无法将此数据包视为已完成,并且无法释放其资源。 |
|
内联缓冲区是分页的,必须相应地进行处理,这意味着必须在进入 DPC 级别之前复制它。 调用方负责探测用户模式缓冲区或处理访问冲突。 |
返回值
如果操作成功,则返回STATUS_SUCCESS,否则返回相应的 NTSTATUS 错误代码。
注解
有关发送数据包的其他方法的信息,请参阅 VmbPacketSendWithExternalMdl、 VmbChannelSendSynchronousRequest 和 VmbPacketSendWithExternalPfns 函数。
重要
此函数通过 VMBus 内核模式客户端库 (KMCL) 接口调用,由 Vmbkmcl.sys 总线驱动程序提供。 这是从 KMCL_CLIENT_INTERFACE_V1 结构访问的客户端函数。
有关详细信息,请参阅 KMCL_CLIENT_INTERFACE_V1的“备注”部分。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 10 版本 1803 |
标头 | vmbuskernelmodeclientlibapi.h |