Ring 0 Exceptions

All VDM linear addresses below 1MB + 64KB can be accessed by Ring 0 code (such as 8086 Emulation or DOS Emulation), without any exceptions being visible to the V86 mode application. This meant that there was no need to recover from faults at ring 0 when VDM applications ran only in V86 mode.

DPMI protected mode applications, however, do have addresses in their address space that can cause visible exceptions at ring 0. Most virtual device drivers are not affected because they never execute while the client is in protected mode. VDDs are affected only if both of the following conditions are true:

  • The VDD runs while the client is in protected mode.

  • The VDD accesses the client address space above 1MB + 64KB or using client selectors while the client is in protected mode. This can happen indirectly if a VDH service is called which manipulates the client's protected mode stack.

    In such cases, the virtual device driver must include handlers for the exceptions.


    [Back: Kernel Support]
    [Next: DPMI API Layer Communication with the Kernel]