1.4.4 Address Mappings and MDLs
Returns the corresponding physical address in system memory for a given bus-relative logical address.
Returns the corresponding physical address for a given valid virtual address.
Returns a (possibly invalid) virtual address for a buffer described by a given MDL; the returned address, used as an index to a physical address entry in the MDL, can be input to IoMapTransfer for drivers that use DMA.
Returns a system-space virtual address that maps the physical pages described by a given MDL for drivers whose devices must use PIO.
Fills in the corresponding physical addresses of a given MDL that specifies a range of virtual addresses in nonpaged pool.
Returns the length in bytes of the buffer mapped by a given MDL.
Returns the byte offset within a page of the buffer described by a given MDL.
Maps already locked physical pages, described by a given MDL, to a returned virtual address range.
Releases a mapping set up by MmMapLockedPages.
Returns whether a page fault will occur if a read or write is done at the given virtual address.
Returns the number of bytes required for an MDL describing the buffer specified by the given virtual address and length in bytes.
Allocates and initializes an MDL describing a buffer specified by the given virtual address and length in bytes; returns a pointer to the MDL.
Reinitializes a caller-created MDL for reuse.
Initializes a caller-created MDL to describe a buffer specified by the given virtual address and length in bytes.
Maps a physical address range to a cached or noncached virtual address range in nonpaged system space.
Unmaps a virtual address range from a physical address range.
Probes the pages specified in an MDL for a particular kind of access, makes the pages resident, and locks them in memory; returns the MDL updated with corresponding physical addresses. (Usually, only highest-level drivers call this routine.)
Unlocks the previously probed and locked pages specified in an MDL.
Allocates an MDL large enough to map the starting address and length supplied by the caller; optionally associates the MDL with a given IRP.
Builds an MDL for the specified starting virtual address and length in bytes from a given source MDL. Drivers that split large transfer requests into a number of smaller transfers can call this routine.
Releases a given MDL allocated by the caller.