Introduction to DASD, SCSI, and CD-ROM Programming Interfaces

This reference defines the OS/2* 2.0 (and later) programming interfaces to support original equipment manufacturer (OEM) direct access storage devices (DASD), small computer system interface (SCSI) devices, and compact disc read only memory (CD-ROM) devices.

The programming interfaces described in this reference provide the following benefits:
 * Device drivers can be written in the C programming language.
 * The development of new DASD, SCSI, and CD-ROM support for unique device interfaces is expedited by reducing the amount of new code required and the complexity of that code.
 * Facilitate development of a new DASD, SCSI, or CD-ROM driver for a specific bus interface.
 * Relatively complex OS/2 kernel interfaces are replaced with a single interface.
 * Independent development organizations are better able to reuse existing DASD device driver code.
 * OS/2 2.0 (and later) is better equipped for installing, starting, and operating on a broad range of Intel** 80386SX-compatible workstations.

The following figure illustrates the organization of the new code:



The following types of device drivers are included in this reference:
 * Device managers
 * Adapter device drivers
 * Filter device drivers

A device manager (DM) is a hardware-independent module that services the standard OS/2 request packet interface. An adapter device driver is a hardware-dependent module and is a member of the lowest layer in the device-driver hierarchy. The adapter device driver to device manager interface is designed such that an adapter device driver is little more than a state machine responsible for moving blocks of I/O between system memory and a target device.

A filter device driver differs from an adapter device driver in that it normally does not manage hardware directly. See and  for details about filter device drivers.

Device Managers
Device managers provide a uniform interface between their clients and adapter device drivers. Device manager clients normally are an OS/2 installable file system or the OS/2 kernel but can be other device drivers.

The interface between a device manager and the adapter device drivers managed is defined in this reference. The interface between device managers and the clients they service is defined by the client's interface specification.

IBM provides the devices managers shown in the following table:

Adapter Device Drivers
Adapter device drivers provide a uniform software interface to the hardware devices they manage. A device driver's external interface is defined in this reference.

Adapter device drivers for the following industry-standard interfaces are included in the OS/2 2.0 (and later) product:

Additional adapter device drivers for other OEM interfaces might be included in the OS/2 operating system.

Filter Device Drivers
Filter device drivers are a special class of device drivers that provide the following:
 * Generic value-added services, such as data stripping or encryption
 * Device-specific services, such as adjusting and altering the command stream between a device manager and an adapter device driver to support a particular type of device

The interfaces between device managers and filter device drivers are identical to the interfaces between device managers and ordinary adapter device drivers. Filter drivers differ from ordinary drivers in that they normally do not manage hardware directly; instead, they monitor the stream of commands between a device manager and regular adapter device drivers.

Filter device drivers to support the following devices are included in the OS/2 2.0 (and later) product: