Hi, I’m Ram Valliyappan and I am a Program Manager on the Windows team responsible for USB mass storage drivers. We often get asked the following questions:
· What is USB-IF compliance for USB mass storage devices?
· What is SCSI compliance for USB mass storage devices?
· Why is compliance for USB mass storage devices important?
I will answer these questions in this post.
It is very important for USB devices to be compliant with the USB specification. This allows the device to interoperate on a Windows platform and deliver the best user experience.
The USB-IF compliance is certification program that is defined by the USB standards body. This program verifies that a device complies with the interfaces that are defined by the USB specification. If a USB device passes the compliance tests, the device is added to the Integrators List that is published by the USB standards body. Also, the independent hardware vendor (IHV) can license the USB-IF Logo for devices that are compliant with the USB-IF compliance program.
For more information, please refer to the USB-IF Compliance program.
SCSI compliance is verified through a set of Windows Logo Kit (WLK) tests. These tests verify that a block storage device is compliant with SCSI standards and specifications, such as the SCSI Primary Commands (SPC) and SCSI Block Commands (SBC). For more information about the SCI compliance tests, please refer to the MSDN documentation on SCSI Compliance.
The Windows storage driver stack is developed by using industry standards and expects device to be compliant to same standards. With each new Windows release, the driver stack has expanded its dependency on SCSI commands. Because of this, it is extremely important that the storage device provides the SCSI functionality that the driver stack requires. As a result, the WLK SCSI compliance tests are revised with each new Windows release to verify this requirement with storage devices.
To guarantee that USB devices can interoperate with the Windows storage driver stack and deliver the best user experience, we introduced the SCSI compliance tests for USB in the WLK 1.6. For more information about these tests, please refer to the MSDN documentation on the USB 2.0 and 3.0 SCSI Compliance test. For more information about the WLK and how to download WLK 1.6, please refer to the Windows Logo Kit.
The following provides an overview of the SCSI commands that are verified through the Windows SCSI compliance WLK tests:
·
SCSI command
Industry specification requirement
WLK requirement
Logo test policy (USB Disks)
Logo test policy (USB Card Readers)
Reference
Inquiry
Mandatory
Required
Required by industry standards
Maintenance IN
Optional
Windows recommended
Mode Select 6
Windows required
Mode Select 10
Not Required
Mode Sense 6
Mode Sense 10
Receive Diagnostic Results - ENCSERV = 1
Receive Diagnostic Results - ENCSERV = 0
Report LUNS - UAS
Report LUNS - BOT
Request Sense
Security Protocol IN
Security Protocol OUT
Send Diagnostic
Test Unit Ready
Format Unit
Prevent Allow Medium Removal
Read 6
Windows Recommended
Read 10
Read 16
Read Capacity 10
Read Capacity 16
Start Stop Unit
Synchronize cache
Write 6
Write 10
Write 16
With millions of USB mass storage devices in the market, it is extremely important that these devices comply with a common set of standards. Compliant USB mass storage devices deliver the best user experience when they are connected across different Windows platforms.
To verify compliance, we require USB mass storage devices to pass the USB-IF compliance and WLK programs. This guarantees that Windows users get the maximum value out with their USB mass storage devices.
Thanks for reading! In our next blog, we will talk about common device failures, how to avoid them and make device interoperate with Windows well.
Ram Valliyappan (USB Mass Storage)