O'Reilly logo

Professional Windows® Embedded Compact 7 by Thierry Joubert, David Jones, Samuel Phung

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

MONOLITHIC AND LAYERED DRIVER MODELS

As previously discussed, a driver can be constructed from a software perspective as a single entity or as a number of software layers. The driver interface to the OS is called the Device Driver Interface (DDI), as shown in Figure 30-11. With layered drivers, the interface between layers is called a Device Driver Service Interface (DDSI).

Monolithic Drivers

A monolithic driver implements both the DDI and the hardware interface. There are no DDSIs because the driver implements everything from the DDI down to the hardware. At the top, the device driver implements all the required and optional DDI functions so that it can be loaded into the OS and function correctly. The hardware interface at the bottom can directly interface to device hardware ports and memory. The device hardware interrupts are handled indirectly. These interrupts would normally connect to the target system’s interrupt system so the device driver interrupt handler must be configured to trap interrupts from its device and maps them into the operating system’s interrupts. In between the DDI and hardware are everything including initialization, de-initialization, configuration, state management, power management, and management of buffers and implementation interrupt handlers.

A monolithic driver is used when there is not a shared source for the required DDI functions. ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required