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

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

VmbChannelMapGpadl 関数は、ゲスト物理アドレス記述子リスト (GPADL) 番号を使用して、クライアント側バッファーをサーバー側の物理アドレス空間にマップします。

構文

FN_VMB_CHANNEL_MAP_GPADL FnVmbChannelMapGpadl;

NTSTATUS FnVmbChannelMapGpadl(
  VMBCHANNEL Channel,
  UINT32 Flags,
  UINT32 GpadlHandle,
  PMDL *Mdl
)
{...}

パラメーター

Channel

チャネルのハンドル。

Flags

フラグ。 使用可能なフラグ値は次のとおりです。

意味
VMBUS_CHANNEL_GPADL_FLAG_READ_ONLY
読み取り専用アクセス権を持つマップ。
 

このフラグ値が設定されていない場合、関数は書き込みアクセスのために GPADL のマップを試みます。 書き込みアクセス権を持つ GPADL が作成されなかった場合、このマッピング試行は失敗します。 このフラグが設定されている場合、呼び出し元はバッファーへの書き込みを妨げるものではありません。 このスキームは、ライブ マイグレーションとスナップショット作成のパフォーマンスを向上させるために使用されます。

GpadlHandle

マップする GPADL の GPADL ハンドル。

Mdl

クライアント バッファーを記述する MDL へのポインター。 このバッファーは、物理アドレス空間にのみマップされます。 呼び出し元は、仮想アドレス空間にマップするための追加の手順を実行する必要があります。

戻り値

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

注釈

GPADL は、たとえば 、VmbChannelCreateGpadlFromBuffer 関数を使用して、クライアントによって事前に確立されている必要があります。

特定の GPADL に対して一度に存在するマッピングは 1 つだけです。

この関数の呼び出しと 、VmbChannelUnmapGpadl 関数の呼び出しをペアにする必要があります。

重要

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

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

要件

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

こちらもご覧ください

VmbChannelCreateGpadlFromBuffer

VmbChannelUnmapGpadl