What do you think minidriver means then.
Win32 Device Driver Architecture
Currently, support for new buses and new classes of PC peripherals poses new
challenges for driver development. New buses increase the number of devices
and requirements for device drivers. Increasing integration of multifunction
devices further complicates driver development. At the same time,
low-latency interactive applications demand tighter integration of software
and hardware. For 1997, each of these factors are accounted for in the
evolution of the unified Win32 Driver Model for Windows 95 and Windows NT.
WDM allows a single driver source (x86 binary) to support a new bus or a new
device on both Windows 95 and Windows NT.
Key goals for WDM are to simplify driver development by providing the
flexibility to support new and innovative hardware while also reducing the
number and complexity of drivers that must be developed. WDM must also
provide a common framework for Plug and Play and device power management.
WDM is a key component to enable innovative device support that is simple
and convenient to use.
To achieve these goals, WDM is based on a common set of services provided by
the Windows NT I/O subsystem. WDM advances consist of a set of kernel
extensions to support Plug and Play, device power management, and
low-latency streaming I/O. In addition to common platform services and
extensions, WDM implements a modular, layered class minidriver structure.
Class drivers implement functional interfaces required to support a generic
bus, protocol, or device class. The generic nature of class drivers offers
the opportunity for standardization of logical device command sets,
protocols, and bus interfaces necessary for code reusability. WDM support
for standard class interfaces reduces the number and complexity of device
drivers required for both Windows 95 and Windows NT.
Minidrivers allow extension of generic class drivers to support a specific
device protocol or physical programming interface. For example, a minidriver
can be implemented to extend an IEEE 1394 bus class driver to support a
specific host controller programming interface. Minidrivers are easy to
develop because they simply extend generic class driver interface functions.
Although minidrivers are simple by design, the benefits of reusable
minidriver modules might also be realized in support of standard device
programming interfaces. An example of this is the USB host controller
interfaces (OpenHCI or UHCI).
The flexibility and uniform interfaces of the modular WDM architecture
allows the operating system to dynamically configure various driver modules
to support a specific device. A typical driver stack might consist of
generic device, protocol, and bus class drivers linked by protocol-specific
and bus-specific minidrivers. For example, the operating system can
configure a driver stack to support a camera whose commands are defined by
the Imaging class and delivered by the Function Control Protocol (FCP) class
to the IEEE 1394 bus class. This flexibility also makes it easy to support a
multifunction device by simply implementing a minidriver to interface the
multifunction hardware to several device class interfaces. The dynamic
construction of WDM driver stacks is key to Plug and Play device support.
WDM services enable a common low-latency model for Windows NT and Windows
95. WDM offers multiple levels of execution priority including kernel mode
and non-kernel mode threads, IRQ levels, and Deferred Procedure Calls (DPC).
All WDM class and minidrivers execute as privileged threads (not interrupted
by CPU scheduler) in kernel mode (ring 0). Thirty-two IRQ levels are
available to prioritize hardware interrupt service. For each interrupt, a
DPC can be queued to execute on completion of the IRQ service routine with
interrupts enabled. DPCs enhance system response to interrupts by
effectively reducing the time during which interrupts are disabled. For
x86-based PC systems that use multiple processors, support under Windows NT
for interrupts is based on the MultiProcessor Specification Version 1.4 from
Intel.
For applications requiring life-like multimedia, WDM provides low latency
interfaces for processing I/O streams in kernel mode. WDM streaming
interfaces will be exposed through standard WDM class interfaces. With WDM,
a media stream can be processed completely in kernel mode by one or more
software filters and device drivers. WDM streaming enables direct hardware
access for streaming I/O acceleration, eliminates latency associated with
transitions between non-kernel mode and kernel mode, and also eliminates the
need for intermediate I/O buffering.
Richard G. Harper said:
Sadly, that is simply not true.
--
Richard G. Harper [MVP Shell/User] (e-mail address removed)
* NEW! Catch my blog ...
http://msmvps.com/blogs/rgharper/
* PLEASE post all messages and replies in the newsgroups
* The Website -
http://rgharper.mvps.org/
* HELP us help YOU ...
http://www.dts-l.org/goodpost.htm
Microsoft also write 90% of most drivers (they don't trust hardware mfg
to write good software). MS write the base driver, mfg write a mini
driver with just what is different for their hardware. Especially in
printers and modems where a driver can just be a text file with settings.