Expand Minimize
3 out of 3 rated this helpful - Rate this topic

RtlMoveMemory routine

The RtlMoveMemory routine copies the contents of a source memory block to a destination memory block, and supports overlapping source and destination memory blocks.

Syntax


VOID RtlMoveMemory(
  _Out_  VOID UNALIGNED *Destination,
  _In_   const VOID UNALIGNED *Source,
  _In_   SIZE_T Length
);

Parameters

Destination [out]

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

Source [in]

A pointer to the source memory block to copy the bytes from.

Length [in]

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

Return value

None

Remarks

The source memory block, which is defined by Source and Length, can overlap the destination memory block, which is defined by Destination and Length.

The RtlCopyMemory routine runs faster than RtlMoveMemory, but RtlCopyMemory requires that the source and destination memory blocks do not overlap.

Callers of RtlMoveMemory can be running at any IRQL if the source and destination memory blocks are in nonpaged system memory. Otherwise, the caller must be running at IRQL <= APC_LEVEL.

Requirements

Version

Available starting with Windows 2000.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

Library

Contained in Ntoskrnl.lib.

IRQL

Any level (See Remarks section)

DDI compliance rules

BufAfterReqCompletedIntIoctlA, BufAfterReqCompletedIoctlA, BufAfterReqCompletedReadA, BufAfterReqCompletedWriteA

See also

RtlCopyMemory

 

 

Send comments about this topic to Microsoft

Build date: 5/22/2013

Did you find this helpful?
(1500 characters remaining)
© 2013 Microsoft. All rights reserved.