DRV251 - Windows Drivers for Storage Class Controllers

This seminar covers Windows StorPort miniport drivers: drivers for storage controller class devices, i.e. disk controllers. These include drivers for SCSI controllers (SCSI host bus adapters), for FibreChannel controllers, for IDE and SATA RAID adapters, and for other controllers for storage class devices. 

Level: Intermediate

Driver developers and hardware engineers supporting storage (disk) controllers. 


Most controllers for storage class devices, other than those on a system's standard ATA/ATAPI controller, are handled in Windows by “storage miniport drivers” (formerly known as "SCSI miniport drivers"). These drivers are written to the "StorPort" model, a substantially different set of interfaces than the standard Windows driver model (WDM) – although the experienced NTDDK, WDM, or KMDF driver writer will notice many points of familiarity.

This seminar covers all you need to know to write a StorPort miniport driver for Windows – that is, to support a new storage class adapter such as a SCSI HBA. We cover all of the required and optional functional interfaces, walk through several common driver designs, and address different types of hardware (DMA vs. programmed I/O, etc.). Lab exercises allow you to immediately apply and reinforce the material just learned.

This seminar is also extremely valuable for storage controller hardware developers who need to optimize their device interfaces to perform well in the Windows environment. Any of several common mistakes in the controller interface design can make the driver’s job very difficult and inefficient. This seminar will show you how to avoid those pitfalls, resulting in a top-performing product.


  • Windows I/O manager, device driver, and storage subsystem overview
  • Windows driver development environment
  • Windows storage class driver architecture
  • StorPort driver structure and key data structures
  • Required and optional driver routines and functionality
  • Design issues and limitations
  • Advanced topics
  • Legacy: ScsiPort interfaces
  • Future directions and resources

DRV150, Windows Internals for Driver Developers, or equivalent knowledge and experience. Attendees should understand the principles of demand-paged, virtual memory, multitasking operating systems. Attendees should also be familiar with the concepts of I/O device programming (in other words, driver coding on any other operating system or environment) and must have at least a reading knowledge of the C programming language. Prior experience writing storage or other drivers for Windows will be helpful, but is not required.

Operating systems supported: Windows 2000 through Windows 10/Windows Server 2012 R2
Durations and formats: 3 days with labs
2 days lecture only

Labs in this seminar include writing, building, installing, and debugging a complete storage miniport driver.