- Question about system page table entries
- Posted by Stephan Perschke on April 29th, 2004
Hi
reading about terminal server sizing I recognized the term "system page table entries" quite often. Unfortunaltey
I understand the 4 GB virtual memory is devided into 2 GB users space (a private space for each process) and a 2 GB system space. Page table entries are used to map virtual memory addresses to physical ones.
From my understanding, system page table entries are used to map the complete 2 GB system space to physical memory and normal PTEs describe the users space. I heard SPTEs are a limited resource and the OS is not able to use the complete 2 GB space due to this limitation
If I'm wrong and SPTEs describe only portions of the system space, which portions are described? Why isn't it possible to use just PTEs
I appreciate your help
Stephan
- Posted by Maxim S. Shatskih on April 29th, 2004
SPTEs are ones that describe around 128M (or such) at 0xe0000000 or such.
MmMapIoSpace uses it, MmGetSystemAddressForMdlSafe also uses it.
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com
- Posted by Stephan Perschke on April 30th, 2004
Thank you for your reply. Now it's getting clearer
- Stephan
- Posted by Maxim S. Shatskih on April 30th, 2004
NOTE:
- MmAllocateMappingAddress is a low-level primitive which just allocates
SPTEs.
- MmMapLockedPagesWithReservedMapping then updates these PTEs to point to
the necessary physical pages.
- MmGetSystemAddressForMdlSafe is a combination of them both.
--
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
maxim@storagecraft.com
http://www.storagecraft.com
"Stephan Perschke" <anonymous@discussions.microsoft.com> wrote in message
news:0DA98248-8F9B-4C4B-826F-8BBAC9D1D83D@microsoft.com...