EVT_VMB_CHANNEL_SUSPEND コールバック関数 (vmbuskernelmodeclientlibapi.h)
[一部の情報は、商用リリース前に大幅に変更される可能性があるプレリリース製品に関連しています。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。
EvtVmbChannelSuspend コールバック関数は、チャネルがクライアント エンドポイントによって閉じられたり削除されたりすると、サーバー エンドポイントで呼び出され、サーバーが停止状態になります。
構文
EVT_VMB_CHANNEL_SUSPEND EvtVmbChannelSuspend;
void EvtVmbChannelSuspend(
[in] VMBCHANNEL Channel
)
{...}
パラメーター
[in] Channel
中断されているチャネル。
戻り値
何一つ
備考
チャネルが作成された後、クライアント ドライバーは、VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT 関数を使用して、evtVmbChannelSuspend を含む状態変更のコールバック関数を指定できます。
実行中のチャネルが VmbChannelPause 関数を使用して中断された場合、または VmbChannelDisable 関数を使用して閉じた場合、または反対のエンドポイントによって、カーネル モード クライアント ライブラリ (KMCL) は EvtVmbChannelSuspend 呼び出します。 このコールバックは、EvtVmbChannelProcessPacket コールバックが実行されているか、キューに登録される がなくなったことを保証します。
EvtVmbChannelSuspend は、KMCL クライアントが最終的に、EvtVmbChannelProcessPacket を使用して示されたすべての未処理のパケットを完了する必要があることを通知 これらのパケットを同期的に完了する必要はありません。 KMCL は、完了するまでブロックします。
KMCL クライアントは、VmbPacketSend、VmbPacketSendWithExternalMdl、または VmbPacketSendWithExternalPfns 関数を して、パケットの送信を停止する必要もあります。
アクティブなチャネルで VmbChannelPause を する呼び出しは、EvtVmbChannelSuspend 呼び出され、未処理の受信パケットが存在しなくなるまでブロックされます。
チャネル 一時停止して閉じるまで、vmbChannelDisable ブロックを呼び出します。
この関数は、未処理のトランザクションの完了を保証します。 クライアントがバグのある、悪意のある、またはゲスト仮想マシンがクラッシュした可能性があります。 サーバーは、未処理のトランザクションを取り消すことによって、削除する必要があります。
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | ウィンドウズ |
ヘッダー | vmbuskernelmodeclientlibapi.h (VmbusKernelModeClientLibApi.h を含む) |
IRQL | PASSIVE_LEVEL |
関連項目
EvtVmbChannelProcessPacket の
VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT
VmbChannelDisable の
VmbChannelPause の
VmbPacketSend を する
VmbPacketSendWithExternalMdl の
VmbPacketSendWithExternalPfns を する