Kernel-Mode Heaps (System Memory Pools)
At system initialization, the memory manager creates two types of dynamically sized memory pools that the kernel-mode components use to allocate system memory:
Nonpaged pool Consists of ranges of system virtual addresses that are guaranteed to reside in physical memory at all times and thus can be accessed at any time (from any IRQL level and from any process context) without incurring a page fault. One of the reasons nonpaged pool is required is because of the rule described in Chapter 2: page faults can’t be satisfied at DPC/dispatch level or above.
Paged pool A region of virtual memory in system space that can be paged into and out of the system. Device drivers that don’t need to access the memory from ...