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