Поделиться через


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

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

Функция обратного вызова EvtVmbChannelStarted вызывается в любой конечной точке, когда канал полностью настроен, но до доставки пакетов. Это происходит, когда противоположная конечная точка открыла канал или снова открыла его после закрытия.

Синтаксис

EVT_VMB_CHANNEL_STARTED EvtVmbChannelStarted;

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

Параметры

[in] Channel

Запущенный канал.

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

None

Remarks

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

Если открыт приостановленный канал или запущен открытый канал, клиентская библиотека режима ядра (KMCL) вызывает Метод EvtVmbChannelStarted после вызова обратного вызова EvtVmbChannelOpened . EvtVmbChannelStarted может вызывать функции VmbPacketSend, VmbPacketSendWithExternalMdl и VmbPacketSendWithExternalPfns для постановки исходящих пакетов в очередь. Так как входящая очередь не выполняется на этом этапе, этот обратный вызов не должен блокировать входящие пакеты или завершения.

Большинство драйверов, использующих KMCL, не реализуют этот обратный вызов. Альтернативой является функция обратного вызова EvtVmbChannelPostStarted .

Ожидание завершения отправленного пакета, например функции VmbChannelSendSynchronousRequest , никогда не возвращается, так как пакеты не передаются при вызове этого обратного вызова.

Требования

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

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

EvtVmbChannelOpened

EvtVmbChannelPostStarted

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelSendSynchronousRequest

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns