RtlFillMemoryNonTemporal - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
#ifndef _NTRTL_H
#if defined(_M_AMD64) || defined(_M_ARM64)

NTSYSAPI
VOID
NTAPI
RtlFillMemoryNonTemporal(
   _Out_writes_bytes_all_(Length) VOID UNALIGNED *Destination,
   _In_ SIZE_T Length,
   _In_ CONST UCHAR Value
   );

#endif
#endif

View code on GitHub
#ifndef _NTRTL_H
#if defined(_M_AMD64) || defined(_M_ARM64)
// ...
#else

#define RtlFillMemoryNonTemporal RtlFillMemory

#endif
#endif

View code on GitHub
// wdm.h

NTSYSAPI VOID RtlFillMemoryNonTemporal(
  VOID        *Destination,
  SIZE_T      Length,
  const UCHAR Value
);
View the official Windows Driver Kit DDI reference

NtDoc

No description available.

Windows Driver Kit DDI reference (nf-wdm-rtlfillmemorynontemporal)

RtlFillMemoryNonTemporal function

Description

This function fills a block of memory with the specified fill value using non-temporal moves that do not pollute the cache.

Parameters

Destination

A pointer to the destination memory block to copy the bytes to.

Length

The number of bytes to copy from the source to the destination.

Value

The value to fill the destination memory block with. This value is copied to every byte in the memory block that is defined by Destination and Length.

Return value

This function returns NTSYSAPI VOID.

Remarks

RtlFillMemoryNonTemporal only performs a non-temporal fill for x64-based systems, and only when the Length parameter is 8 bytes or greater. Otherwise, this function is equivalent to RtlFillMemory.

See also

RtlFillMemory