NdisMoveMemory macro (ndis.h)

The NdisMoveMemory function copies a specified number of bytes from one caller-supplied location to another.

Syntax

void NdisMoveMemory(
  [out]  Destination,
  [in]   Source,
  [in]   Length
);

Parameters

[out] Destination

A pointer to a system-space buffer that is the destination of the move. This buffer must be at least Length bytes in size.

[in] Source

A pointer to a system-space buffer from which this function copies the data to the destination buffer. This buffer must be at least Length bytes in size.

[in] Length

The number of bytes to copy.

Return value

None

Remarks

Both Source and Destination are virtual addresses.

If either address falls within a range of device memory that was mapped with NdisMMapIoSpace, a miniport driver should call one of the Ndis..MappedMemory functions instead of NdisMoveMemory.

The range specified by Source and Length cannot overlap the Destination range.

Callers of NdisMoveMemory can run at any IRQL if the given Source and Destination are resident. Otherwise, callers must be running at IRQL < DISPATCH_LEVEL, as, for example if either address is on the stack.

Requirements

Requirement Value
Minimum supported client Supported for existing drivers in NDIS 6.0 and later, but new drivers should use RtlCopyMemory (not RtlMoveMemory) instead.
Target Platform Desktop
Header ndis.h (include Ndis.h)
IRQL See Remarks section

See also

NdisAllocateMemoryWithTagPriority

NdisMMapIoSpace