次の方法で共有


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

[一部の情報はリリース前の製品に関することであり、正式版がリリースされるまでに大幅に変更される可能性があります。 ここに記載された情報について、Microsoft は明示または黙示を問わずいかなる保証をするものでもありません。]

VmbChannelCreateGpadlFromMdl 関数は、クライアント側バッファーを記述するゲスト物理アドレス記述子リスト (GPADL) を作成します。 GPADL は、サーバーでバッファーにアクセスするために使用できます。

構文

FN_VMB_CHANNEL_CREATE_GPADL_FROM_MDL FnVmbChannelCreateGpadlFromMdl;

NTSTATUS FnVmbChannelCreateGpadlFromMdl(
  VMBCHANNEL Channel,
  UINT32 Flags,
  PMDL Mdl,
  UINT32 StartOffsetWithinMdl,
  UINT32 DataLengthWithinMdl,
  PUINT32 GpadlHandle
)
{...}

パラメーター

Channel

チャネルのハンドル。

Flags

フラグ。 使用できる値を次に示します。

意味
VMBUS_CHANNEL_GPADL_READ_ONLY
この値を指定すると、バッファーは読み取り専用になります。 それ以外の場合、サーバーはバッファーに書き込むことができます。 これはセキュリティ対策ではありませんが、スナップショットとライブ マイグレーションのパフォーマンスを向上させることができます。

Mdl

バッファーを記述するメモリ記述子リスト (MDL) チェーンへのポインター。 バッファーには複数の部分があり、MDL の次のポインターを使用してチェーンされます。

StartOffsetWithinMdl

マッピングを開始する MDL 内のオフセット (バイト単位)。

DataLengthWithinMdl

バッファー チェーンの長さ (バイト単位)。 この値がゼロ (0) の場合は、MDL の末尾まで を使用します。

GpadlHandle

作成された MDL の GPADL ハンドル。 VmbChannelMapGpadl 関数で使用するために、これをサーバーに送信します。

戻り値

操作が成功した場合はSTATUS_SUCCESSを返し、それ以外の場合は適切な NTSTATUS エラー コードを返します。

注釈

この関数が戻ると、VMBus は既に GPADL の説明を反対のエンドポイントに送信し、確認を受け取っているため、サーバー エンドポイントは VmbChannelMapGpadl を呼び出すことができます。

GPADL は、VmbChannelDeleteGpadl 関数を使用して削除する必要があります。

重要

この関数は、Vmbkmcl.sys バス ドライバーによって提供される VMBus カーネル モード クライアント ライブラリ (KMCL) インターフェイスを介して呼び出されます。 これは、 KMCL_CLIENT_INTERFACE_V1 構造体からアクセスされるクライアント関数です。

詳細については、 KMCL_CLIENT_INTERFACE_V1の「解説」セクションを参照してください。

要件

要件
サポートされている最小のクライアント Windows 10 バージョン 1803
Header vmbuskernelmodeclientlibapi.h

こちらもご覧ください

VmbChannelDeleteGpadl

VmbChannelMapGpadl