NdisMoveMemory

VOID
NdisMoveMemory(

OUT PVOID Destination,
IN PVOID Source,
IN ULONG Length
);

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

Parameters

Destination

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

Source

Points 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.

Length

Specifies the number of bytes to copy.

Comments

Both Source and Destination are virtual addresses.

If either address falls within a range of device memory that was mapped with NdisMMapIoSpace, a NIC 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.

See Also

NdisAllocateMemory, NdisMMapIoSpace, NdisMoveFromMappedMemory, NdisMoveMappedMemory, NdisMoveToMappedMemory