<br><br><div class="gmail_quote">În data de 6 mai 2009, 12:13, Mircea Bardac <span dir="ltr"><<a href="mailto:cs@mircea.bardac.net">cs@mircea.bardac.net</a>></span> a scris:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Salut,<br><br>Nu gresesti. Nu se poate mapa folosind MapViewOfFileEx *peste* o mapare<br>
facuta cu VirtualAlloc (dupa cum ati descoperit si voi) dar, dupa cum am<br>
spus si in mail-urile anterioare, se poate mapa *in locul* maparii<br>
facute cu VirtualAlloc [ *in locul* presupune ca apelati VirtualFree pe<br>
pagina respectiva inainte sa faceti MapViewOfFileEx la aceeasi adresa ].</blockquote><div><br> </div></div>Am vazut mail-urile in care ai explicat ca poti apela VirtualFree, si am incercat dar nu merge nici asa.<br><br>VirtualFree primeste ca paremetru MEM_DECOMMIT si MEM_RELEASE.<br>
MEM_DECOMMIT elibereaza memoria fizica dar pastreaza rezervate paginile virtuale din cadrul procesului si nu merge sa faci MapViewOfFileEx.<br>MEM_RELEASE nu mai pastreaza paginile rezervate.<br>Daca folosesti MEM_RELEASE trebuie sa ii dai ca parametru exact adresa returnata de VirtualAlloc. (asta spune pe msdna).<br>
Inteleg ca trebuie sa fie chiar adresa primei pagini.<br>Daca dau adresa altei pagini primesc "Invalid parameter".<br><br>Eu am folosit doar VirtualAlloc si in SynchronizeRam am copiat continutul care trebuie din memoria virtuala in fisierul RAM folosind WriteFile.<br>
<br>-- <br>Vali.<br>