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 the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.