Maps a physical memory area, defined by its absolute physical address and contiguous length before any translation imposed by the paging system, into the current process' virtual address space.
PVOID MapRtPhysicalMemoryEx( DWORD dwAbsoluteAddress, // absolute physical address of memory to be mapped DWORD cbSize // size of area to be mapped DWORD dwFlags // properties of the mapped memory );
dwAbsoluteAddress
cbSize
dwFlags
PTE_WRITE_THRU |
Enables write-through caching policy for the mapped memory. |
PTE_CACHE_DISABLE |
Disables caching for the mapped memory. |
PTE_PAT |
Allows setting the PAT bit to index the desired PAT entry to select caching policy for the mapped memory. |
MapRtPhysicalMemoryEx maps physical memory starting at dwAbsoluteAddress
for cbSize
bytes into the virtual address space of the calling thread's process.
If the values of dwAbsoluteAddress
and cbSize
are not 4Kbyte-aligned, then the kernel will make adjustments so that the mapping is aligned. Thus the virtual memory consumed will be more than the value of cbSize.
Use FreeRtMemory to delete the mapping created by this call and to free the virtual memory associated with it.
Note: the cache type values set in dwFlags field do not change the cache type of the physical memory being mapped, but only the cache type of the mapping. If the physical memory is access through a different mapping then different caching policy may be applied.
NULL
E_OK 0x0000
E_MEM 0x0002
E_VMEM 0x00F0
E_PARAM 0x8004
dwFlags
specifies flags other than PTE_WRITE_THRU,
PTE_CACHE_DISABLE and PTE_PAT
; or cbSize
is zero. Versions | Defined in | Include | Link to |
---|---|---|---|
INtime 4.0 | intime/rt/include/rtbase.h | rt.h | rt.lib |