include vmm.inc
mov ebx, VM ; VM handle or 0 if Create_VM error
mov ecx, GetSet ; zero if get, nonzero zero if set
mov eax, Error ; error code if ecx nonzero
mov edx, RefData ; reference data if ecx is nonzero
VMMCall GetSetDetailedVMError
jz no_error_info ; zero set if no error information
mov [Error], eax ; error code
mov [RefData], edx ; reference data for the error code
Sets detailed error code for a virtual machine crash or start-up error. This service is only available for Windows version 3.1 or later. Uses EAX, EDX, Flags.
| Value | Meaning |
|---|---|
| GSDVME_CrtNoMsg | Problem creating the VM. The system will not display any error message; it is the responsibility of the virtual device to use the SHELL_Message service to display a custom error message. |
| GSDVME_DevNuke | Device-specific problem. |
| GSDVME_DevNukeHdwr | Device-specific problem caused by software running in the virtual machine. |
| GSDVME_InsMemEMS | Available EMS memory is less than requested; set by the virtual V86 mode memory manager. |
| GSDVME_InsMemV86 | Insufficient V86 memory; set by the virtual V86 mode memory manager. |
| GSDVME_InsMemV86Hi | Insufficient high MS-DOS memory; set by the virtual MS-DOS manager. |
| GSDVME_InsMemVid | Insufficient base video memory; set by the virtual display device. |
| GSDVME_InsMemVM | Insufficient base virtual machine memory for control block or instance buffer. |
| GSDVME_InsMemXMS | Available XMS memory is less than requested; set by the virtual V86 mode memory manager. |
| GSDVME_InsV86Space | Available V86 address space is less than requested; set by the virtual V86 mode memory manager. |
| GSDVME_InvalFlt | Invalid fault. |
| GSDVME_InvalGpFlt | Invalid GP fault. |
| GSDVME_InvalInst | Attempt to execute an invalid instruction. |
| GSDVME_InvalPgFlt | Invalid page fault. |
| GSDVME_InsMemDev | Could not allocate base virtual machine memory for device. |
| GSDVME_NukeNoMsg | Fatal problem forcing the VM to be destroyed. The system will not display any error message; it is the responsibility of the virtual device to use the SHELL_Message service to display a custom error message. |
| GSDVME_OkNukeMask | Reserved for the exclusive use of the virtual MS-DOS manager. |
| GSDVME_PrivInst | Attempt to execute a privileged instruction. |
| GSDVME_UserNuke | User requested running virtual machine be terminated. |
Error values that have the high word set to 2 are intended to be used when a virtual machine fails on start up.
This parameter is ignored if the GetSet parameter is zero. This parameter is zero if there is no associated reference data.