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