mzfmzf
驱动牛犊
驱动牛犊
  • 注册日期2002-12-05
  • 最后登录2009-01-15
  • 粉丝0
  • 关注0
  • 积分40分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
阅读:914回复:0

为何得不到 DMA 设备 ????

楼主#
更多 发布于:2003-04-22 07:05
俺在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 );
                                   
游客

返回顶部