Writing a Common Buffer Slave DMA Driver

In common buffer slave DMA, the device transfers data to or from a contiguous buffer in nonpaged pool, using a system DMA channel. Although originally intended for devices that use the system DMA controller's autoinitialize mode, common buffers can also improve throughput for some types of ISA-based slave devices.

Allocating a Common Buffer

Memory for a common buffer must be physically contiguous and visible in the DMA logical space of a specific device. To guarantee that both these conditions are met, the function AllocateCommonBuffer, a method of the Adapter object, is used. It is described in Table 12.8.

The CacheEnabled argument for this function is normally set to FALSE. Using noncached memory for ...

Get Windows® 2000 Device Driver Book: A Guide for Programmers, Second Edition, The now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.