次の方法で共有


EVT_VMB_CHANNEL_SAVE_PACKET コールバック関数 (vmbuskernelmodeclientlibapi.h)

[一部の情報は、商用リリース前に大幅に変更される可能性があるプレリリース製品に関連しています。 Microsoft は、ここで提供される情報に関して明示的または黙示的な保証を行いません。

EvtVmbChannelSavePacket コールバック関数は、仮想化サービス プロバイダー (VSP) エンドポイントがパケットに関連付けられている状態を保存する必要があるときに呼び出されます。

構文

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 は、最初の呼び出しで指定された長さ以上のバッファーを使用して 2 回目を呼び出します。

必要条件

要件 価値
ターゲット プラットフォーム ウィンドウズ
ヘッダー vmbuskernelmodeclientlibapi.h (VmbusKernelModeClientLibApi.h を含む)
IRQL PASSIVE_LEVEL

関連項目

VmbServerChannelInitSetSaveRestorePacketCallbacks