请问各位大侠,在wince 的驱动里如何将虚拟地址装换成物理地址,如win2k或winxp下的MmGetPhysicalAddrss()。谢谢。
回复(19) 2005-01-19 19:09 来自版块 - Wince 程序开发
表情
wxl_50685330pc的显存物理地址是固定的,0xa0000开始,中间分成了几个部分,字符模式一段,图像模式一段(好像0xa0000-0xaffff是字符模式,0xb0000到0xbffff是图形模式)单色模式一段,彩色模式一段,具体记不太清了,你可以找x86的汇编的书查,基本都有的(2005-01-31 14:30)
your_ying我想知道显卡的显存基地址,不知如何得到??? 要显存的物理地址!!!!(2005-01-29 10:29)
joyflyAllocPhysMem()可以得到一段内存的物理地址和进程内的虚拟地址 如果需要对这个虚拟地址进行处理,以便在应用程序或驱动里访问,可以用VirtualAlloc/Copy()和MapPtrToProcess()这些函数去进行处理. (2005-01-26 13:11)
wwei_wang那效率很低啊! 你做dma传输平均每秒钟的吞吐量是多少?每次传输的吞吐量又是多少?(2005-01-26 12:12)
wwei_wang效率不低啊,应该能满足要求的! (2005-01-25 19:20)
your_ying那效率很低啊!(2005-01-25 17:06)
wwei_wang谢谢,我的用法不是这样的,我的虚拟地址只能在用户层得到,不是在下面分配的. 奇怪为什么ce下没有类似的函数 :( 我也没找到你说的那个函数。但是用在下驱动里面分配共享缓冲区的方法其实也是一样的,你只要实现用户缓冲区和共享缓冲区之间的拷入拷出就行了。(2005-01-24 08:34)
your_ying谢谢,我的用法不是这样的,我的虚拟地址只能在用户层得到,不是在下面分配的. 奇怪为什么ce下没有类似的函数 :((2005-01-22 11:53)
wxl_50685330AllocPhysMem()(2005-01-21 15:04)
wwei_wang其实你也可以分配一个commonbuffer来进行dma传输。(2005-01-21 09:04)

返回顶部