NdisMoveFromMappedMemory

VOID
    NdisMoveFromMappedMemory(

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

NdisMoveFromMappedMemory copies data from device memory that was mapped during initialization with NdisMMapIoSpace to a system-space buffer.

Parameters

Destination
Points to a system-space buffer into which this function copies data from mapped device memory. This buffer must be at least Length bytes in size.
Source
Specifies the base virtual address within mapped device memory from which to copy the data. This address must fall at least Length bytes from the end of the mapped range.
Length
Specifies the number of bytes to copy.

Comments

A NIC driver calls NdisMoveFromMappedMemory to copy data from NIC memory into a buffer in the host, as, for example, when transferring received data into a protocol-supplied buffer or miniport-allocated staging buffer.

Both the Source and Destination pointers are virtual addresses. The virtual range specified by Source and Length must fall within a range of device memory that was mapped during initialization with NdisMMapIoSpace.

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

See Also

MiniportInitialize, NdisAllocateMemory, NdisMMapIoSpace, NdisMoveMappedMemory, NdisMoveToMappedMemory, NdisReadRegisterUchar, NdisReadRegisterUlong, NdisReadRegisterUshort, NdisWriteRegisterUchar, NdisWriteRegisterUlong, NdisWriteRegisterUshort