EVT_VMB_CHANNEL_SUSPEND функции обратного вызова (vmbuskernelmodeclientlibapi.h)

[Некоторые сведения относятся к предварительно выпущенным продуктам, которые могут быть существенно изменены до его коммерческого выпуска. Майкрософт не дает никаких гарантий, явных или подразумеваемых, в отношении предоставленной здесь информации.]

Функция обратного вызова EvtVmbChannelSuspend вызывается в конечной точке сервера при закрытии или удалении канала конечной точкой клиента, которая перемещает сервер в состояние Остановлено.

Синтаксис

EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend;

void EvtVmbChannelSuspend(
  [in] VMBCHANNEL Channel
)
{...}

Параметры

[in] Channel

Приостановленный канал.

Возвращаемое значение

None

Remarks

После создания канала драйвер клиента может указать функции обратного вызова для изменения состояния, включая EvtVmbChannelSuspend, с помощью функции VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT .

Если запущенный канал приостановлен с помощью функции VmbChannelPause или закрыт с помощью функции VmbChannelDisable или противоположной конечной точки, клиентская библиотека режима ядра (KMCL) вызывает EvtVmbChannelSuspend. Этот обратный вызов гарантирует, что обратные вызовы EvtVmbChannelProcessPacket не выполняются или не будут помещены в очередь.

EvtVmbChannelSuspend также является уведомлением о том, что клиент KMCL должен в конечном итоге завершить все незавершенные пакеты, указанные с помощью EvtVmbChannelProcessPacket . Эти пакеты не нужно заполнять синхронно. KMCL блокируется до тех пор, пока они не будут завершены.

Клиент KMCL также должен прекратить отправку пакетов с помощью функций VmbPacketSend, VmbPacketSendWithExternalMdl или VmbPacketSendWithExternalPfns .

Вызов VmbChannelPause в активном канале блокируется, пока не будет вызван Метод EvtVmbChannelSuspend и больше не будут существовать незадачлые входящие пакеты.
Вызов блока VmbChannelDisable , пока канал не будет приостановлен и закрыт.

Эта функция гарантирует завершение невыполненных транзакций. Клиент может быть ошибкой, вредоносным или сбой гостевой виртуальной машины. Сервер должен снять с учета все невыполненные транзакции, вероятно, отменив их.

Требования

Требование Значение
Целевая платформа Windows
Header vmbuskernelmodeclientlibapi.h (включая VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

См. также раздел

EvtVmbChannelProcessPacket

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelDisable

VmbChannelPause

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns