Kortlægning af en del af hukommelseskartet fil i Windows CE

Indlæg af Hanne Mølgaard Plasc

Problem



Hvor bliver adresselokalet blokeret for MMF'en i processen med at oprette og kortlægge MMF'en i Windows CE. Er det under oprettelsen af ​​MMF, eller når visningen bliver kortlagt? Vil oprettelsen kun lykkes, hvis der er et tilstødende rum på x (angivet under oprettelsen) i virtuelt adresserum?


For det andet er det muligt at kortlægge en del af filen i win CE som vi gør i win32. Hvis jeg opretter en MMF med 0x8000 byte og kortlægger en visning af filen, der giver en forskydning på 0x5000 og en størrelse på 0x7000, er kortlægningen fejlet. Det siger INVALID\_PARAMETER. Selvom kortlægningen er tilladt, når summen af ​​forskydning og størrelse af visningen er mindre end 0x8000. Bliver den altid kortlagt fra begyndelsen af ​​filen?

Bedste reference


I Windows Mobile 6.x (CE 5.0) gemmes hukommelseskortede filer i stort hukommelsesområde over 0x42000000 i det virtuelle adresserum. [2]


Ja, du har brug for sammenhængende plads til at tildele en MMF med succes.


0x5000 + 0x7000=0xC000. Det er større end det tildelte rum på 0x8000 bytes.


-PaulH


Rediger
Udligningen skal også være et multipel af systemets tildelingsgranularitet. Brug GetSystemInfo for at finde den værdi. På en enhed har jeg for eksempel 0xa11 bytes. [3]