функция обратного вызова EVT_VMB_CHANNEL_SUSPEND (vmbuskernelmodeclientlibapi.h)
[Некоторые сведения связаны с предварительно выпущенным продуктом, который может быть существенно изменен до его коммерческого выпуска. Корпорация Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых в отношении информации, предоставленной здесь.]
Функция обратного вызова EvtVmbChannelSuspend вызывается в конечной точке сервера при закрытии или удалении канала конечной точкой клиента, которая перемещает сервер в остановленное состояние.
Синтаксис
EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend;
void EvtVmbChannelSuspend(
[in] VMBCHANNEL Channel
)
{...}
Параметры
[in] Channel
Канал, который приостановлен.
Возвращаемое значение
Никакой
Замечания
После создания канала драйвер клиента может указать функции обратного вызова для изменений состояния, включая EvtVmbChannelSuspendс помощью функции VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT.
Если запущенный канал приостановлен с помощью функции VmbChannelPause или закрыт с помощью функции VmbChannelDisable или противоположной конечной точки, клиентская библиотека режима ядра (KMCL) вызывает EvtVmbChannelSuspend. Этот обратный вызов гарантирует, что не выполняется больше EvtVmbChannelProcessPacket, обратные вызовы выполняются или будут помещены в очередь.
EvtVmbChannelSuspend также является уведомлением о том, что клиент KMCL должен в конечном итоге завершить все невыполненные пакеты, указанные с помощью EvtVmbChannelProcessPacket Эти пакеты не должны быть синхронно завершены. Блоки KMCL до тех пор, пока они не будут завершены.
Клиент KMCL также должен прекратить отправку пакетов с помощью VmbPacketSend, VmbPacketSendWithExternalMdlили функции VmbPacketSendWithExternalPfns.
Вызов VmbChannelPause в блоках активных каналов до тех пор, пока EvtVmbChannelSuspend не вызывается, и больше не существуют выдающиеся входящие пакеты.
Вызов блок VmbChannelDisable до приостановки и закрытия канала.
Эта функция гарантирует завершение невыполненных транзакций. Клиент может быть ошибкой, вредоносным или гостевой виртуальной машиной, возможно, произошел сбой. Сервер должен отказаться от любых невыполненных транзакций, вероятно, отменив их.
Требования
Требование | Ценность |
---|---|
целевая платформа | Виндоус |
заголовка | vmbuskernelmodeclientlibapi.h (include VmbusKernelModeClientLibApi.h) |
IRQL | PASSIVE_LEVEL |