[REQUEST] Microsoft/Intel Display Control Interface (DCI) - Driver Development Kit (DDK) and Specification

I'm looking for files that were once available on ftp.microsoft.com. Found mention of them here:
https://ftp.zx.net.nz/pub/archive/ftp.microsoft.com/developr/drg/CHANGES.TXT

ftp://ftp.microsoft.com/Softlib/MSLFiles/DCIDDK*.exe

Microsoft Windows DCI DDK v1.0 for Windows 3.1

This is the Microsoft Windows Display Control Interface (DCI) Driver Developer Kit (DDK) version 1.0, for Microsoft Windows 3.1. This DCI DDK is available in 3 separate files (each map to a disk in floppy distribution), named in dciddk.exe, in self-extracting archive format. Disk 1 contains the DDK executables, sample source, spec and documentation. Disk 2 contains test applications. Disk 3 contains the Video for Windows 1.1D run-time.

ftp://ftp.microsoft.com/Developr/DRG/DCI/dci.zip

Microsoft Intel DCI Specification v1.4

This is the "Microsoft Intel Display Control Interface", version 1.4, dated June 13, 1994. The 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 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. Applications should be using WinG and Video for Windows, which will use DCI or other methods to communicate efficiently with the hardware, and also work on Windows NT. DCI works with Windows 3.1 and will work with Windows "Chicago"; due to architectural differences, Windows NT does not support DCI, which is under consideration. This specification provides information for implementing and using DCI. Dci.zip contains dci.doc, a Microsoft Word document.

I've already checked these places, but didn't find anything there:

If there also was a version of this DDK for Windows 95 somewhere, please let me know. This technology is even present on Windows 7 (dciman32.dll), though I don't know if it's there in its geniune form or as a wrapper on top of something newer. And it was used by GDI+, so I'm interested in learning about it from the inside.

The DLL might be present, but I doubt that it does anything. DCI was a way to display movies by using an overlay surface in another color space (typically YUV), allowing access to the frame buffer and graphics chip features from real-mode before DirectX existed. All of its features were subsumed into the graphics drivers themselves decades ago.

What do you think you're going to do with this antique information?

From what I know, DCIMAN32 on NT systems is implemented on top of the low-level DirectDraw object functions.

DCI was a basic screen rendering infrastructure in early Windows (both NT and DOS-based), and a lot of technology, including Microsoft's implementation of OpenGL AFAIK and GDI+, were designed with this in mind. So I just would like to make myself familiar with these roots, as the Windows graphics stack is quite cumbersome and not all of the decisions made back then in its design are clear to me.

Well, DCI was extremely basic. It exposed the primary surface, it exposed overlay surfaces (the early version of what was later done by textures), and it exposed refresh timing. It had almost nothing else. DirectDraw did basically the exact same thing. Nothing in the spec could support Direct3D (or OpenGL for that matter), and certainly the WDDM introduced in Vista had an entirely different philosophy that wiped away any vestiges of this legacy.

1 Like

Thank you for this bit of information.

Was there any other standard video output method before DCI? I mean, what was used in early versions of Video for Windows (VfW) and QuickTime for Windows? I've heard of some things called VFlatD, DVA, DispDIB, SciTech WinDirect and KillGDI, but I'm lost trying to figure out what it all means.

Video For Windows and QuickTime for Windows both came after and were built on top of DCI (and later DirectDraw).

VFlatD was used by some Windows 95 GDI drivers to access their frame buffers. It's easy to forget that Windows 95 was natively a t6-bit operating system, limited by the Intel segment architecture. VFlatD eased that access.

DispDIB was a user-mode DLL that let you haev a window that could easily be switched to full-screen (which, at the time, meant writing directly to the VGA registers for a 640x480x4 display).

None of the others mean anything to me. I wrote a lot of display drivers during that era, but of course that was 30 years ago, and some things leak away.

2 Likes