[某些資訊與發行前的產品有關,在正式發行前可能會大幅修改。 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 |