În data de 5 mai 2009, 18:42, Mircea Bardac <span dir="ltr">&lt;<a href="mailto:cs@mircea.bardac.net">cs@mircea.bardac.net</a>&gt;</span> a scris:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">Irina Stanescu wrote:<br>
&gt; Nu cred ca facem noi nimic gresit.<br>
&gt; Pur si simplu MapViewOfFileEx poate sa mapeze doar la adrese multiplu de<br>
&gt; dimensiunea reala a paginilor din windows, deci nu e ceea ce ne trebuie.<br>
<br>
</div>Hmm.. si... de ce mapati la adrese *diferite* de multiplu de dimensiunea<br>
paginilor din Windows?<br>
<br>
Anyway, in textul temei, la sectiunea &quot;Precizari Windows&quot;, exista<br>
urmatorul text:<br>
&quot;&quot;&quot;<br>
Pentru ca pe Windows, nu se pot crea (usor) pagini virtuale multiple de<br>
pagini ale sistemului (ci multiplu de 64 K) s-a definit variabila<br>
<br>
       static DWORD pageSize = 0x10000;<br>
<br>
care va fi folosita pentru a specifica dimensiunea unei pagini.<br>
&quot;&quot;&quot;<br>
<br>
Folositi variabila &quot;pageSize&quot; pe Windows pentru a calcula multipli etc.<br>
<div class="im"><br>
--<br>
Mircea<br>
<a href="http://mircea.bardac.net" target="_blank">http://mircea.bardac.net</a></div></blockquote><div><br><br>Dupa multe incercari de folosire a functiei MapViewOfFileEx, am gasit pe net urmatoarea:<br><br><p>

Typically, the suggested address is used to specify that a file should be

mapped at the same address in multiple processes. This requires the region of

address space to be available in all involved processes. No other memory

allocation, including use of the <b><a href="http://www.piclist.com/techref/os/win/api/win32/func/src/f90_8.htm">VirtualAlloc</a></b>

function to reserve memory, can take place in the region used for mapping</p><p>suggested address = adresa data functiei MapViewOfFileEx. Textul e luat de <a href="http://www.piclist.com/techref/os/win/api/win32/func/src/f56_18.htm">aici</a>.<br>
</p><p>Nu merge nici daca folosesti VirtualFree.<br></p><p>In cazul asta singura solutie este sa mapam tot fisierul ram in memorie si sa facem sincronizarea intre memoria virtuala si fisierul ram &quot;manual&quot;.</p><p>
Corectati-ma daca gresesc.<br></p></div></div><br>-- <br>Vali.<br>