Why SCSI?

Some old foggies in the computing industry (myself included) remember a time when being called “skuzzy” was a complement because we thought the speaker was referring to SCSI, or the Small Computer System Interface which for a time dominated much of the high end desktop and server market for connecting hard drives, optical drives, scanners and countless other devices.

Today it really lost ground to improved versions of IDE, SATA, USB, and IEEE-1394 on the average desktop, laptop and server, but still exists in many high end servers and is still well supported in Windows and is even seen in many people’s Home Server Consoles which may identify internal SATA drives as SCSI:

SCSI Drives

The answer to this comes from Henry Gabryjelski, a patent agent at Microsoft:

The reason requires a trip through the history of Windows NT storage (stop reading anytime).

Short answer: You’re using a 3rd party driver to control the SATA adapter, which reports itself as a “SCSI” controller.

Long answer:

ATA miniports in Windows (until Vista) had no capability to support more than one outstanding request at a time.  This is because ATA devices were originally able to handle only a single request at a time.  Although native command queuing (NCQ -- multiple outstanding requests) was added to Parallel ATA (PATA), the implementations were so ... diverse ... that supporting them was not possible for Microsoft, thus no support added.

Of course, vendors thought that NCQ was the best thing since sliced bread, since it improved performance of the drives.  Therefore, they used another driver model, that of the SCSI miniport driver, to control their hardware.  It provided the ability to have multiple outstanding requests, therefore enabling NCQ.  Due to the different means of reporting device IDs between SCSI and ATA, however, there were some oddities that resulted.  One of these oddities is that the drive is reported as “SCSI”.  Another oddity is that the SCSI INQUIRY data may not fully match the ATA IDENTIFY DATA, since the identifier fields have different fields of different lengths.

So, you have a 3rd party SATA controller driver, and thus see “SCSI” even though it’s really SATA.

There’s one question answered, only another now remains: “Why on earth does a patent agent know such things?” The answer to that is far simpler: Henry is a former Windows Storage Driver Developer.