Tech Support > Microsoft Windows > Drivers > Question about system page table entries
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...



Similar Posts