[so] tema 3 win - MapViewOfFileEx

andreea sandu sandu_adina2006 at yahoo.com
Tue May 5 16:36:38 EEST 2009


Pentru a respecta cerinta temei "Paginile din acest spațiu nu trebuie sa fie prezente și în memoria RAM după apelul funcției vinit/VirtualInit"[1]  ar trebui sa folosim VirtualAlloc cu parametrul MEM_RESERVE. Din cate observ nu se poate face free pe o pagina alocata cu MEM_RESERVE, ci doar pe tot spatiul incepand de la lpAddress:
MEM_RELEASE 

Releases the specified region of pages. After this operation, the pages are in the free state. 
If you specify this value, dwSize must be 0 (zero), and lpAddress must point to the base address returned by the VirtualAlloc function when the region is reserved. The function fails if either of these conditions is not met.

MapViewOfFileEx nu il putem folosi pe zone din spatiul de adresa deja alocate: 

the function succeeds if the specified memory region is not already in use by the calling process.
Prin urmare nu vad cum am putea sa respectam si cerinta [1] si sa si mapam paginile din memoria virtuala direct peste fisierul care simuleaza ram-ul.


________________________________


Din cate stiu, nu poti utiliza API-ul MapViewOfFile(Ex) cu zone de
memorie alocate cu VirtualAlloc(Ex) si invers.

Poti sa faci rezervarea de memorie virtuala cu VirtualAlloc(Ex) si, la
maparea de pagini din fisierul RAM, sa faci VirtualFree(Ex) pe pagina
dorita si in locul ei remapezi o pagina din RAM cu MapViewOfFileEx.

-- 
Mircea
http://mircea.bardac.net
_______________________________________________
so mailing list
so at cursuri.cs.pub.ro
http://cursuri.cs.pub.ro/cgi-bin/mailman/listinfo/so



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/so/attachments/20090505/f5656555/attachment-0001.htm>


More information about the so mailing list