edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
阅读:1944回复:4

关于在WDM驱动程序编写对于PCI板卡MEMORY的访问:

楼主#
更多 发布于:2004-06-10 23:22
在响应IRP_MN_START_DEVICE的功能代码时调用PnpStartDeviceHandler(IN PDEVICE_OBJECT fdo, IN PIRP Irp);
其中有两行代码:
1---->ListResources(IrpStack->Parameters.StartDevice.AllocatedResources);
2---->status = StartDevice( dx, IrpStack->Parameters.StartDevice.AllocatedResourcesTranslated);

中间涉及到AllocatedResources和AllocatedResourcesTranslated两个数据,可否这样理解:
 段一:
 PCM_PARTIAL_RESOURCE_LIST list = &AllocatedResources->List[0].PartialResourceList;

PCM_PARTIAL_RESOURCE_DESCRIPTOR resource = list->PartialDescriptors;
  .....
  case CmResourceTypeMemory:
 {
    PHYSICAL_ADDRESS MemBase = resource->u.Memory.Start;
    ULONG PortLength = resource->u.Memory.Length;
    break;
  }
  该段中的MemBase是BIOS和PNP管理器为PCI板卡上MEMORY分配的原始地址;(所谓原始地址是不是总线地址?)

  
 段二:
   PCM_PARTIAL_RESOURCE_LIST list = &AllocatedResourcesTranslated->List[0].PartialResourceList;

PCM_PARTIAL_RESOURCE_DESCRIPTOR resource = list->PartialDescriptors;
  .....
  case CmResourceTypeMemory:
 {
    PHYSICAL_ADDRESS MemBase = resource->u.Memory.Start;
    ULONG PortLength = resource->u.Memory.Length;
    break;
  }
  该段中的MemBase是不是BIOS和PNP管理器为PCI板卡上MEMORY分配的原始地址转换后得到的物理地址?
  如果此时的MemBase = 0xffffff00,用READ_REGISTER_ULONG()时,能否直接使用MemBase?是否需要MmMapIoSpace()?

  //-----------------------------------
  另外,当将PCI板卡的驱动装上后查看资源:我的电脑->属性->硬件->设备管理器:看到系统为板卡分配的内存资源为:0xffefffc0
 --0xffefffff;那么这个地址是属于什么地址?总线地址,物理地址还是虚拟地址?
  
hhm
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-11 22:12
没有人回答,是不是我的问题没表述清楚?
请高人出手啊。
hhm
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-12 12:47
真的如此狼狈吗?
hhm
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-17 14:36
有人能够给一点点提示吗?
hhm
edbert
驱动牛犊
驱动牛犊
  • 注册日期2003-04-26
  • 最后登录2012-08-11
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望26点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-17 17:56
建议删掉此帖。
hhm
游客

返回顶部