RtlMoveMemory macro (wdm.h)
The RtlMoveMemory routine copies the contents of a source memory block to a destination memory block, and supports overlapping source and destination memory blocks.
void RtlMoveMemory(
void* Destination,
const void* Source,
size_t Length
);
[out] Destination
A pointer to the destination memory block to copy the bytes to.
[in] Source
A pointer to the source memory block to copy the bytes from.
[in] Length
The number of bytes to copy from the source to the destination.
None
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.
Requirement | Value |
---|---|
Target Platform | Universal |
Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Any level (See Remarks section) |
DDI compliance rules | BufAfterReqCompletedIntIoctlA(kmdf), BufAfterReqCompletedIoctlA(kmdf), BufAfterReqCompletedReadA(kmdf), BufAfterReqCompletedWriteA(kmdf) |