Czytałem, że 32-bitowe aplikacje systemu Windows są ograniczone do 2 GB pamięci RAM, ponieważ górne 2 GB miejsca adresowania jest zarezerwowane dla systemu operacyjnego Windows (i, iirc, VRAM). Jeśli użyjesz flagi/3GB na 32-bitowym WinXp, możesz otrzymać do 3 GB pamięci RAM do adresowania, ale zazwyczaj musisz poprawić wartości userva. Słyszałem, że w 64-bitowych wersjach systemu Windows, z dużą flagą świadomą adresu w nagłówku PE i ponad 4 GB pamięci RAM, możliwe jest, aby aplikacja wykorzystywała wszystkie 4 GB przestrzeni adresowej do własnego zarządzania pamięcią.Jak działa flaga Large Address Aware dla aplikacji 32-bitowych na komputerach 64-bitowych?
Z drugiej strony, jestem prawie pewien, że po wywołaniu interfejsu API systemu Windows trzeba wywoływać lokalizacje pamięci w 32-bitowej przestrzeni adresowej, która jest dostarczana. A więc, dokładnie ile pamięci RAM może wykorzystać 32-bitowa aplikacja obsługująca wiele adresów w środowisku 64-bitowym? I dlaczego?
Dziękuję.
Zaczekaj chwilę, w takim razie czy można używać AWE na 32-bitowym Windows Xp OS, aby prawidłowo skorzystać z 4 GB pamięci RAM zamiast/3GB głupoty? –
+1 Jeśli planujesz uruchomić pod/LARGEADDRESSAWARE, musisz być ostrzeżony, że różne oprogramowanie zawiera błędy w przypadku 32-bitowych wskaźników> 2 GB. Nawet niektóre funkcje MS API (patrzę na ciebie GetCursorPos w systemie Vista!) Sposobem na wypłukanie tych problemów i obejście ich, jeśli musisz użyć [przypisanie pamięci z góry] (http://msdn.microsoft .com/ja-jp/isv/bb190527 (l = en-us)), który jest włączony z ustawieniem rejestru. –
Tak, ale musisz wyraźnie zamapować fizyczne strony pamięci na wirtualną przestrzeń adresową. Jest podobny do zmiany banku VESA w starej, dobrej epoce DOS. – MSN