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、VmbPacketSendWithExternalMdlVmbPacketSendWithExternalPfns 函式來停止傳送封包。

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

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

規格需求

需求
目標平台 Windows
標頭 vmbuskernelmodeclientlibapi.h (包含 VmbusKernelModeClientLibApi.h)
IRQL PASSIVE_LEVEL

另請參閱

EvtVmbChannelProcessPacket

VMB_CHANNEL_STATE_CHANGE_CALLBACKS_INIT

VmbChannelDisable

VmbChannelPause

VmbPacketSend

VmbPacketSendWithExternalMdl

VmbPacketSendWithExternalPfns