A virtual device can provide service functions for use by the VMM and other virtual devices. The services give other virtual devices direct access to the features of the virtual device, allowing the operation and capabilities of the virtual device to be examined and modified.
Virtual devices do not export functions as Windows DLLs do. Instead, the VMM provides dynamic linking to virtual device services through Interrupt 20h. The interrupt handler uses a service number to determine which virtual device supports the service. The interrupt handler also uses the service number to look up the address of the service in the service table of the virtual device.
The following sections describe how to define services for a virtual device, declare the virtual device's service table, and import services from one virtual device into another.