Virtual Devices (3.1) (vdag31qh.hlp) (
Table of Contents;
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
_MapPhysToLinear
◄Up► ◄Next► ◄Previous►
────────────────────────────────────────────────────────────────────────────
include vmm.inc
VMMcall _MapPhysToLinear, <PhysAddr, nBytes, flags>
cmp eax, 0FFFFFFFFh ; 0FFFFFFFFh if not addressable
je not_addressable
mov [Address], eax ; address of first byte
The _MapPhysToLinear service returns the linear address of the first byte in
the specified range of physical addresses.
Parameter Description
────────────────────────────────────────────────────────────────────────────
PhysAddr Specifies the 32-bit physical address of the start of the region
to examine. Physical addresses start at 0, thus the address of
physical page 0A0h is 0A0000h.
nBytes Specifies the length in bytes of the physical region. The service
uses this parameter to verify that the entire range is
addressable.
flags Specifies the operation flags. This parameter must be set to 0.
Return Value
The EAX register contains the ring-0 linear address of the first byte of the
physical region if this service is successful. Otherwise, EAX contains
0FFFFFFFFh if the specified range is not addressable.
Comments
This service is intended to be used to examine device-specific physical
memory. Virtual devices must not use this service for any other purpose.
Since physical addresses do not move, the linear address returned by this
service remains valid even after the virtual device returns from the
Device_Init message.
Example
The following example returns a linear address for the physical page A0h:
VMMcall _MapPhysToLinear,<0A0000h,10000h,0>
Since physical memory is mapped contiguously, the linear address for page
0A1h is 4096 bytes beyond the return linear address.
Uses
EAX
♦