各位大侠,恭维的话小弟就不多说了,直接上问题。
在做Wince下PCI驱动程序,处理器是X86,系统是wince6.0;
在注册表中获取到PCI板卡的iolength和iobase 以及memlength和membase,
打印输出如下所示:
BAR0 Base= 0x0000D800, Length = 0x00000100
BAR1 Base= 0xF6101000, Length = 0x00000200
接下来利用DDKReg_GetWindowInfo函数获取了其地址,DDKWINDOWINFO wini;
PHYSICAL_ADDRESS PortAddress={wini.ioWindows[0].dwBase,0};
PHYSICAL_ADDRESS PortAddress1={wini.memWindows[0].dwBase,0};
那么接下来该如何使用HalTranslateBusAddress 和MmMapIoSpace来进行处理呢?
得到的两个PHYSICAL_ADDRESS一个是io空间,另外一个是内存空间,接下来该如何
处理才能实现对x86上内存或IO的访问进而实现对设备的访问呢?
还有就是MmMapIoSpace这个函数作用到底是干什么的呢?这个函数名字中有一个IO,
所以我很不明白,它是把地址都映射成为系统的IO空间了???