Map Registers: translate address
Drivers that perform DMA use three different address spaces.
Map Registers (for HAL respect): a logical or device address to a physical address (a location in physical RAM)
Page TAble Entry (for CPU respect): a virtual address to physical address.
An memory descriptor list(MDL) provides a similar mapping for a buffer associated with driver DMA operations.
Correspondence between a Map Register and a virtual-to-physical entry in MDL:
1. maps at most a full physical page of data for a DMA transfer operation
2. might map less than a full physical page of data
3. at a minimum, maps one byte
The map register base is a handle for a set of map registers that could be hardware registers in a chip, in a system DMA controller, or in a bus-master adapter, or could even be HAL-created virtual registers in system memory.
The size of the kernel-mode stack is limited to approximately three pages.
Section Objects and Views:
A section object represents a section of memory that can be shared.
Each memory section has one or more corresponding views. A view of a section is a portion of the section that is actually visible to a process.
The act of creating a view for a section is known as mapping a view of the section.
File-backed and Page-file-backed Sections:
1. A file-backed section reflects the contents of an actual file on disk; in other words, it is memory-mapped file. It can be mapped as Read-Only, Read-Write and Copy-On-Write
Copy-On-Write: The fundamental idea is that if multiple callers ask for resources which are initially indistinguishable, you can give them pointers to the same resource. This function can be maintained until a caller tries to modify its "copy" of the resource, at which point a true private copy is created to prevent the changes becoming visible to everyone else. All of this happens transparently to the callers. The primary advantage is that if a caller never makes any modifications, no private copy need ever be created.
2. A page-file-backed section is backed by the page files rather than by any explicit file on the disk.