V86MMGR_Get_EMS_XMS_Avail

Do not use this service. Attempting to do so may result in unexpected behavior.


<!--include v86mmgr.inc

mov     ebx, VMHandle
VxDcall V86MMGR_Get_EMS_XMS_Avail
mov     [LargestFreeBlockXMS], eax
mov     [AvailableEMS], ecx
mov     [TotalEMS], edx
mov     [TotalXMS], edi

Gets the current EMS and XMS usage information for a VM. Uses all registers except EBX, EBP, and the segment registers.

EAX

Largest free XMS memory block, in kilobytes.

ECX

Amount of available EMS memory, in units of 16 K.

EDX

Total EMS memory size for the VM, in units of 16 K. This value does not take into account the minimum EMS limit for the VM.

EDI

Total XMS memory size for the VM, in kilobytes. This value does not take into account the minimum XMS limit for the VM.


To determine the minimum EMS and XMS limits, use the V86MMGR_Get_EMS_XMS_Limits service.

VMHandle

Handle of the VM to get the information for.

This service is always available for versions of V86MMGR greater than 3.1. For version 3.1, the service may or may not be available. To find out, you can attempt to hook the service using the Hook_Device_Service service. If the hook fails, the service is not available. Otherwise, the service is available, and you should unhook it by calling Hook_Device_Service again. The service is not available for versions prior to 3.1.-->