Writing a Packet-Based Slave DMA Driver

In packet-based slave DMA, the device transfers data to or from the locked down pages of the caller's buffer using a shared DMA controller on the mainboard. The system is also responsible for providing scatter/gather support.

How Packet-Based Slave DMA Works

Although the specifics depend on the nature of the device, most packet-based slave DMA drivers conform to a very similar pattern. The following subsections describe the routines of these drivers.

IRP_MN_START_DEVICE Handler

Along with its usual duties, this PnP handler performs the following DMA preparation tasks:

  1. Locates the DMA channel used by the device. The DMA resources would normally be sent with the requesting IRP in the stack's Parameters.StartDevice.AllocatedResourcesTranslated ...

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.