阅读:914回复:0
为何得不到 DMA 设备 ????
俺在WDM 驱动 IRP_MN_START_DEVICE 中调用 IoGetDmaAdapter
为何返回的 pDmaAdapter 总为 null ????? 救俺!!! DMA设备为PCI 总线主控设备 那位高手请指教!!!!! const ULONG MAX_DMA_LENGTH = (384*288*2); DEVICE_DESCRIPTION dd; RtlZeroMemory( &dd, sizeof(dd) ); /*IoGetDeviceProperty( DeviceObject, DeviceProperty, BufferLength, PropertyBuffer, ResultLength );*/ dd.Version = DEVICE_DESCRIPTION_VERSION; dd.Master = true; dd.ScatterGather = true;; dd.DemandMode = false; dd.AutoInitialize = false; dd.Dma32BitAddresses = true; dd.IgnoreCount = false; dd.Reserved1 = 0; dd.Dma64BitAddresses = false; dd.BusNumber = 0; dd.DmaChannel = 0; dd.InterfaceType = PCIBus; dd.DmaWidth = (DMA_WIDTH)0; dd.DmaSpeed = (DMA_SPEED)0; dd.DmaPort = 0; dd.MaximumLength = MAX_DMA_LENGTH; . pDevExt->mapRegisterCount = (MAX_DMA_LENGTH / PAGE_SIZE) + 1; //ASSERT(pDevExt->pBusDev); pDevExt->pDmaAdapter = IoGetDmaAdapter( pDevExt->pPDO, &dd, &pDevExt->mapRegisterCount ); |
|