Close, but not
quite correct.
GPF is a general protection fault, the most common problem is
a bad or uninitialized pointer.
What makes a DLL get loaded, or paged in, is a page fault.
Its the same mechanism that causes a swapped out page to be swapped back
in on a 4K boundary.
What I'm saying is that the way is *should* work is:
pointer fault on attempt to execute faulted pointer to DLL routine
segment fault on attempt to execute code in unmapped DLL routine's
segment
page fault on attempt to execute code in unmapped DLL routine's page
And in a really proper OS you'd also get a page fault if the page map
containing the PageMapTableEntries weren't currently mapped in (and
yes you can page out page maps).
And before you point out that segments went away from Win32 let
me say that too is another fatal flaw with the Windows family of
OS's.
-dq
Is it just me -- or does this sound like Multics segments?
Bill
--
bpechter(a)monmouth.com | Microsoft: Where do you want to go today?
| Linux: Where do you want to go tomorrow?
| BSD: Are you guys coming, or what?