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 |