EVT_VMB_CHANNEL_STARTED - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// vmbuskernelmodeclientlibapi.h

EVT_VMB_CHANNEL_STARTED EvtVmbChannelStarted;

VOID EvtVmbChannelStarted(
  [in] VMBCHANNEL Channel
)
{...}
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nc-vmbuskernelmodeclientlibapi-evt_vmb_channel_started)

EVT_VMB_CHANNEL_STARTED callback function

Description

[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.

Parameters

Channel [in]

The channel which is started.

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.

See also

EvtVmbChannelOpened

EvtVmbChannelPostStarted

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelSendSynchronousRequest

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns