HvCallFlushGuestPhysicalAddressList

HvCallFlushGuestPhysicalAddressList ハイパーコールは、キャッシュされた GVA/L2 GPA から GPA へのマッピングを、第 2 レベルのアドレス空間の一部内で無効にします。

アーキテクチャ: x64 のみ。

インターフェイス

HV_STATUS
HvCallFlushGuestPhysicalAddressList(
   _In_ HV_SPA AddressSpace,
   _In_ UINT64 Flags,
   _In_ HV_GPA_PAGE_RANGE* GpaRangeList // Reads RepCount elements
   );

このハイパーコールは、入れ子になった仮想化がアクティブな場合にのみ使用できます。 仮想 TLB 無効化操作は、すべてのプロセッサに対して機能します。

この呼び出しにより、制御が呼び出し元に戻るまでに、すべてのフラッシュの監視可能な効果が発生することが保証されます。 TLB が現在 "ロック" されている場合、呼び出し元の仮想プロセッサは中断されます。

この呼び出しは、フラッシュする L2 GPA 範囲の一覧を受け取ります。 各範囲には基本 L2 GPA があります。 フラッシュはページ粒度で実行されるため、L2 GPA の下位 12 ビットを使用して範囲の長さを定義できます。 これらのビットは、範囲内の (初期ページを超えて) 追加ページの数をエンコードします。 これにより、各エントリは 1 ~ 4096 ページの範囲をエンコードできます。

呼び出しコード

0x00B0 (Rep)

パラメーターの入力

名前 オフセット サイズ 提供される情報
AddressSpace 0 アドレス空間 ID (EPT PML4 テーブル ポインター) を指定します。
Flags RsvdZ

Input List 要素

名前 オフセット サイズ 提供される情報
GpaRange 0 GPA 範囲