次の方法で共有


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
ヘッダー vmbuskernelmodeclientlibapi.h

関連項目

VmbChannelDeleteGpadl する

VmbChannelMapGpadl する