次の方法で共有


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

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

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

構文

FN_VMB_CHANNEL_CREATE_GPADL_FROM_BUFFER FnVmbChannelCreateGpadlFromBuffer;

NTSTATUS FnVmbChannelCreateGpadlFromBuffer(
  VMBCHANNEL Channel,
  UINT32 Flags,
  PVOID Buffer,
  UINT32 ByteCount,
  PUINT32 GpadlHandle
)
{...}

パラメーター

Channel

チャネルのハンドル。

Flags

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

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

Buffer

バッファー。GPADL が破棄されるまでプローブされ、ロックされます。

ByteCount

バッファーの長さ (バイト単位)。

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