次の方法で共有


KeInvalidateRangeAllCaches 関数 (ntddk.h)

KeInvalidateRangeAllCaches ルーチンは、指定された仮想アドレス範囲をすべてのプロセッサ キャッシュからフラッシュします。

構文

void KeInvalidateRangeAllCaches(
  PVOID BaseAddress,
  ULONG Length
);

パラメーター

BaseAddress

フラッシュするリージョンのベースへのポインター。

Length

フラッシュするリージョンのサイズ (バイト単位)。

戻り値

なし

解説

KeInvalidateRangeAllCaches ルーチンは、各プロセッサのキャッシュで指定された仮想アドレス範囲をフラッシュし、各キャッシュの内容が無効なマークを付けます。 プロセッサ キャッシュは、 KeInvalidateRangeAllCaches から戻る前にフラッシュ操作が完了することが保証されます。

この関数は、すべてのプラットフォームで使用でき、 KeInvalidateAllCaches よりも優先されます。 Arm64 などのすべてのアーキテクチャでキャッシュ全体をフラッシュする信頼性の高い方法がサポートされているわけではないため、 KeInvalidateAllCaches はすべてのプラットフォームで使用できるわけではありません。 また、キャッシュの内容全体よりも、影響を受ける特定のメモリ範囲をフラッシュする方が大幅に効率的です。

この関数は、基になる同じ物理メモリのすべての仮想マッピングのキャッシュをフラッシュします。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows で使用できます。
サポートされている最小のサーバー Windows Server 2008 以降のバージョンの Windows で使用できます。
Header ntddk.h
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

KeInvalidateAllCaches