Basic System Problem Analysis - August 2003
41
Short vs. Long Pointers
Here’s a table of where various addresses would be resolved using short pointer
references:
Address Range Space ID used
-------------------- -------------
00000000 to 3fffffff SR4
40000000 to 7fffffff SR5
80000000 to bfffffff SR6
c0000000 to ffffffff SR7
These address ranges are also called “QUADS” as they represent ¼ of a 4GB space so
each QUAD is 1GB of address space.
The OS uses SR6 and SR7 for resident and non-resident OS structures as well as
NL.PUB.SYS. Whatever is left over can be allocated to files opened as short mapped for
“share” access.
Files opened with exclusive access and short mapped will use SR5. Files opened this way
will also NOT have their GUFD’s put on the storage management LRU list. The reason
for this is simple; the GUFD contains the file’s virtual address. The file is mapped into a
process SR5 space. If the file is closed and the GUFD saved that process might terminate
invalidating the SR5. So we cannot retain the GUFD for a file opened with short mapped,
exclusive access.