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 使用至少第一次调用中指定的长度调用第二次。

要求

要求
目标平台 Windows
标头 vmbuskernelmodeclientlibapi.h (包括 VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

另请参阅

VmbServerChannelInitSetSaveRestorePacketCallbacks