阅读:1254回复:6
再问nt下的内存映射问题
我的板卡的PCI桥的内存映射需要10M内存,在2K下可以获的,可在NT下老出现MmMapMmMapIoSpace(
TranslatedAddress, Length, FALSE )错误,返回0,映射不了,该怎么办,请各位大侠指点!? |
|
|
沙发#
发布于:2002-08-13 21:03
设备的配置空间大小与具体的机器有关,可能你的主板不支持。你试试分配16M或更大的看看。
|
|
|
板凳#
发布于:2002-08-14 09:19
具体情况是这样的:分配几个这样的内存没问题,可我要支持好几块卡,头几块卡都能分配,再后来就不行了,在不同的机器配置上好像还不一样,有些机器能多分配几块,有的少,不知是什么原因?
楼上的提到:“设备的配置空间大小与具体的机器有关,可能你的主板不支持”,想请教,具体在什么地方啊,该怎么解决呢? |
|
|
地板#
发布于:2002-08-14 18:00
兄弟你有多少物理内存呀?
10M,还要好几块,那不是几十兆了,如果你分配的是物理内存,系统是否有这么多给你,你将物理内存加大些看看,还有你不一定都要分配非页内存,使用分页的行吗?(当然性能可能没有那么好了),但总比不能使用好,还有你有必要分配那么大吗,采集卡也不用分配那么多呀?10M,是很大一块了,能小点吗?如果能尽量小点 |
|
|
地下室#
发布于:2002-08-15 08:47
我表达的可能不很清楚,其实不应该叫“分配“,而是一种映射,所以地址空间够就行了,并不一定要有物理内存支持的,当然物理内存大好!
|
|
|
5楼#
发布于:2002-08-17 23:27
我表达的可能不很清楚,其实不应该叫“分配“,而是一种映射,所以地址空间够就行了,并不一定要有物理内存支持的,当然物理内存大好! 你都怎么处理的,调用Mm开头的函数,具体是怎么处理的,如果你觉得有必要可将这部分Code帖上来,如果没有必要就算咯 |
|
|
6楼#
发布于:2002-08-20 00:55
There is one possiblity that you are right up near the limits of what NT will allow you to map.There is a hard limit of 192MB allowable to be mapped by all drivers on an NT system, because of the way PTE\'s are distributed. Thus, depending on what other drivers are installed on your system, you may or may not be able to map enough memory. One thing to try would be to set
HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Memory Management\\SystemPages = 0x7000 (more or less) Please refer to: http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q189327& for a dicussion about system PTEs. |
|
|