次の方法で共有


KeInvalidateRangeAllCaches 関数 (ntddk.h)

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

構文

void KeInvalidateRangeAllCaches(
  PVOID BaseAddress,
  ULONG Length
);

パラメーター

BaseAddress

フラッシュする領域のベースへのポインター。

Length

フラッシュする領域のサイズ (バイト単位)。

戻り値

何一つ

備考

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

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

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

必要条件

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

関連項目

KeInvalidateAllCaches