Digital Still Camera Support
Updated: December 4, 2001
On This Page
Driver Models
WIA
Microsoft STI
Driver Models
Microsoft supports two driver models for still image devices under Microsoft Windows operating systems:
-
Windows XP and Windows Me. Microsoft introduced Windows Imaging Architecture (WIA) in Windows XP and Windows Me. WIA is an imaging architecture that builds on STI. The WIA architecture incorporates STI as a foundation to provide a complete solution to imaging device IHVs.
-
Windows 2000 and Windows 9x. The imaging architecture in Windows 2000 and Windows 95/98 consists of a low-level hardware abstraction, STI, and a high-level set of APIs known as TWAIN. The TWAIN/STI architecture includes TWAIN, a high-level set of image acquisition APIs, together with STI, a low-level hardware abstraction.
The following summarizes the differences between STI and WIA:
-
A WIA driver does not have to expose STI interfaces, since these are already part of WIA; an imaging driver that is intended to run on Windows 2000, or on Windows 95/98, or that ships TWAIN data sources must expose STI interfaces.
-
STI runs in both the client application process and the system service process; WIA runs in the system service process only.
-
STI, being a low-level hardware abstraction, must have detailed information about the device in order to operate; WIA can operate without such detailed device information.
-
STI is not a complete imaging interface; WIA, which is built on top of STI, is a full solution for imaging IHVs.
WIA
The WIA architecture enables imaging applications running in user mode to communicate with and receive data from imaging devices, such as digital cameras and scanners. The WIA architecture consists of the following major components:
-
A system-supplied WIA service through which imaging applications can monitor, communicate with, and receive data from imaging devices. The WIA service routes requests from applications to the appropriate imaging devices and notifies applications when device events, such as data transfer-ready events, occur.
-
Vendor-supplied WIA minidrivers that communicate with both imaging devices and the WIA service through WIA interfaces. Minidrivers communicate with imaging devices through system-supplied or vendor-supplied kernel I/O device drivers. Minidrivers communicate with imaging applications through the WIA service.
-
A system-supplied services library containing helper functions that assist in the development of a minidriver.
Since imaging applications reside in separate processes from imaging device drivers, instability in an application does not adversely affect device operation, and instability in a device does not affect applications.
The current Windows DDK provides complete information for implementing WIA-based driver support.
Microsoft STI
Microsoft STI is made up of the following primary components:
-
A Still Image Event Monitor, which monitors all installed still image devices and receives notification when still image device events occur. An event typically indicates that a device is ready to transmit image data. The Event Monitor also keeps track of all registered applications and can start an application when an event is detected.
-
A set of vendor-supplied, user-mode still image minidrivers that can detect device activity and notify the Still Image Event Monitor of that activity through still image device events. These minidrivers also pass image data from kernel-mode drivers to upper level software.
-
A Scanners and Cameras Control Panel, which allows users to assign specific still image device events to specific applications. In this way, the Event Monitor will know which application to start when it detects an event. The Control Panel also lets users test still image devices.
An imaging application can register itself as push-model aware, meaning it can be activated by the Event Monitor when a still image device is ready to transmit an image.
Imaging applications typically read image data streams by calling a high-level image acquisition API, such as TWAIN. Device-specific sub-components of the image acquisition API, such as TWAIN data sources, use an interface into the user-mode still image minidrivers to perform I/O operations.
Microsoft STI defines several Still Image COM interfaces that allow STI components to communicate with each other.
The current Windows DDK provides complete information about driver support based on Microsoft STI components.