Microsoft Windows CE 3.0  

DMA for Subordinate DMA Network Adapters

This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.

For subordinate DMA transfers, a Windows NT miniport calls a set of functions that consist of NdisMRegisterDmaChannel, NdisMDeregisterDmaChannel, NdisMSetupDmaTransfer, NdisMCompleteDmaTransfer, and NdisMReadDmaCounter. The Windows CE implementation of NDIS does not support these functions. Instead, the required functionality can be implemented directly in the miniport driver code.

To implement DMA transfers in a miniport, you must reserve a physical memory block from the memory map of a Windows CE-based device. Then, you must map the device's memory block to virtual address pointers by using the VirtualAllocand VirtualCopyfunctions. Mapping the device's memory block to virtual address pointers provides the miniport with a shared memory block to send and receive packet buffers.

To see an example of how to implement DMA operations in a miniport for Windows CE, consult the sample code for the National Semiconductor Fast IR Miniport Driver that is shipped with Windows CE 3.0.

 Last updated on Tuesday, July 13, 2004

© 2004 Microsoft Corporation. All rights reserved.