![]() |
The VMM allows applications to address more memory space than your RAM actually has, and it uses paging to accomplish this. For example: if you have 32 Mb of RAM, the VMM can make your applications believe that there is 80 Mb of memory, or even more, depending on what is necessary. It creates a swapfile on your hard disk (Win386.swp, in the Windows folder and variable in size) in which it stores pieces of memory that would normally reside in the RAM. Those pieces, 4 Kb each, are called pages.
Code and date are loaded in the virtual memory, i.e. RAM and swapfile. If a page that is on disk is needed by a process, the processor generates a page fault and the page will be paged into physical memory (RAM). When an application causes an invalid page fault in a module, it means that it tried to load a page into an address space that was occupied by the module, which should run in a protected memory space anyway. If the module belongs to the Windows Kernel, it is likely that not just the application, but the operating system will crash. The real question is: How and why does the application cause the invalid page fault? It could be a bug, or just a badly written application, or even a corrupted Vmm32.vxd. Anyhow it should be clear that is it probably not the module itself.
|