最近做了一款pci的视频采集卡(H264压缩),由于数据传输量比较大,所有想采用dma来传输数据,刚开始感觉很简单,后来感觉还是困难重重。
DMA 验证监控直接内存访问 (DMA) 的使用。随着 Windows 的开发,DMA 例程已经发生改变,因此许多驱动程序错误地使用了 DMA 调用。而且,一些驱动程序作者尝试完全绕过 HAL DMA 子系统。这种做法可能将隐含的错误引入驱动程序。
驱动程序验证程序的 DMA 验证选项尝试捕获常见的 DMA 错误。与 !dma 内核调试程序扩展一起使用时,可以验证驱动程序是否在以适当的方式使用 DMA。
此驱动程序验证程序选项也称为“HAL 验证”。驱动程序验证程序生成的一些错误消息可能使用此术语。
此驱动程序验证程序选项仅在 Windows XP 及更高版本中提供。
不同类型的 DMA
DMA 是一种机制,硬件设备通过该机制可以与内存互传数据,而无需使用处理器。设置传输需要使用处理器,并且在设备完成传输时会向处理器发送信号。此系统的优势在于,在执行 DMA 传输时处理器可以执行其他任务。
Windows 2000 及更高版本中使用了若干类型的 DMA。