Share via


CacheRangeFlush

Other versions of this page are also available for the following:

Windows Mobile Not SupportedWindows Embedded CE Supported

8/28/2008

This function is called by device drivers and applications to flush a specified range of the cache.

Syntax

void CacheRangeFlush(
  LPVOID pAddr,
  DWORD dwLength,
  DWORD dwFlags
);

Parameters

  • pAddr
    [in] Starting virtual address where the cache operation is to be performed in. The cache operation is specified by the value in dwFlags.
  • dwLength
    [in] Specifies the length, in bytes.
  • dwFlags
    [in] Specifies the operation to be performed. The following table shows possible values.

    Value Description

    CACHE_SYNC_ALL

    Perform all of the above operations.

    CACHE_SYNC_DISCARD

    Write back and discard cached data.

    CACHE_SYNC_FLUSH_D_TLB

    Flush the data TLB.

    CACHE_SYNC_FLUSH_I_TLB

    Flush the instruction translation look-aside buffer (TLB).

    CACHE_SYNC_FLUSH_TLB

    Flush both the instruction TLB and the data TLB.

    CACHE_SYNC_INSTRUCTIONS

    Discard all cached instructions.

    CACHE_SYNC_L2_DISCARD

    Write back and discard the L2 cache.

    CACHE_SYNC_L2_WRITEBACK

    Write back the L2 cache.

    CACHE_SYNC_WRITEBACK

    Write back cached data.

Return Value

None.

Remarks

If pAddr and dwLength are set to zero, this applies to all addresses. For example, the call CacheRangeFlush(0, 0, CACHE_SYNC_FLUSH_TLB) flushes the data in the TLB. CacheRangeFlush(0, 0, CACHE_SYNC_DISCARD) writes back and discards everything in the data cache.

Requirements

Header pkfuncs.h
Library coredll.lib
Windows Embedded CE Windows CE .NET 4.2 and later

See Also

Reference

Kernel Functions

Other Resources

OEMCacheRangeFlush