Virtual Devices (3.1) (vdag31qh.hlp) (Table of Contents; Topic list)
GetSetDetailedVMError
                                                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
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  ; points to reference data if ecx 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
 
The GetSetDetailedVMError service sets detailed error code for a virtual
machine crash or start-up error.
 
This service is only available for Windows 3.1 or later.
 
Parameter  Description
────────────────────────────────────────────────────────────────────────────
 
VM         Specifies a handle identifying the virtual machine. If this
           parameter is zero, the service gets or sets error information for
           the Create_VM message.
 
GetSet     Specifies which action tot take. If zero, the service retrieves
           error information. If nonzero, the service sets error
           information.
 
Error      Specifies the error code to set. This parameter is used only if
           GetSet is nonzero. There are the following error code values:
 
           Value               Meaning
           ─────────────────────────────────────────────────────────────────
           GSDVME_CrtNoMsg     Supress standard messages; the SHELL_Message
                               service is used for custom messages.
 
           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    Suppress standard messages; the
                               SHELL_Message service is used for custom
                               messages.
 
           GSDVME_OkNukeMask   Reserved for the exclusive use of the virtual
                               MS-DOS manager.
 
           GSDVME_PrivInst     Attempt to execute a privledged 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.
 
RefData    Points to reference data to set. The reference data is an
           additional doubleword of data associated with an error. This
           parameter is used only if GetSet is nonzero. This parameter is
           zero if there is no associated reference data.
 
Return Value
 
If the zero flag is clear, the EAX register contains the error code and the
EDX register contains the address of the reference data associated with the
error code. The zero flag is set if the service found no detailed error
information.
 
Comments
 
Uses
 
EAX, EDX, Flags
 
                                      ♦