EVT_VMB_CHANNEL_STARTED callback function (vmbuskernelmodeclientlibapi.h)
[Some information relates to pre-released product which may be substantially modified before it's commercially released. Microsoft makes no warranties, express or implied, with respect to the information provided here.]
The EvtVmbChannelStarted callback function is invoked at either endpoint when a channel is fully configured but before any packets have been delivered. This occurs when the opposite endpoint opened the channel or reopened it after closing it.
Syntax
EVT_VMB_CHANNEL_STARTED EvtVmbChannelStarted;
void EvtVmbChannelStarted(
[in] VMBCHANNEL Channel
)
{...}
Parameters
[in] Channel
The channel which is started.
Return value
None
Remarks
After a channel is created, a client driver can specify callback functions for state changes, including EvtVmbChannelStarted, by using the VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT function.
If a paused channel is opened or an opened channel is started, Kernel Mode Client Library (KMCL) calls EvtVmbChannelStarted after it calls the EvtVmbChannelOpened callback. EvtVmbChannelStarted can call the VmbPacketSend, VmbPacketSendWithExternalMdl, and VmbPacketSendWithExternalPfns functions to queue up outgoing packets. Because the incoming queue is not running at this point, this callback must not block on incoming packets or completions.
Most drivers using KMCL do not implement this callback. An alternative is the EvtVmbChannelPostStarted callback function.
Waiting for a sent packet to complete, such as by the VmbChannelSendSynchronousRequest function, never returns because packets are not flowing when this callback is invoked.
Requirements
Requirement | Value |
---|---|
Target Platform | Windows |
Header | vmbuskernelmodeclientlibapi.h (include VmbusKernelModeClientLibApi.h) |
IRQL | PASSIVE_LEVEL |
See also
VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT