Partilhar via


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 https://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, https://www.intel.com/support/chipsets/imst/sb/CS-012308.htm), native command queing (https://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 https://support.microsoft.com/kb/922976 for some details on what needs to be done for Windows Vista.  Also check out https://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.)

Comments

  • Anonymous
    January 01, 2003
    MDT 2008 Update 1 does include fixes for all the known mass storage driver issues. You could choose to do things the old way with $OEM$, TEXTMODE, etc.  If you do that, you can disable the step that runs ZTIStorageDrivers.wsf. ZTIStorageDriversSysprep.wsf isn't dependent on ZTIStorageDrivers, so you could choose to do one and not the other.

  • Anonymous
    January 01, 2003
    I am still having this issue when using MDT 2008 Update 1. I have tried building an image on 2 separate machines, a Dell laptop and an HP desktop. Everything runs perfectly until it runs sysprep. After sysprep is run and the computer restarts, the machine then reboots continuously. Any suggestions?

  • Anonymous
    January 01, 2003
    Sadly, that's a different bug - the script tries to remove a PnP ID from the list it is tracking without first seeing if it is in the list (e.g. it's trying to remove two different drivers with the same PnP ID).  We are still working on a fix for that one.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    There are several reasons the computer could restart - all involve crashes.  So the trick is to stop the machine from rebooting so that you can see what the crash is.   When the computer is starting up, you should be able to quicky hit F8.  That should get you to a screen where you can choose "Disable automatic startup".  Then you should be able to see the STOP error on the screen. If it's a STOP 0x7B, it's a mass storage driver issue.  STOP 0xEA is probably related to KB 931761 (make sure you've enabled the Diskpart BIOS compatibility mode step).  Anything else is likely relatd to a driver. -Michael

  • Anonymous
    January 01, 2003
    When will a fix for the 32811 error/bug be released?  Any ideas?

  • Anonymous
    January 01, 2003
    We will be releasing an update for MDT 2008 probably in early August containing the fixes for these issues.

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    Is this fixed in MDT 2008 Update 1? I have a relatively small number of models. Can I skip using the $OEM$ tactic to manually insert mass storage drivers into my images, and just rely on ZTIStorageDriversSysprep.wsf to fix this for me during image creation? Do I also need to use StorageDriverSysPrepGroup to accomplish this?

  • Anonymous
    January 01, 2003
    The comment has been removed

  • Anonymous
    January 01, 2003
    That is good to know, but in the mean time I have a project deadline and I need to work around it.   On the bright side, I have had to dig deep into how MDT works, so I feel like I'm getting a pretty good handle on it now.  After I finish my immediate deliverable, I will compile a summary of the issues I have encountered and the various workarounds I had to implement to get MDT working with XP, as well as some feature suggestions which I have, and post it.

  • Anonymous
    January 01, 2003
    The comment has been removed