функция обратного вызова EVT_VMB_CHANNEL_SAVE_PACKET (vmbuskernelmodeclientlibapi.h)
[Некоторые сведения относятся к предварительно выпущенным продуктам, которые могут быть существенно изменены до его коммерческого выпуска. Майкрософт не дает никаких гарантий, явных или подразумеваемых, в отношении предоставленной здесь информации.]
Функция обратного вызова EvtVmbChannelSavePacket вызывается, когда конечная точка поставщика служб виртуализации (VSP) должна сохранить состояние, связанное с пакетом.
Синтаксис
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) сохраняет собственное состояние.
Эта функция вызывается для каждого объекта пакета, который используется в данный момент. Первый вызов передает нулевое значение (0) для параметра SaveBufSize . Этот вызов завершается сбоем, если требуется сохранить какое-либо состояние, которое заполняет значение BytesNeeded фактическим требованием к размеру. Если этот первый вызов возвращает код сбоя, KMCL вызывает второй раз с буфером по крайней мере длины, указанной в первом вызове.
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | vmbuskernelmodeclientlibapi.h (включая VmbusKernelModeClientLibApi.h) |
IRQL | PASSIVE_LEVEL |