System Architecture for Stream Interface Drivers

A stream interface driver receives commands from the Device Manager and from applications by means of file system calls. The driver encapsulates all the information necessary to translate those commands into appropriate actions on the devices it controls.

The following illustration shows the relationship between a stream interface driver and other system components.

The following definitions apply throughout the Windows CE Device Driver Kit:

User application
A user application includes any application that accesses a peripheral device. Access to a peripheral is through the file system and the special files that expose the services of peripherals.
Kernel
The kernel, the core of the Windows CE operating system, provides basic services to the application. To support stream interface drivers, the kernel redirects the file I/O function calls of the application to the appropriate entry points in the stream interface driver.
Device Manager
The Device Manager is a special application that loads and unloads stream interface drivers. For more information, see Device Manager.
Stream interface driver
A stream interface driver is a DLL that manages a peripheral device. It exposes file I/O functions to applications and implements those functions by accessing its peripheral device to map the device’s capabilities to the semantics of the file I/O functions. Stream interface drivers can either use an underlying native device driver to access the physical peripheral devices that the driver serves or access its device directly if the device is mapped into memory. Audio device drivers for built-in audio hardware are an example of direct access.
Native device driver
A native device driver is a device driver supplied by the manufacturer of a Windows CE–based platform. Some stream interface drivers use native device drivers to access peripherals because peripherals are attached to platforms through connectors managed by native device drivers. The native device drivers used by stream interface drivers are generally drivers for various sorts of I/O ports, such as serial ports or PC Card sockets.
Windows CE–based platform
A Windows CE–based platform consists of a CPU, memory, clock, and possibly other hardware, such as a keyboard and touch screen. Stream interface drivers generally use the I/O ports on a platform, whereas the kernel can use all of a platform’s hardware.
Peripheral device
A device—such as a modem, printer, microphone, keyboard, touch screen, and so on—that is managed by a device driver.