2 out of 6 rated this helpful - Rate this topic

MoveMemory function

Applies to: desktop apps only

Moves a block of memory from one location to another.

Syntax

void MoveMemory(
  __in  PVOID Destination,
  __in  const VOID *Source,
  __in  SIZE_T Length
);

Parameters

Destination [in]

A pointer to the starting address of the move destination.

Source [in]

A pointer to the starting address of the block of memory to be moved.

Length [in]

The size of the block of memory to move, in bytes.

Return value

This function has no return value.

Remarks

This function is defined as the RtlMoveMemory function. Its implementation is provided inline. For more information, see Winbase.h and Winnt.h.

The source and destination blocks may overlap.

Security Remarks

The first parameter, Destination, must be large enough to hold Length bytes of Source; otherwise, a buffer overrun may occur. This may lead to a denial of service attack against the application if an access violation occurs or, in the worst case, allow an attacker to inject executable code into your process. This is especially true if Destination is a stack-based buffer. Be aware that the last parameter, Length, is the number of bytes to copy into Destination, not the size of the Destination.

Requirements

Minimum supported client

Windows XP

Minimum supported server

Windows Server 2003

Header

Winbase.h (include Windows.h)

DLL

Kernel32.dll

See also

CopyMemory
FillMemory
Memory Management Functions
SecureZeroMemory
ZeroMemory

 

 

Send comments about this topic to Microsoft

Build date: 2/7/2012

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ