Introduction

The Display Control Interface (DCI) for the Microsoft® Windows™ operating system is a driver-level software interface which provides access to display devices while maintaining compatibility with Windows GDI. It works with the upcoming version of Windows (code-named Chicago) and in Windows 3.1. DCI provides a device-independent way for Windows subsystem software such as 3-D graphics packages, games interface packages, or digital video codecs to access display device-dependent features. In the case of digital video codecs, additional support is provided so that any codec that already supports the ICM_DECOMPRESSEX message as specified by the Video for Windows Installable Codec Interface automatically takes advantage of DCI capabilities, if these capabilities are available.

DCI works with a wide variety of display hardware, ranging from simple SVGAs to advanced hardware implementations containing clipping, stretching, and non-RGB color format support. The interface is designed so that DCI clients can request the capabilities of the underlying hardware, then use the capabilities as required. Cards that use chipsets that don't support access to the frame buffer by the host are not supported by the DCI Specification.

DCI provides access to the following display device-dependent benefits:

The interface is not designed to provide access to software running on coprocessors that require display capabilities; typically these designs feature hardware-specific interfaces from the coprocessor to the display, so no Windows-based software is used to put pixels on the display. For example, video coprocessors, such as the Intel® i750® processor or MPEG decompression processors, typically provide, their own hardware-specific drivers. If these coprocessors pass data back to Windows subsystem software, then DCI may be used.

Note Windows NT ™ considerations

DCI support under the Windows NT operating system is not addressed by this document. DCI relies on the ability to directly access and draw on display memory. Windows NT, display memory is not exposed the same way as Windows 3.1 or Chicago. A special solution is being worked on.

Purpose of this Document

This document specifies the Display Control Interface (DCI) for Microsoft Windows. It also describes the digital video codec support provided in conjunction with DCI, and provides a user's guide to DCI. The specification provides the detail needed to implement the interface, as well as the information necessary to use the interface.

Intended Audience

This document is intended for two distinct classes of readers: Those who will provide the DCI interface, and those who will use the DCI interface. DCI providers are those readers who are developing driver software for Windows-based graphics subsystems. DCI providers include (but are not limited to):

DCI users are those readers who are developing Windows subsystem software that requires access to the graphics display features that DCI exposes. DCI users include (but are not limited to):

Related Documentation

The following publications are referenced in this document, or may be of interest to readers of this document:

Microsoft Windows Software Development Kit

Microsoft Windows Device Driver Development Kit

Microsoft Video for Windows 1.1 Developer's Kit

Definition of Terms

DCI

Display Control Interface. The DCI is implemented by the DCI Manager and the DCI Provider.

DCI Client, DCI User

Libraries that use the DCI interface.

DCI Command

Any of the commands that a DCI Client can issue to a DCI Provider.

DCI Provider

The part of DCI that is display-hardware specific. Display hardware vendors may choose to implement versions of the DCI Provider that are tuned to the particular features of their display hardware. Note that the DCI Provider may be a separate module or part of the Windows display driver for a particular vendor implementation.

DCI Draw Handler

Module that uses DCI to allow digital video codecs that support the ICM_DECOMPRESSEX message to work with DCI. It does not provide part of the DCI interface, nor does it have any specific hardware code.

DCI Manager

Library that implements the part of DCI that is not display-hardware specific. This library (.LIB) is included in the developer's kit.

DVA.386/VFlatD.386

The page-fault handler that implements a virtual flat frame buffer. This module allows bank-switched display devices to appear as linear frame buffers to DCI client software. DVA.386 is needed for support in Windows 3.1 and VFlatD, shipped with Chicago, for supporting the same functionality of DVA.386 in the Chicago version.

Surface

The area of memory that the DCI Provider provides for DCI access.