DOS system services provided within VDMs are generally compatible with their implementation under DOS 5.0. Some differences do exist, however, and are described below.
INT 20h
If the CS register does not reference the current PDB, the VDM is terminated. In certain previous DOS versions, the effect of such a call was undefined.
Although OS/2 only provides file I/O access externally through file handles, it supports these handles internally through the System File Table (SFT). MVDM allows file handles to be bypassed and SFT entries to be manipulated directly using a special set of reserved SFT entries, in a manner similar to previous versions of OS/2. However, since multiple VDMs are supported, these SFT entries are allocated dynamically upon creation of a VDM
FCB functions may now be called from device drivers during initialization; this functionality was not available in previous versions of OS/2.
IOCTL requests which are destined for device drivers within the VDM are processed internally. IOCTL requests which are destined for OS/2 device drivers, however, are treated specially by their respective device drivers. Such requests may contain pointers to data within the VDM. In these cases, it is the responsibility of the OS/2 device driver to perform the necessary translation from V86 virtual addresses into addresses that are meaningful to the device driver.
This subfunction allows the calling program to set the register values that are returned from a call to function 59h. This provides functionality that was not present in previous versions of OS/2.
This subfunction allows terminate and stay resident programs (TSRs) to save and restore extended error information when they are invoked.
This function restricts the maximum number of open device handles to 254, including the four standard devices.
The read function operates in the same way as in a DOS 5.0 system. The write function however, is restricted to removable media only, and reports a hard error on non-removable media.