SCSI Port Driver

Microsoft provides a SCSI Port driver as a standard feature of the Microsoft Windows storage architecture. The SCSI Port driver streamlines the Windows storage subsystem by emulating a simplified SCSI adapter. Storage class drivers load on top of the port driver. This means that you can write storage class drivers for Windows with minimal concern for the unique hardware features of each SCSI adapter.

The emulation capabilities of the SCSI Port driver also allow you to develop minidrivers that are much simpler to design and code than a monolithic port driver. In other words, using the SCSI Port driver allows you to focus on developing a miniport driver that handles the particular features of your adapter.

To use the SCSI Port support routines, link to one of the SCSI Port support libraries, scsiport.lib or scsiwmi.lib. These SCSI Port libraries handle all interaction between the miniport driver and the hardware abstraction layers (HAL) of the operating system. Miniport drivers must not link directly to the HAL support library, hal.lib, nor should they link directly to the ntoskrnl.lib or libcntpr.lib support libraries. SCSI miniport drivers that do so are not eligible for a Windows logo.

The following sections examine the key features of the SCSI Port driver.

  1. Capabilities Provided by SCSI Port

  2. SCSI Port's Interface with the Storage Class Driver

  3. SCSI Port's Interface with SCSI Port Miniport Drivers

  4. SCSI Port I/O Model

A general discussion of SCSI Port miniport drivers is provided in SCSI Miniport Drivers.

The Windows storage architecture also provides the Storport Driver, an alternative to SCSI Port for high-performance devices.