EVT_VMB_CHANNEL_STARTED回调函数 (vmbuskernelmodeclientlibapi.h)

[一些信息与预发布产品相关,在商业发行之前可能发生实质性修改。 Microsoft 对于此处提供的信息不作任何明示或默示的担保。]

当通道完全配置时,在传递任何数据包之前,将在任一终结点调用 EvtVmbChannelStarted 回调函数。 当对方终结点打开通道或在关闭通道后重新打开通道时,将发生这种情况。

语法

EVT_VMB_CHANNEL_STARTED EvtVmbChannelStarted;

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

参数

[in] Channel

已启动的通道。

返回值

备注

创建通道后,客户端驱动程序可以使用 VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT 函数指定用于状态更改的回调函数,包括 EvtVmbChannelStarted

如果已打开暂停的通道或已打开的通道,内核模式客户端库 (KMCL) 调用 EvtVmbChannelStarted 后调用 EvtVmbChannelStartedEvtVmbChannelStarted 可以调用 VmbPacketSendVmbPacketSendWithExternalMdlVmbPacketSendWithExternalPfns 函数将传出数据包排队。 由于传入队列此时未运行,因此此回调不得阻止传入的数据包或完成。

大多数使用 KMCL 的驱动程序不实现此回调。 另一种方法是 EvtVmbChannelPostStarted 回调函数。

等待发送的数据包(例如由 VmbChannelSendSynchronousRequest 函数完成)永远不会返回,因为在调用此回调时数据包不流动。

要求

要求
目标平台 Windows
标头 vmbuskernelmodeclientlibapi.h (包括 VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

另请参阅

EvtVmbChannelOpened

EvtVmbChannelPostStarted

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelSendSynchronousRequest

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns