Stream Drivers and Native Drivers (Compact 2013)
3/26/2014
In Windows Embedded Compact, a driver is either a stream driver that interfaces with the OS and applications through the stream API, or it is a native driver that interfaces with the OS through a native interface. Native and stream drivers differ only with regard to the interfaces they expose and not by the devices they control. You can load both types of drivers during system startup or on demand, and either can be structured as layered or monolithic drivers (see Layered and Monolithic Drivers). The choice of device driver interface type depends on the purpose of the device driver and how the OS and applications access the device.
Each driver interface type is managed by a different software component. The Device Manager is the software component that manages stream device drivers on the system; it loads, unloads, and interfaces with stream drivers (see Device Manager). The Graphics, Windowing, and Events Subsystem (GWES) loads and manages most native drivers. As shown in the following figure, applications access stream drivers through the Device Manager while the OS accesses both types of drivers through the GWES and the Device Manager.
The majority of device drivers in Windows Embedded Compact are stream drivers. The following table summarizes key distinctions between stream drivers and native drivers.
Device driver interface type |
Characteristics |
---|---|
Stream |
|
Native |
|
In This Section
- Stream Drivers
Describes the stream interface API, which makes it possible for software modules to interact with peripherals as if they were files.
- Native Drivers
Describes when to use a native driver, which is a driver that exposes any interface other than the stream interface.