阅读:1152回复:0
PCI DMA映射寄存器的数量为什么不能超过8?
自己做的DM642 PCI板卡。驱动按照Walter oney中所写。
DMA初始化的时候为什么返回映射寄存器的数量不超过8? DEVICE_DESCRIPTION dd; RtlZeroMemory(&dd, sizeof(dd)); dd.Version = DEVICE_DESCRIPTION_VERSION; dd.Master = TRUE; dd.Dma32BitAddresses = TRUE; dd.InterfaceType = PCIBus; dd.MaximumLength = 0xF000; pdx->AdapterObject = IoGetDmaAdapter(pdx->Pdo, &dd, &pdx->nMapRegisters); nMapRegisters应该等于 (缓冲区字节长度/4096 + 1) 吧? 可是无论dd.MaximumLength修改为多大,返回的pdx->nMapRegisters最大始终等于8,换了好几台机器都是这样。 需要哪里做什么设置吗? |
|