Cache Flush Routines
Instruction and data caches are flushed based on the CPU architecture and the kernel.
Data Cache Flush
The data cache flush function OEMCacheRangeFlush is called to flush the data cache by determining how many cache lines are available and then flushing each line until all lines have been flushed.
Note The old data cache flush function, FlushDCache, is deprecated and should never be used.
OEMCacheRangeFlush is called in the following cases:
- CacheSync is called. This is a public API that anyone can call.
- When the kernel loads DLLs or executable files.
- Whenever the kernel debugger is active.
Instruction Cache Flush
The instruction cache flush function OEMCacheRangeFlush is called at various times to flush the instruction cache by determining how many cache lines are available and then flushing each line until all lines have been flushed.
Note The old instruction cache flush function, FlushICache, is deprecated and should never be used.
OEMCacheRangeFlush is called in the following cases:
CacheSync is called with flags CACHE_SYNC_INSTRUCTIONS or CACHE_SYNC_DISCARD. This is a public API that anyone can call.
When DLLs or executable files are loaded or paged in by the kernel.
Whenever the kernel debugger is performing active.
**Note **On x86-based platforms, there is only one cache flush routine called OEMFlushCache.
See Also
OEMCacheRangeFlush Function Implementation
Last updated on Wednesday, April 13, 2005
© 2005 Microsoft Corporation. All rights reserved.