Overview of the Windows 95 VDD

The Main VDD serves as the control point where all calls into the Virtual Display subsystem go. A Ring 3 display driver or a Ring 0 VxD (such as SHELL.VXD) would always call the Main VDD in order to accomplish a task; they never call a mini-VDD directly. If necessary, the Main VDD calls the device-dependent mini-VDD. The mini-VDD contains all of the functionality needed to virtualize high resolution Super VGA hardware such as those made by S3, ATI, Western Digital, or Cirrus. The device driver kit contains many sample mini-VDD sources that you can use as examples when writing your own mini-VDD.

You should utilize the new VDD interface for Windows 95 rather than using an old Windows 3.x VDD. The new VDD interface contains many functions that a Windows 95 compliant mini-VDD can take advantage of. For example:

  1. Automatic MS-DOS session support for Far East double byte character set (DBCS) and Middle Eastern right-to-left languages. The mini-VDD is totally language independent and all DBCS and right-to-left dependencies are implemented in the Main VDD.
  2. High resolution VESA game support. Playing a VESA game in a MS-DOS session would cause a Windows® 3.1 VDD to crash.
  3. Supports VGA 4 plane graphics modes in a window. This support is easy to implement in the mini-VDD. The Main VDD takes care of all of the hard work.
  4. Faster windowed text mode support.
  5. Easier to maintain than a Windows 3.x VDD. A mini-VDD consists of approximately 50 easy to implement functions. The Main VDD takes care of all of the hard work.
  6. The Windows 95 VDD works in concert with the Windows 95 Mini Display Driver interface to provide a much more reliable full-screen windowed MS- DOS interface.
  7. Plug and Play automatic loading of the display components including your display driver, mini-VDD, and monitor support. Your mini-VDD can automatically set monitor refresh rates using the Plug & Play interfaces.
  8. The Main VDD calls the ROM BIOS on the video card, and provides reliable mode changes between Windows graphics mode and MS-DOS sessions.

Included in the Device Driver Kit (DDK) are a number of mini-VDD samples, and the files VDD.VXD and VDD.SYM that you can use in debugging your mini-VDD. Because the Main VDD is a Windows 95 core component, the source code is not included in the DDK. However, some of the basic concepts are similar to the VDDVGA.386 sources included in the Windows 3.1 DDK. So if you have a Windows 3.1 DDK, you can follow those sources as a rough guide.

The mini-VDD is closely intertwined with the display driver. You should implement a Windows 95 Mini-Display-Driver and mini-VDD together although a Windows 3.1 display driver can also use the Windows 95 VDD interface with just a few modifications to the display driver's Enable code.