EVT_VMB_CHANNEL_SAVE_PACKET回调函数 (vmbuskernelmodeclientlibapi.h)

[某些信息与预发行的产品有关,该产品在商业发布之前可能会进行大幅修改。 Microsoft对此处提供的信息不作任何明示或暗示的保证。

当虚拟化服务提供商 (VSP) 终结点必须保存与数据包关联的状态时,将调用 EvtVmbChannelSavePacket 回调函数。

语法

EVT_VMB_CHANNEL_SAVE_PACKET EvtVmbChannelSavePacket;

NTSTATUS EvtVmbChannelSavePacket(
  [in]  VMBCHANNEL Channel,
  [in]  VMBPACKET Packet,
  [out] PVOID SaveBuf,
  [in]  UINT32 SaveBufSize,
  [out] PUINT32 BytesNeeded
)
{...}

参数

[in] Channel

数据包到达的通道。

[in] Packet

VSP 保存状态的数据包。

[out] SaveBuf

要将状态保存到其中的缓冲区。

[in] SaveBufSize

SaveBuf 参数的大小(以字节为单位)。

[out] BytesNeeded

保存事务状态所需的大小(以字节为单位)。

返回值

EvtVmbChannelSavePacket 返回状态代码。

言论

VmbServerChannelInitSetSaveRestorePacketCallbacks 函数设置用于保存每个通道的数据包的回调函数。

VSP 保存与 VSP 唯一的事务关联的状态。 内核模式客户端库 (KMCL) 保存自己的状态。

为当前正在使用的每个数据包对象调用此函数。 第一个调用传递 SaveBufSize 参数的零 (0) 值。 如果需要保存任何状态,则此调用将失败,这会用实际大小要求填充 BytesNeeded。 如果第一次调用返回失败代码,则 KMCL 将第二次调用,缓冲区至少为第一次调用中指定的长度。

要求

要求 价值
目标平台 窗户
标头 vmbuskernelmodeclientlibapi.h (包括 VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

另请参阅

VmbServerChannelInitSetSaveRestorePacketCallbacks