include v86mmgr.inc
mov esi, LinAddr
mov ecx, NumBytes
VxDcall V86MMGR_Map_Pages
jc error_handler
mov [MapHandle], esi
mov [MapBuffer], edi
Maps the specified buffer into every virtual machine at the same address using page mapping. If the contents of memory are changed in one virtual machine, that change will be reflected in the original buffer as well in all other virtual machines. Uses EDI, ESI, Flags.
If the carry flag is clear, the memory is mapped. The ESI register contains the map handle (used to free the map region), and the EDI register contains the linear address of map buffer (always less than 1 megabyte).
If the address specified in ESI is zero, no memory is mapped, but a global linear address range is allocated. It is then up to the caller to map appropriate pages into virtual machines. Use the linear address returned in EDI for the base page to map memory into.