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 后调用 EvtVmbChannelStarted 。 EvtVmbChannelStarted 可以调用 VmbPacketSend、 VmbPacketSendWithExternalMdl 和 VmbPacketSendWithExternalPfns 函数将传出数据包排队。 由于传入队列此时未运行,因此此回调不得阻止传入的数据包或完成。
大多数使用 KMCL 的驱动程序不实现此回调。 另一种方法是 EvtVmbChannelPostStarted 回调函数。
等待发送的数据包(例如由 VmbChannelSendSynchronousRequest 函数完成)永远不会返回,因为在调用此回调时数据包不流动。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | vmbuskernelmodeclientlibapi.h (包括 VmbusKernelModeClientLibApi.h) |
IRQL | PASSIVE_LEVEL |
另请参阅
VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT