共用方式為


EVT_VMB_CHANNEL_SAVE_PACKET回呼函式 (vmbuskernelmodeclientlibapi.h)

[某些資訊與發行前版本產品有關,在正式發行前可能會大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。]

當虛擬化服務提供者 (VSP) 端點必須儲存與封包相關聯的狀態時,會叫用 EvtVmbChannelSavePacket 回呼函式。

語法

EVT_VMB_CHANNEL_SAVE_PACKET EvtVmbChannelSavePacket;

NTSTATUS EvtVmbChannelSavePacket(
  [in]  VMBCHANNEL Channel,
  [in]  VMBPACKET Packet,
  [out] PVOID SaveBuf,
  [in]  UINT32 SaveBufSize,
  [out] PUINT32 BytesNeeded
)
{...}

參數

[in] Channel

封包抵達的通道。

[in] Packet

VSP 儲存狀態的封包。

[out] SaveBuf

要在其中儲存狀態的緩衝區。

[in] SaveBufSize

SaveBuf 參數的大小,以位元組為單位。

[out] BytesNeeded

儲存交易狀態所需的大小,以位元組為單位。

傳回值

EvtVmbChannelSavePacket 會傳回狀態代碼。

備註

VmbServerChannelInitSetSaveRestorePacketCallbacks 函式會設定回呼函式,以儲存每個通道的封包。

VSP 會儲存與 VSP 唯一之交易相關聯的狀態。 核心模式客戶端連結庫 (KMCL) 儲存自己的狀態。

系統會針對目前使用中的每個封包物件叫用此函式。 第一個調用會傳遞 SaveBufSize 參數的零 (0) 值。 如果需要儲存任何狀態,則此呼叫會失敗,這會填滿 BytesNeeded 的實際大小需求。 如果這個第一次叫用傳回失敗碼,KMCL 會第二次呼叫緩衝區,其長度至少為第一次呼叫中規定。

規格需求

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

另請參閱

VmbServerChannelInitSetSaveRestorePacketCallbacks