DMADMAsigang@mti
xidian
csigang@mti
xidian
cnnDMADMADMADMA即即DirectMemoryaccessDirectMemoryaccess无需计算机的无需计算机的CPUCPU的干预就可以在内存和的干预就可以在内存和外设之间传输数据外设之间传输数据通常都有通常都有DMADMA控制器来进行控制器来进行DMADMA操作操作,,DMADMA控制器可能是主板上的,也有可控制器可能是主板上的,也有可能是外设特有的
能是外设特有的
为什么需要为什么需要DMADMA
传输模型传输模型WindoWindowsws中的中的DMADMA传传输基于这输基于这个模型个模型适配器对象(适配器对象(adapteradapter))Windows2000Windows2000内核使用一个称为适配器对象内核使用一个称为适配器对象的数据结构来描述设备上的的数据结构来描述设备上的DMADMA特征,并用它特征,并用它来控制访问潜在的共享资源,如系统来控制访问潜在的共享资源,如系统DMADMA通道通道和映射寄存器和映射寄存器通常在通常在StartDeviceStartDevice函数中调用函数中调用IoGetDmaAdapterIoGetDmaAdapter获得适配器对象获得适配器对象适配器对象中有一个指针,指向一个适配器对象中有一个指针,指向一个DmaOperationsDmaOperations的结构,该结构包含了所有的结构,该结构包含了所有需要的需要的DMADMA相关的其它函数,这些函数如下表相关的其它函数,这些函数如下表DmaOperationsFunctionPointerDescriptionPutDmaAdapterDestroysadapterobjectAllocateCommonBufferAllocates