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)在调用 EvtVmbChannelOpened 回调后,调用 EvtVmbChannelStartedEvtVmbChannelStarted 可以调用 VmbPacketSendVmbPacketSendWithExternalMdl,以及 VmbPacketSendWithExternalPfns 函数来排队传出数据包。 由于传入队列目前未运行,因此此回调不得阻止传入数据包或完成。

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

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

要求

要求 价值
目标平台 窗户
标头 vmbuskernelmodeclientlibapi.h (包括 VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

另请参阅

EvtVmbChannelOpened

EvtVmbChannelPostStarted

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelSendSynchronousRequest

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns