次の方法で共有


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

要件

要件
対象プラットフォーム Windows
ヘッダー vmbuskernelmodeclientlibapi.h (VmbusKernelModeClientLibApi.h を含む)
IRQL PASSIVE_LEVEL

こちらもご覧ください

VmbServerChannelInitSetSaveRestorePacketCallbacks