include vmm.inc mov eax, LineAddr ; linear address to convert mov ecx, Limit ; segment limit in bytes VMMcall Map_Lin_To_VM_Addr jc error ; carry flag set if error mov [SegSel], cx ; segment or selector mov [Offset], edx ; address offset
Converts a 32-bit ring-0 linear address into an V86 or protected-mode address. This service converts the address for use with the current execution mode of the current virtual machine. Uses ECX, EDX, Flags.
LinAddr
Linear address to convert.
Limit
Zero-based segment limit (0 specifies a one-byte segment, 1 is a two-byte segment, and so on). This parameter is used only if the service creates an LDT selector.
If the virtual machine is running in V86 mode, the LineAddr parameter must specify a linear address that is within the 1 megabyte V86 address space of the current virtual machine. The service returns a segment:offset pair.
If the virtual machine is running a protected-mode application, the service returns a selector:offset pair. This service creates a new selector in the current virtual machine's LDT if the specified base and limit values do not match a selector the service previously allocated. The service returns an error if no LDT is available.
A virtual device must never free a selector that is returned by this service. For this reason, this service should be used sparingly.
See also Map_Flat