Different types of mass storage drivers?

Yes, in fact there are two different types:

  • Class=SCSIAdapter.  Until recently, most mass storage drivers specified class "SCSIAdapter," which doesn't mean that they are actually SCSI-based.  Drivers for many IDE/ATA and RAID controllers also fall into this class.
  • Class=hdc. HDC is an abbreviation for "hard disk controller."  Many newer drivers, especially for SATA-based controllers, specify this class.

The MSDN web page at http://msdn.microsoft.com/en-us/library/ms791134.aspx talks about the different classes of drivers, but doesn't get into too much detail about the differences.  For most purposes, you really shouldn't care too much either, unless you are working with products or scripts that need to know the difference.  That brings us to Configuration Manager 2007 and Microsoft Deployment Toolkit: both care about driver classes and need to take into account that there are two different types.  Unfortunately, neither one did when they were released:

  • ConfigMgr 2007 didn't include logic for class=hdc so it only detects class=SCSIAdapter.  The fix for this will be included in ConfigMgr 2007 SP1, due out very soon.
  • Microsoft Deployment Toolkit 2008 did include logic for class=hdc, but one script was missed.  This script, ZTIStorageDriversSysprep.wsf, only inserts class=SCSIAdapter drivers into sysprep.inf.  A companion script, ZTIStorageDrivers.wsf, includes the correct logic, so if you are creative enough (hint: search for "hdc") you can figure out what needs to be fixed.  We'll release a KB with the official details as soon as we can.

If you are using newer hardware that supports SATA disks but you've never run into either of these issues, it might be because you've configured your hardware in ATA or legacy mode, instead of using AHCI mode.  Generally, I believe you should avoid ATA/legacy mode, as you lose some of the benefits of AHCI, including hot plug support (primarily beneficial with eSATA ports, http://www.intel.com/support/chipsets/imst/sb/CS-012308.htm), native command queing (http://www.intel.com/support/chipsets/imst/sb/CS-012305.htm), and on some hardware, RAID array support. 

Keep in mind though that you can't just switch from one to the other without careful planning - because ATA/legacy and AHCI modes require different drivers, Windows has to know about the new driver before making the switch.  See http://support.microsoft.com/kb/922976 for some details on what needs to be done for Windows Vista.  Also check out http://support.microsoft.com/kb/928253 if you have SATA-based optical drives.  Both of those issues are fixed in Windows Vista SP1.

Driver support for common AHCI-based mass storage controllers is included in Windows Vista SP1.  For Windows XP, though, you need to make sure that the right drivers are included in the image.  (That's what ConfigMgr and MDT 2008 are trying to do for you.)