NDIS DMA Support Implementation (Windows Embedded CE 6.0)

1/6/2010

The Windows Embedded CE implementation of NDIS does not support direct memory access (DMA) operations inherently. In Windows Embedded CE, however, you can extend the driver functionality by creating the functionality within a miniport if needed. The required functionality can be implemented directly in the miniport driver code. DMA libraries may be provided for use by driver developers or the miniport driver might need to implement DMA entirely on its own.

To implement DMA transfers, miniport drivers must allocate and manage virtual memory buffers. To implement DMA transfers in a miniport, you must reserve a physical memory block from the memory map of a Windows Embedded CEā€“based device. Then, you must map the device's memory block to virtual address pointers by using the VirtualAlloc and VirtualCopy functions. Mapping the device's memory block to virtual address pointers provides the miniport with a shared memory block to send and receive packet buffers.

See Also

Concepts

Network Driver Programming Considerations
Direct Memory Access

Other Resources

VirtualAlloc
VirtualCopy