FlushInstructionCache function (processthreadsapi.h)

Flushes the instruction cache for the specified process.


BOOL FlushInstructionCache(
  [in] HANDLE  hProcess,
  [in] LPCVOID lpBaseAddress,
  [in] SIZE_T  dwSize


[in] hProcess

A handle to a process whose instruction cache is to be flushed.

[in] lpBaseAddress

A pointer to the base of the region to be flushed. This parameter can be NULL.

[in] dwSize

The size of the region to be flushed if the lpBaseAddress parameter is not NULL, in bytes.

Return value

If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.


Applications should call FlushInstructionCache if they generate or modify code in memory. The CPU cannot detect the change, and may execute the old code it cached.


Requirement Value
Minimum supported client Windows XP [desktop apps | UWP apps]
Minimum supported server Windows Server 2003 [desktop apps | UWP apps]
Target Platform Windows
Header processthreadsapi.h (include Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

See also

Debugging Functions