共用方式為


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 用戶端也必須使用 VmbPacketSendVmbPacketSendWithExternalMdlVmbPacketSendWithExternalPfns 函式來停止傳送封包。

在作用中信道區塊上呼叫 VmbChannelPause,直到呼叫 EvtVmbChannelSuspend,而且沒有任何未完成的傳入封包存在。
呼叫 VmbChannelDisable 區塊,直到通道暫停並關閉為止。

此函式可保證未完成的交易完成。 用戶端可能是錯誤、惡意或客體虛擬機可能已當機。 伺服器必須淘汰任何未完成的交易,可能是取消這些交易。

要求

要求 價值
目標平臺 窗戶
標頭 vmbuskernelmodeclientlibapi.h (包括 VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

另請參閱

EvtVmbChannelProcessPacket

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelDisable

VmbChannelPause

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns