次の方法で共有


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 は、 VmbPacketSendVmbPacketSendWithExternalMdlおよび VmbPacketSendWithExternalPfns 関数を呼び出して、送信パケットをキューに登録できます。 この時点では受信キューが実行されていないため、このコールバックは受信パケットまたは入力候補をブロックしてはなりません。

KMCL を使用するほとんどのドライバーでは、このコールバックは実装されません。 別の方法として、 EvtVmbChannelPostStarted コールバック関数があります。

VmbChannelSendSynchronousRequest 関数などによって送信されたパケットが完了するまで待機している場合、このコールバックが呼び出されたときにパケットがフローしないため、 は返されません。

要件

要件
対象プラットフォーム Windows
ヘッダー vmbuskernelmodeclientlibapi.h (VmbusKernelModeClientLibApi.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

EvtVmbChannelOpened

EvtVmbChannelPostStarted

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelSendSynchronousRequest

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns