Device.Storage Requirements

Device.Storage.Controller

General feature that applies to all Storage Controllers

Related Requirements
Device.Storage.Controller.BasicFunction
Device.Storage.Controller.ClassCode
Device.Storage.Controller.InfFile
Device.Storage.Controller.MiniportDriverModel

Device.Storage.Controller.BasicFunction

Storage Controller Basic Functionality

Target Feature
Device.Storage.Controller
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Controller Basic Functionality

PCI-based host controllers and adapters must support PCI bus mastering as the default setting, and virtual direct access memory (DMA) services must be supported in the host adapter option ROM.

Devices that cannot perform their function without other registry modifications, other than those performed automatically by the device class co-installer, are not eligible for the certification.

All commands must be passed to the underlying physical device unless the controller is a RAID adapter.

If a device returns less data than requested, it must correctly indicate an underrun condition and adapters must handle this in accordance with the WDK (adjust DataTransferLength).

Non-RAID Controller

Miniport drivers other than RAID drivers may not create pseudo devices to be used as targets for management commands for the adapter when no actual LUNs are present. Instead, a SCSI miniports INF must specify the CreateInitiatorLu parameter under the services Parameters key and set this DWORD value to 1. This may not be done using a coinstaller. Storage miniport drivers do not use this parameter as the adapter may always be used even if no devices are present. Values for storage drivers that are documented in the WDK.

The following Storage Controller Driver Logo requirement is for the storage controller driver that does not have a matched submission category in the current Windows Hardware Certification Program. Any storage controller with a matched submission category shall be submitted under its matched category.

Storage controller driver must be a STORPORT MINIPORT driver.

Registry Entries for STORPORT Miniport Drivers - STORAGE_BUS_TYPE must set to BusTypeUnknown (0x00).

For storage controllers, the controller itself must correctly translate the commands and respond in accordance with the applicable SCSI specifications, even if the controller implements other command protocols on a different interface type such as SATA, NVMe, or PQI. Any commands that are not recognized must result in a SCSI check condition with valid sense data.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Controller.ClassCode

Bus-attached controllers must implement the correct class/subclass code as specified in PCI 2.3, Appendix D.

Target Feature
Device.Storage.Controller
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Controller Class CodeStorage host controllers and adapters must meet the requirements for the device protocol used and any requirements related to the device storage bus.Bus-attached controllers must implement the correct class/subclass code as specified in PCI 2.3, Appendix D. This applies to all bus types including, but not limited to, IDE, Fibre Channel, SCSI, and SATA-based devices. Any device which implements RAID functionality regardless of whether the RAID implementation is done in hardware, firmware or in the driver code, must implement the PCI RAID Class Code (01/04) and not use the interconnect class code (for example, a SATA RAID controller must implement the 01/04 class code and not the AHCI class code 01/06/01). Non-PCI attached storage host controller does not need to report PCI class code. However, it must report the equivalent ACPI Compatibility ID.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.InfFile

All host adapters must be installed by using Plug and Play mechanisms and require the use of an INF file

Target Feature
Device.Storage.Controller
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Controller INF FileAll host adapters must be installed by using Plug and Play mechanisms and require the use of an INF. Installation programs must use INF files, must pass the most current Chkinf tool, and can explicitly modify the registry values only by using INF file constructs that meet the Windows certification program requirements. Changes can be made only under the following keys:

TimeoutValues under the class driver services keys (Disk and Tape).

SpecialTargetList only for SCSIport implementations.

Device's service key (must be HKLM\System\CurrentControlSet\Services\ and the Parameters\Device subkey under that).

Signal BusChangeDetected on any link transition or detection of a hot-plug event. A limited settling is allowed before this is signaled, but it must be settable through a registry parameter.

Implementation of the BusType registry DWORD to correctly set the interface type in accordance with the enumeration in NTDDSTOR.H (see the WDK).This value must be set in the miniport's INF under the service's Parameters key - there is no programmatic way to set it and you may not rely on coinstallers as they do not run under all scenarios.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.MiniportDriverModel

Storage Miniport Driver Model

Target Feature
Device.Storage.Controller
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Miniport Driver Model

Drivers used with storage controllers must follow the miniport driver model. Storage Miniports must comply with all miniport interface definitions as defined in the WDK. Fibre Channel, iSCSI, SAS, SAS RAID SATA, SATA RAID, SCSI, and SCSI RAID controller drivers must be STORPORT miniports. Monolithic, full-port drivers or other types of drivers that do not follow the miniport model are not eligible for the certification. All drivers for physical hardware must be implemented to support Plug and Play. Legacy drivers are no longer supported.

Any device that depends on a filter driver for physical disk drive functionality is not eligible for certification. Filter drivers may not be used to bypass any part of the storage stack. For example, a filter driver many not directly access any hardware (such as by using HAL calls) and filter drivers may not be used to link cache manager to the hardware implementation. Filter drivers may not be used to violate any terms of the certification program.

Multipathing drivers may not be tied to specific HBAs except for PCI RAID controllers and must use the MPIO model.

Transient or pseudo-devices may not be exposed to the system. Drivers that specify NODRV may be used to "claim" management devices that report as processor, controller, or MSC device types. Such drivers that do not refer to a service entry are not eligible for the certification, but they can be signed.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.Ata

Defines the Industry and Microsoft standards that must be met

Related Requirements
Device.Storage.Controller.Ata.Interface

Device.Storage.Controller.Ata.Interface

PATA Controller Interface

Target Feature
Device.Storage.Controller.Ata
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

PATA InterfacePATA controllers must comply with the ATA/ATAPI-7 specification. Bus-mastering DMA capability is required for all PATA controllers with the exception of compact flash and similar flash-RAM device. The following requirements are also applied to ATA/ATAPI controllers.

The PACKET command protocol as defined in ATA/ATAPI-7 Volume 2, Section 11.8, must not be implemented in ATA-only controllers.

PATA controllers that support the PACKET command protocol must be fully implemented as defined in ATA/ATAPI-7 Volume 2, Section 11.8.

Identify Device data fields (61:60) and (103:100) must not be used to determine 28-bit or 48-bit LBA addressing support. Instead, bit 10 of word 83 and bit 10 of word 86 must be checked for 48-bit LBA addressing support as defined in ATA/ATAPI-7, Volume 1, Section 4.2.1.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.Boot

Defines requirements that must be met if the Storage Controller support Boot

Related Requirements
Device.Storage.Controller.Boot.BasicFunction
Device.Storage.Controller.Boot.BitLocker

Device.Storage.Controller.Boot.BasicFunction

If the controller implements boot support it must support Int13h functions

Target Feature
Device.Storage.Controller.Boot
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Controller Boot Support

Option ROMs in host controllers and adapters for any interface type, including RAID controllers, that provide boot support must fully support extended Int13h functions (functions 4xh) as defined in BIOS Enhanced Disk Drive Services - 3 [T13-D1572], Revision 3 or later. Logical block addressing is the only addressing mechanism supported.

It is recommended that controllers also support booting using the Extensible Firmware Interface (EFI) and implement device paths as defined in EDD-3. Starting from Windows 8, it is required for controllers to support booting using the Extensible Firmware Interface (EFI).

SD/eMMC/NAND flash controllers do not have Option ROM, so the first part of this requirement does not apply. EFI support is required.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.Boot.BitLocker

BitLocker must not cause failure in SAN Boot thru Storage Controllers

Target Feature
Device.Storage.Controller.Boot
Applies to
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

BitLocker must be properly enabled to protect Operating System in a SAN Boot configuration

Additional Information

Business Justification
(1) When a server is placed in an environment without adequate physical security, BitLocker protects data on the server against unauthorized access if a server is stolen; (2) When hosting service providers repurpose or decommission storage arrays, BitLocker Disk Encryption prevents data breach.
Enforcement Date
Aug. 15, 2011

Device.Storage.Controller.BootDeviceGreaterThan

Defines requirements that must be met if the Storage Controller support 2.2 Terabyte Boot

Related Requirements
Device.Storage.Controller.BootDeviceGreaterThan.BasicFunction

Device.Storage.Controller.BootDeviceGreaterThan.BasicFunction

Controllers supporting a boot device with a capacity greater than 2.2 terabytes must comply with requirements

Target Feature
Device.Storage.Controller.BootDeviceGreaterThan
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Controllers supporting a boot device with a capacity greater than 2.2 terabytes must comply with the following requirements:

Small Computer System Interface (SCSI) and SCSI-compatible storage controllers must comply with section 14, "SCSI Driver Model", of UEFI specification version 2.3.1.

The Internet Small Computer System Interface (iSCSI) boot initiator must comply with section 15, "iSCSI Boot", of UEFI specification version 2.3.

The storage controller must support T10 SBC3 Read Capacity (16) command in the UEFI device driver and the Windows device driver. If Advanced Technology Attachment (ATA) or an Advanced Technology Attachment with Packet Interface (ATAPI) storage controller or disk drive is used, the controller firmware or driver must implement SCSI ATA Translation according T10 SAT3 specifications.

The storage controller must report the exact size of the boot disk drive in the EFI shell and in the Windows operating system.

Additional Information

Business Justification
Disk drive vendors are ready to ship greater than 2.2 TB disks into the market in 2010. OEM vendors are also preparing greater than 2.2 TB boot solutions for their new system platforms. To protect Microsoft partners' investment and provide a good user experience with a greater than 2.2 TB disk drive, controllers must meet these requirements.
Enforcement Date
Dec. 01, 2010

Device.Storage.Controller.Fc

Defines the Industry and Microsoft standards that must be met

Related Requirements
Device.Storage.Controller.Fc.Interface

Device.Storage.Controller.Fc.Interface

Fibre Channel HBA Interface

Target Feature
Device.Storage.Controller.Fc
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Fibre Channel InterfaceFibre channel host bus adapters drivers must support the WMI classes and methods required to implement the FC-HBA or SM-API by using the Microsoft HBAAPI.DLL. Vendors may not replace the Microsoft-provided version of the HBAAPI.DLL file. A subset of Hbapiwmi.mof WMI classes and methods are required for Windows compatibility. Other WMI classes are optional and are grouped to form feature sets. If a driver implements any part of an optional feature set, all related classes in that feature set must be supported. In some cases, some features are grouped into subfeatures. If a driver implements such a subfeature, the driver must correctly support that specific subfeature.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.Fc.NPIV

NPIV is used to deliver Virtual Fibre Channel functionality in Hyper-V

Related Requirements
Device.Storage.Controller.Fc.NPIV.BasicFunction

Device.Storage.Controller.Fc.NPIV.BasicFunction

Hyper-V Virtual Fibre Channel N_Port IO Virtualization Support

Target Feature
Device.Storage.Controller.Fc.NPIV
Applies to
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

N_Port IO Virtualization (NPIV) is the underlying technology used in the Hyper-V feature Virtual Fibre Channel. These tests allow vendors to self-test drivers for compatibility with Virtual Fibre Channel at an API level during the development cycle, and before submitting updated drivers to Microsoft for certification.

The following classes are required: MSFC_VirtualFibrePortAttributes, MSFC_FibrePortNPIVAttributes, MSFC_FibrePortNPIVMethodsEx, MSFC_FibrePortNPIVCapabilities, MSFC_NPIVCapabilities MSFC_NPIVLUNMappingInformationEx. Optionally, MSFC_DH_Chap_Parameters may be implemented.

These tests cover typical valid and invalid API calls, but do not cover in-depth scenarios covering VM workloads, storage target functionality and data integrity, performance, or other considerations.

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Controller.Fcoe

Defines the Industry and Microsoft standards that must be met

Related Requirements
Device.Storage.Controller.Fcoe.Interface
Device.Storage.Controller.Fcoe.Interoperability

Device.Storage.Controller.Fcoe.Interface

Fibre Channel over Ethernet Host Bus Adapter

Target Feature
Device.Storage.Controller.Fcoe
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Fibre Channel over Ethernet Host Bus Adapter

FCoE Adapter must implement FC-BB-5 FC-BB_E specification.

FCoE Adapter miniport must be implemented as a Storport miniport.

FCoE Adapter miniport must define VER_FILEDESCRIPTION_STR and contain the substring "[FCoE]".

For FCoE Adapter miniport INF's [service-install-section]

"DisplayName" entry value is required and must contain the substring "[FCoE]".

"Description" entry value is optional, if specified, must contain the substring "[FCoE]".

For FCoE Adapter miniport INF's Models Section [models-section-name] | [models-section-name.TargetOSVersion]

"device-description" entry value must contain the substring "[FCoE]".

FCoE Adapter miniport must declare BusTypeFibre as its STORAGE_BUS_TYPE in the INF file. STORAGE_BUS_TYPE Enumeration

FCoE Adapters that expose PCI storage device(s)/function(s) for FCoE frame processing (either egress or ingress), must report 0x0c0400 (Fibre Channel) as its Class Code (Base Class, Sub-Class and Interface code).

Additional Information

Enforcement Date
Dec. 01, 2010

Device.Storage.Controller.Fcoe.Interoperability

Fibre Channel over Ethernet Host Bus Adapter - Interoperability

Target Feature
Device.Storage.Controller.Fcoe
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Interoperability

FCoE Adapter must interoperate with FC SAN devices through FCF.

FCoE Adapter must interoperate with native FCoE devices.

FCoE Adapter must be able to transport network (IP) and storage (FCoE) traffic concurrently.

Disable/removal/loss of FC (storage) functionality must not impact network (Ethernet) connectivity and functionality.

FCoE Adapter must be able to access and address FC and native FCoE devices concurrently (through FCF).

Initiator Coexistence

FCoE Adapter must coexist with FC Adapter without interference on the same system.

FCoE Adapter must coexist with other FCoE Adapters without interference on the same system.

Additional Information

Enforcement Date
Dec. 01, 2010

Device.Storage.Controller.Flush

Defines the Industry and Microsoft standards that must be met

Related Requirements
Device.Storage.Controller.Flush.BasicFunction

Device.Storage.Controller.Flush.BasicFunction

Flush to Connected Device

Target Feature
Device.Storage.Controller.Flush
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Industry standard spec requirements:

For ATA device, FLUSH CACHE (E7h, Non-Data ) 28-bit command is optional for ATA devices and ATAPI devices. FLUSH CACHE EXT (EAh, Non-Data) 48-bit command is mandatory for devices implementing the 48-bit Address feature set

For SCSI Devices, SYNCHRONIZE CACHE (10) command and /or SYNCHRONIZE CACHE (16) command shall be implemented

Windows Design Spec requirements - Controller:

For controllers and device drivers of all bus types (ATA, SCSI and USB), flush cache command shall be sent to connected device without any omission.

Note: The requirement is not applicable to Laptop.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Controller.Iscsi

Defines the Industry and Microsoft standards that must be met

Related Requirements
Device.Storage.Controller.Iscsi.Interface

Device.Storage.Controller.Iscsi.Interface

iSCSI Interface

Target Feature
Device.Storage.Controller.Iscsi
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

iSCSI InterfaceiSCSI host bus adapters must be compatible with iSCSI RFC3720 and must implement all mandatory requirements. The only exception to this is that IPsec is not mandatory but, if implemented, will be tested. All optional components, if implemented, must comply with this specification.

Optional behavior must not undermine compliance with the iSCSI specification or the Windows certification program requirements for iSCSI.

The device and drivers must also meet applicable requirements for SCSI controllers and devices.

An iSNS client must be implemented and comply with RFC3723.

An Adapter must be able to receive ping (ICMP) and send ping (ICMP).

Device logons must be consistent with the Microsoft iSCSI Discovery Service.

Any boot device configured by other means must be reported to the service after boot.

Any other persistent target assignments and sessions under control of the HBA must be reported by using WMI to the iSCSI Initiator Service when it is available.

The following logon authentication implementations are both required:

"CHAP-target authenticates initiator"

None

Mutual CHAP, if implemented, must adhere to the specification and will be tested.

IPSec support must adhere to all applicable IPSec requirements in this document.

The HBA driver must implement all required WMI interfaces documented in the WDK.

The initiator must perform an automatic logon to targets assigned to the computer as persistent targets. The initiator will connect to all persistent targets before the targets are enumerated by Windows, which starts with an Inquiry to LUN 0. If a connection drops, it will continue to try to reconnect. Devices cannot depend on the discovery service for this information.

Initiators must:

Maintain the persistent logon information in the registry or in NVRAM.

Support the new WMI class for defining/managing persistent logons.

Persist IP network adapter and discovery configurations (IP configuration information, such as static IP address, static default gateway IP address, static subnet mask, and DNS server) or use DHCP to obtain this information.

For discovery configuration, remember which discovery methods are used and, for iSNS, maintain the address of the iSNS server.

An iSCSI HBA must support changers, disk, tape, and external RAID devices.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.Iscsi.iSCSIBootComponent

Defines the Industry and Microsoft standards that must be met

Related Requirements
Device.Storage.Controller.Iscsi.iSCSIBootComponent.FwTable

Device.Storage.Controller.Iscsi.iSCSIBootComponent.FwTable

iSCSI Boot Functionality

Target Feature
Device.Storage.Controller.Iscsi.iSCSIBootComponent
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

iSCSI Boot FunctionalityThe iSCSI boot component must:

Be compatible with iSCSI targets complying to iSCSI RFC3720.

Defer all iSCSI functionality to the Microsoft iSCSI software initiator after the Windows boot sequence begins (once ntoskrnl.exe loads).

Support Login Redirection.

Support one-way CHAP and must maintain CHAP secret in non-volatile memory.

Implement iSCSI Boot Firmware Table in firmware or Option ROM per the ACPI SIIG optional table.

Support crashdump.

Support use of IPV6 addressing.

Support iSNS (Internet Server Name Service)

Support RELOGIN as minimum error handling in the case of an error during logon initialization sequence with the iSCSI target.

Support the following DHCP option numbers: 1, 3, 17, 43, 51, 54, 57, 60, 61, 255, 201, 202, 203, 204, 205, and 206.

Support the following DHCP parameters:

DHCPDISCOVER to get an IP address assigned.

DHCPDISCOVER to get an IP address assigned.

DHCPREQUEST to obtain iSCSI protocol parameters.

DHCPINFORM to inquire updates in information from the DHCP server.

In addition:

All requests from iSCSI preboot component DHCP clients to DHCP servers must use option 60 to signal the appropriate vendor scope.

All requests from iSCSI preboot component DHCP clients to DHCP servers must use option 61 to signal the identity of this given client. If the client Alt ID is not defined, then the type field should be set to 0x01 and the EN MAC address must be used to define client identity. If the client Alt Id is defined, then the type field should be set to 0x00 and the CAID field must be used.

All requests from iSCSI preboot component DHCP clients to DHCP servers must use the CHADDR field containing the EN MAC address of the DHCP client.

The use of CIADDR in iSCSI preboot component must conform to the DHCP usage of CIADDR.

The use of YIADDR iSCSI preboot component must conform to the DHCP usage of YIADDR; namely, the iSCSI preboot component DHCP client must accept the YIADDR provided by the DHCP server during the DHCPREQUESTóDHCPACK or DHCPINFORMóDHCPACK transaction sequence.

The use of SIADDR in iSCSI preboot component must conform to the DHCP usage of SIADDR; namely, the iSCSI preboot component DHCP client must use this address to access the DHCP server during DHCPREQUESTóDHCPACK or DHCPINFORMóDHCPACK transactions.

To support DHCP option 1, the subnet mask provided in the DHCPOFFER response from iSCSI pre-boot component must provide the subnet mask.

All transactions between iSCSI preboot component DHCP clients and DHCP servers must be a single-frame transaction.

To avoid conflict with other services, iSCSI preboot component must not use DHCP option 52.

Implementation of multiple option responses in iSCSI preboot component must comply with RFC 3396.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Controller.Optical

General feature that applies to all Storage Controllers to ensure optical burning requirements are met

Related Requirements
Device.Storage.Controller.Optical.BasicFunction

Device.Storage.Controller.Optical.BasicFunction

Storage HBA Drivers must support Optical drives

Target Feature
Device.Storage.Controller.Optical
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Controller Optical SupportThe storage HBA drivers must support the optical device. The CDBs sent to the optical device and the response from the optical device must be handled properly.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.PassThroughSupport

Pass-through storage controller basic functionality

Related Requirements
Device.Storage.Controller.PassThroughSupport.BasicFunction

Device.Storage.Controller.PassThroughSupport.BasicFunction

Pass-through storage controller basic functionality

Target Feature
Device.Storage.Controller.PassThroughSupport
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

The bus adapter must report the actual bus type used to connected drives (e.g. drives are connected via the SAS bus; reporting drives as connected via the "RAID" bus is invalid). All commands must be passed directly through to the underlying physical devices. The physical devices must not be abstracted (e.g. formed into a logical RAID disk) and the bus adapter must not respond to commands in behalf of the physical devices.NOTE: This applies only to SAS and SATA Controllers.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Controller.Raid

Defines the Industry and Microsoft standards that must be met

Related Requirements
Device.Storage.Controller.Raid.BasicFunction

Device.Storage.Controller.Raid.BasicFunction

RAID Controller

Target Feature
Device.Storage.Controller.Raid
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

RAID Controller

Miniport drivers for PCI RAID adapters may create a management LU if this device is always available for management commands and has a device type other than disk. Since this device will appear in device manager, a NODRV INF may be submitted to claim this device and prevent user popups (this INF may be signed).

For RAID controllers, the controller itself must correctly interpret the commands and respond in accordance with the applicable SCSI specifications, even if the controller implements RAID on a different interface type such as SATA. Any commands that are not recognized must result in a SCSI check condition with valid sense data.

SCSI Requirements can be found in Device.Storage.SCSI section.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.Raid.ContinuousAvailability

Validates that Continuous Availability (CA) storage controller and drivers meet all applicable requirements

Related Requirements
Device.Storage.Controller.Raid.ContinuousAvailability.ActiveMode
Device.Storage.Controller.Raid.ContinuousAvailability.FailoverClustering
Device.Storage.Controller.Raid.ContinuousAvailability.LunAccess
Device.Storage.Controller.Raid.ContinuousAvailability.RAID
Device.Storage.Controller.Raid.ContinuousAvailability.RecoveryProcessing

Device.Storage.Controller.Raid.ContinuousAvailability.ActiveMode

Device and driver must support active LUN access on each node in a Windows Failover Cluster system configuration

Target Feature
Device.Storage.Controller.Raid.ContinuousAvailability
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

When the device and driver are configured in multiple nodes in a Windows Failover Cluster, each node must support as a minimum dual-active access, defined as full read/write functionality for at least one LUN that has capability for being failed over to another node in the cluster. Specifically not allowed is to only support passive operation where the device and driver operates only in a standby mode until the cluster fails over a LUN from another node.

Design Notes:

For this dual-active access, LUNs do not need to provide full, performant read/write functionality to all nodes in the cluster. Access from other nodes only needs to be supported as required to support a valid Windows Failover cluster.

Specifically, it is desirable but not required to support simultaneous, shared access to a LUN from multiple nodes in the cluster.

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Controller.Raid.ContinuousAvailability.FailoverClustering

Device and driver must meet a minimum set of requirements to operate in a Windows failover cluster

Target Feature
Device.Storage.Controller.Raid.ContinuousAvailability
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Device must comply with SPC-3 section 6.11 PERSISTENT RESERVE IN command

Device must comply with SPC-3 section 6.12 PERSISTENT RESERVE OUT command

Device must support Persistent reservations type as defined in section 6.11.3.4 Table 107:

5h Write Exclusive Registrants Only

Device must comply with Reservation behavior as defined in SPC-3 section 5.6

Specifically SCSI compliance testing should take special care to verify the following:

Verify Reserving once reserved the scope & type of an existing persistent reservation cannot be changed

Comply with section 5.6.1 table 32

Comply with section 5.6.6 table 33, table 34, table 36 verify Good Status conditions

Verify, re-register an I_T nexus that has already been registered (5.6.6) should return good status

Verify, re-reserve an I_T nexus that holds the persistent reservation (5.6.9) should return good status

Return Reservation conflict if PRO command with service action PREEMPT or PREEMPT & ABORT is sent with invalid Service Action Reservation Key (5.6.10.4.4)

Verify Additional Length Field per 6.11.3.2 - should return zero when no persistent reservation is held

Design Notes:

It is recommended that in addition to the standard HCT qualification all solutions are also validated with the "Microsoft Cluster Configuration Validation Wizard" (ClusPrep) tool.

Only SAS devices using the Serial SCSI Protocol (SSP) transport will be supported on failover clusters (including SAS JBOD or any SAS SSP RAID systems).

If the system disks are attached to a bus type that is not a valid type for shared storage (something other than FC, iSCSI, or SAS), then the system disks and shared

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Controller.Raid.ContinuousAvailability.LunAccess

Device and driver must meet requirements for accessing LUNs in a Windows Failover Clustering configuration

Target Feature
Device.Storage.Controller.Raid.ContinuousAvailability
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

When a node in a Windows Failover Cluster fails over its resources, either planned or unplanned (e.g., resulting from a node crash or node power failure), the device and driver must meet the following requirements:

All data from successfully acknowledged writes prior to failover must be preserved and accessible from surviving nodes. Specifically, data corresponding to write operations sent to the device and driver on the failing node prior to the start of failover of its LUNs (i.e., after the corresponding RAID controller on a surviving node receives a persistent reservation request corresponding to the LUNs from the failed node) that have been acknowledged by the driver as completed must be accessible after failover completes from a surviving node. In addition, any data that may be pending from unacknowledged writes at the start of failover must not change data subsequently written to the device from a surviving node.

When the LUNs supported by the RAID controller on the failing node stop being accessible (i.e., stop acknowledging and processing I/O requests), the LUN must be made accessible (i.e., acknowledge and process I/O requests) by at least one other node in the cluster with a maximum delay of 5 seconds. This time limit must be supported for up to 100 LUNs or the maximum number of LUNs supported by the controller, whichever is smaller.

During normal operation (i.e., not during failover) in a Windows Failover Cluster, the device and driver must meet the following requirement:

All I/O requests to any LUN supported by the RAID controller must complete within 25 seconds. This time limit must be supported for up to 100 LUNs or the maximum number of LUNs supported by the controller, whichever is smaller.

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Controller.Raid.ContinuousAvailability.RAID

Device and driver must meet a minimum set of requirements for RAID functionality

Target Feature
Device.Storage.Controller.Raid.ContinuousAvailability
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Device and driver must support commands from SBC-2 (or later) regardless of the drive interface implemented.

Device and driver must support, at a minimum, one of: RAID1, RAID 5, RAID6 or RAID 1/0, or an equivalent feature that supports full LUN functionality in the event of failure of a single data drive.

Device and driver RAID implementation must provide a solution to prevent data loss due to the RAID write hole failure mechanism. (See Design Notes for definition of the RAID write hole failure mechanism.)

Design Notes:

If there is a system or controller failure during active writes, the erasure code information of a stripe (e.g., parity) may become inconsistent with the data. Data loss may result if this incorrect erasure code information is subsequently used to reconstruct the missing block in that stripe. This problem is known as the RAID write hole .

Examples of typical solutions for the RAID write hole problem are to provide mechanisms to detect and recover from an interrupted update-in-place operation or to avoid update-in-place semantics

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Controller.Raid.ContinuousAvailability.RecoveryProcessing

Device and driver must automatically complete all recovery processing resulting from failing over a LUN from a node in a Windows failover cluster

Target Feature
Device.Storage.Controller.Raid.ContinuousAvailability
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

When the device and driver are configured in a Windows failover cluster and LUN access is restored after a failover (see requirement CAHWStorage-0004), all processing required by the device and driver to recover from the failover operation and restore normal operation must complete automatically, i.e., without any manual intervention

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Controller.Sas

Defines the Industry and Microsoft standards that must be met

Related Requirements
Device.Storage.Controller.Sas.Interface

Device.Storage.Controller.Sas.Interface

SAS Controller Interface

Target Feature
Device.Storage.Controller.Sas
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

SAS InterfaceSAS host bus adapter miniport drivers must use the Microsoft hbaapi DLL to support the Windows Management Instrumentation (WMI) methods. The specific required WMI classes and methods are grouped and designated as mandatory or optional. All mandatory classes and methods must be supported. If a group is identified as optional and a miniport driver supports that group, individual methods and classes within that group are also classified as mandatory if the group is implemented or optional if the group is implemented. Note: The SAS HBA API is currently in draft stage at the T11.5 working group. This support will not be a requirement until the draft document is complete. WHQL will issue an announcement when this support becomes a requirement.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.Sata

Defines the Industry and Microsoft standards that must be met

Related Requirements
Device.Storage.Controller.Sata.Interface

Device.Storage.Controller.Sata.Interface

SATA Controller Interface

Target Feature
Device.Storage.Controller.Sata
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

SATA Interface

SATA controllers must comply with the ATA/ATAPI-7 specification

SATA controllers must support hot plug.

SATA controllers shall support Asynchronous Notification as defined in Serial ATA: High Speed Serialized AT Attachment, Version 2.6 or later and AHCI 1.3 or later.

If implemented, NCQ must be supported properly.

If implemented, larger sectors other than 512 bytes must be supported properly.

AHCI SATA controllers must comply with the AHCI 1.0 specification or later.

SATA controllers shall not emulate PATA.

Interfaces for non-AHCI SATA controllers, if implementing an interface other than AHCI, must be supported by a Windows inbox driver or must certify with a supplied driver set. The supplied drivers must meet the driver certification requirements in this document.

Recommendation: SATA controllers should implement interface power management

Recommendation: SATA controllers should implement Native Command Queuing (NCQ) support

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Storage.Controller.SD

Defines the Industry and Microsoft standards that must be met.

Related Requirements
Device.Storage.Controller.SD.BasicFunction

Device.Storage.Controller.SD.BasicFunction

SD Controller Basic Functionality

Target Feature
Device.Storage.Controller.SD
Applies to
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Supports the SD Standard Host Interface (as per the SD 3.0 Standard)

Supports CMD21 tuning for eMMC HS200.

All interrupts shall be disabled except for buffer read ready when executing the tuning procedure for either SD 3.0 devices (CMD19) or eMMC 4.5 devices (CMD21).

Tuning procedure must use the standard tuning blocks defined in the SD and eMMC standard specifications, respectively.

Supports 1.8V and 3.3V signaling voltages.

Supports ADMA2 (no system DMA).

Properly express all capabilities supported by the host controller in the standard capabilities register.

Supports Byte (8-bit), Word (16-bit), and Double Word (32-bit) register accesses based on the register size given in the standard host controller specification.

Supports write protect where write protect is indicated by the value 0.

Supports 1-bit and 4-bit bus widths. 8-bit bus width is also required for eMMC controller.

Supports all UHS-I modes (SDR50, DDR50, SDR104). HS200 is also required for eMMC controller.

No retuning shall be necessary for SDR50 mode.

Retuning shall not require a software timer.

Supports Auto CMD23 and Auto CMD12.

No toggling of any proprietary register bits shall be necessary to enable any functionality.

Clock frequency shall be calculated according to standard specification.

Support standard error recovery procedure.

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.ControllerDrive.NVMe

Storage NVMe Feature

Related Requirements
Device.Storage.ControllerDrive.NVMe.BasicFunction

Device.Storage.ControllerDrive.NVMe.BasicFunction

NVMe Device Requirements

Target Feature
Device.Storage.ControllerDrive.NVMe
Applies to
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64

Description

The following requirements must be fulfilled by the NVMe device in general:

The device must support PCIe Gen2 or higher.

The device must support the following interrupt modes:

Running with the requested number of interrupts (i.e. > 1 MSI or MSI-X based interrupt)

Running with only 1 MSI or MSI-X interrupt

Running with only 1 line-based interrupt

[Server] MSI-X is required

[Client] MSI or MSI-X is required

The device must use the following class and sub-class codes for identification, for further driver matching the vendor and product IDs should be utilized:

Base Class:01h

Sub-Class:08h

Programming Interface:02h

The device must have at least one upgradeable firmware slot

The following requirements that the device must fulfill are specific to revision 1.0 + errata of the official NVMe spec:

3.1.1 Controller Capabilities

MPSMIN (Memory Page Size Minimum) must be set to 0. Bit: 51:48

4.1.3 Queue Size

[Server] Submission Queues must be capable to be at least128 entries deep

[Client] Submission Queues must be capable to be at least 64 entries deep

5.2 Asynchronous Event Request

Error events, as well as SMART / Health status events must be supported, see section 5.12 below.

5.3 Create I/O Completion Queue

5.4 Create I/O Submission Queue

5.5 Delete I/O Completion Queue

5.6 Delete I/O Submission Queue

[Server] At least 64 queues must be supported for 5.3 through 5.6

63 sets of I/O submission and completion queues and 1 set of admin submission and completion queues are acceptable. The device must then report that it supports 63 I/O queues.

[Client] At least 4 queues must be supported for 5.3 through 5.6

3 sets of I/O submission and completion queues and 1 set of admin submission and completion queues are acceptable. The device must then report that it supports 3 I/O queues.

5.9 Get Features at least the following must be reported accurately:

5.12.1.5 Error Recovery

5.12.1.6 Volatile Write Cache

A volatile write cache is not required on the device to adhere to these requirements. This field has to be accurately reported.

5.12.1.7 Number of Queues

5.12.1.8 Interrupt Coalescing

[Server] required

[Client] not required

5.12.1.11 Asynchronous Event Configuration

5.10 Get Log Page

The device must implement and populate at least the log pages for Error Information (01h), SMART / Health Information (02h), and Firmware Slot Information (03h)

5.11 Identify

MDTS (Maximum Data Transfer Size) must be either 0 (no limitation) or at least 5 (128KB). Byte: 77

Note: This value will likely be increased in future revisions and next-generation devices should be designed with this in mind.

NN (Number of Namespaces) must be at least 1. Bytes: 519:516

FLBAS (Formatted LBA Size) must have bit 4 set to 0. Byte: 26

If the Metadata Capabilities feature is supported, this requirement holds, otherwise it can be ignored; i.e. iff MC bit 1 is set to 1, the above FLBAS requirement is binding. Byte: 27

LBADS (LBA Data Size) must be set to 9 or 12, i.e. 512B or 4KB. Bits: 23:16

Other LBA data sizes are acceptable, as long as 512B or 4KB is supported.

5.12 Set Features at least the following must be implemented:

Error Recovery (05h)

Volatile Write Cache (06h)

If a volatile write cache exists on the device

Number of Queues (07h)

Interrupt Coalescing (08h)

Asynchronous Event Configuration (0Bh)

5.13 Format NVM

The device must be capable to perform at least a User Data Erase (SES Value 001b)

The device must be capable to perform the Format NVM command on a per namespace basis. Specifically, Bit 1 and Bit 0 of Byte 524 in the Identify Controller Data Structure must be set to 0.

6.6 Dataset Management Deallocate

All I/O and Deallocate commands shall be completed in less than 500 ms.

98.5% of I/O commands shall be completed in less than 100 ms.

6.7 Flush

If a volatile cache exists on the device

6.8 Read

6.9 Write

Additional Information

Business Justification
By conforming to the features and standards mentioned in the detailed description section of this document, Windows will be capable of efficiently and securely utilizing NVMe devices.
Deallocate will allow easy removal of data from the device without incurring additional I/Os, thus prolonging the expected life of the flash.
Flush for volatile caches is required for Bitlocker scenarios that include storage caches. It is necessary to have the capability to synchronize all data from a caching layer to the final storage medium.
Asynchronous Event Requests allow Windows to retrieve health information about the device that may indicate errors and failures. This capability yields better error handling and preventive measures can be taken to minimize the risk of data loss.
Enforcement Date
Jun. 26, 2013

Device.Storage.Enclosure

Drive Enclosures must meet these requirements

Related Requirements
Device.Storage.Enclosure.DirectAccess
Device.Storage.Enclosure.DriveIdentification

Device.Storage.Enclosure.DirectAccess

Drive enclosures must provide direct access to the drives they house

Target Feature
Device.Storage.Enclosure
Applies to
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Enclosures must not abstract the drives they house (e.g. formed into a logical RAID disk). Integrated switches, if present, must provide discovery of and access to all the drives in the enclosure without requiring additional physical host connections.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Enclosure.DriveIdentification

Drive enclosures must provide drive identification service

Target Feature
Device.Storage.Enclosure
Applies to
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Storage enclosure must meet the following requirements to support storage space configuration.

Must support the following commands:

  • INQUIRY

  • SEND DIAGNOSTIC

  • RECEIVE DIAGNOSTIC RESULTS

  • REQUEST SENSE

  • TEST UNIT READY

Must set ENCSERV bit to one in the Standard Inquiry Data (SPC4) to indicate that storage target device contains an embedded enclosure services component that is addressable through this logical unit.

Must support the following Diagnostic pages for enclosure service devices:

  • Supported Diagnostic Pages diagnostic page (00h)

  • Configuration diagnostic page (01h)

  • Enclosure Control diagnostic page (02h)

  • Enclosure Status diagnostic page (02h)

  • Additional Element Status diagnostic page (0Ah)

The following Type Control and Status Elements are used in Windows Storage Space feature:

Element Type Code Element Type Name
01h
Device Slot
02h
Power Supply
03h
Cooling
04h
Temperature Sensor
07h
Enclosure Service Controller Electronics
12h
Voltage Sensor
13h
Current Sensor
17h
Array Device Slot

Storage enclosure must support either Device Slot (01h) or Array Device Slot (17h) Element Type. All other element types (Power Supply, Cooling, Temperature Sensor, Enclosure Service Controller Electronics, Voltage Sensor and Current Sensor) are optional.

For Additional Element Status diagnostic page (0Ah), enclosures shall provide additional element status descriptor with the EIP (element index present) bit set to one.

Element Index field reported by drive bays are in ascending order.

The protocol identifier must set to 6h (SAS).

The SES device must report the same address the drive reports for Device Identification VPD page (83h) should include one designation descriptor in which the target port name or identifier (see SAM-5) is indicated. The designation descriptor, if any, shall have the ASSOCIATION field set to 01b (i.e., target port) and the DESIGNATOR TYPE field set to:

  1. 2h (i.e., EUI-64-based);

  2. 3h (i.e., NAA); or

  3. 8h (i.e., SCSI name string

For Enclosure Control diagnostic page (02h), control descriptors are enumerated by disk bay number in ascending order.

Must comply with T10 SES3 spec to implement both Enclosure Control diagnostic page and Enclosure Status diagnostic page with INFO, 1NON-CRIT, CRIT and UNRECOV bits.

ELEMENT STATUS CODE field in all Status element formats must adopt the following codes:

Code Name Condition
0h
Unsupported
Status detection is not implemented for this element.
1h
OK
Element is installed and no error conditions are known.
2h
Critical
Critical condition is detected.
3h
Noncritical
Noncritical condition is detected.
4h
Unrecoverable
Unrecoverable condition is detected.
5h
Not Installed
Element is not installed in enclosure.
6h
Unknown
Sensor has failed or element status is not available.
7h
Not Available
Element installed, no known errors, but the element has not been turned on or set into operation.
8h
No Access Allowed
The initiator port from which the RECEIVE DIAGNOSTIC RESULT command was not received does not have access to this element.
9h to Fh
Reserved

Notes: Windows correlates enclosure services to drives via the protocol-specific information and the drives Device Identification VPD page (83h) with ASSOCIATION field set to 1.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd

Related Requirements
Device.Storage.Hd.BasicFunction
Device.Storage.Hd.PhysicalSectorSizeReportsAccurately
Device.Storage.Hd.RotationalRate

Device.Storage.Hd.BasicFunction

HD Basic Functionality

Target Feature
Device.Storage.Hd
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

The device must be able to perform the following scenarios:

Sequential read

Sequential write

Sequential verify (write followed by read and comparison)

Random read

Random write

Random verify

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Hd.PhysicalSectorSizeReportsAccurately

Reported physical sector size must be the unit of atomic write

Target Feature
Device.Storage.Hd
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Following applies to ATA based Hard Disk Drives:If implemented, support for storage devices with logical sector sizes larger than 512-bytes need to be implemented as described in the ATA-8 specifications. Please refer to the INCITS T13 specification repository for access to the specification. Following applies to SCSI based Hard Disk Drives: If implemented, support for storage devices with logical sector sizes larger than 512-bytes need to be implemented as described in the SBC-3, SPC-4, and SAT-3 specifications. Please refer to the INCITS T10 specification repository for access to the relevant specifications.

Additional Information

Business Justification
Some Hard Disk Drives report the physical sector size of the disk incorrectly. For example, the drive is released a "4K" drive without reporting that it is indeed a 4K drive. Applications use the reported physical sector size as a notion of atomicity and perform I/O based on this. The most basic example is a database-style application will only store one commit record within the unit of atomic write for fear of loss if power is lost or if a physical sector becomes physically bad. When the reported physical sector size is not the unit of atomicity, serious reliability concerns can arise in scenarios where power is lost such as:Applications can fail to recover, and users will need to restore from backup.Applications can fail to recover, but the application will need to perform a lengthy consistency check.Corruption of metadata, log file data, user data, or even data from other applications.
Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.RotationalRate

Hd Rotational Rate Logo Requirements

Target Feature
Device.Storage.Hd
Applies to
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64

Description

Solid State Device (SSD) shall set Nominal Media Rotation Rate to non-rotating medium value. A rotational or a mixed rotational and SSD device shall report the rotational rate of the rotational medium.

Following applies to ATA based Hard Disk Drives:

ATA hard disk devices must report nominal media rotation rate as described in the ATA-8 specifications. The Word 217 of Identify Device command return shall not be 0000h.

Nominal Media Rotation Rate Value Description

Value
Description
0000h
Rate not reported
0001h
Non-rotating media (e.g., solid state device)
0002h-0400h
Reserved
0401h-FFFEh
Nominal media rotation rate in rotations per minute (rpm) (e.g., 7 200 rpm = 1C20h)
FFFFh
Reserved

Following applies to SCSI based Hard Disk Drives:

SCSI hard disk device must report nominal media rotation rate as described in the T10 SBC3 specifications. The Inquiry command return for Block Device Characteristics VPD page shall not set media rotation rate = 0000h.

MEDIUM ROTATION RATE field

Code
Description
0000h
Medium rotation rate is not reported
0001h
Non-rotating medium (e.g., solid state)
0002h-0400h
Reserved
0401h-FFFEh
Nominal medium rotation rate in rpm (e.g., 7 200 rpm = 1C20h,10 000 rpm = 2710h, and 15 000 rpm = 3A98h)
FFFFh
Reserved

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Hd.1394

Related Requirements
Device.Storage.Hd.1394.Compliance

Device.Storage.Hd.1394.Compliance

IEEE 1394 Hard Disk Drive Specification compliance

Target Feature
Device.Storage.Hd.1394
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

1394 ComplianceIEEE-1394 (Firewire) devices must comply with Serial Bus Protocol-2 (SBP-2) and SCSI Primary Commands-2 (SPC-2), and disk devices must comply with SCSI Reduced Block Commands (RBC). The reference for specification compliance...:SBP-2, SPC-2, Min:RBC

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Hd.Alua

Related Requirements
Device.Storage.Hd.Alua.Compliance

Device.Storage.Hd.Alua.Compliance

Asymmetric Logical Unit Acces (ALUA)

Target Feature
Device.Storage.Hd.Alua
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

If a device supports asymmetric logical unit access (ALUA), the device must comply with the requirement of implementing target port group support (TPGS) in standard inquiry data as SPC3-r23 section 6.4.2.The Report Target Port Group command must be supported, if logical units report in the standard Inquiry Data that they support ALUA. The storage device must comply with SPC3 -r23 section 6.25 Report Target Port Group command according to its TPGS field code in the standard Inquiry data.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.Ata

Related Requirements
Device.Storage.Hd.Ata.BasicFunction
Device.Storage.Hd.Ata.Dma

Device.Storage.Hd.Ata.BasicFunction

ATA/ATAPI Interface

Target Feature
Device.Storage.Hd.Ata
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

PATA Devices (legacy) (PATA Devices will no longer be accepted for WHQL submission after June 2013.)Microsoft recommends the use of SATA for new devices. However, in a spirit of compatibility with existing device base, the following requirements are provided for PATA devices. Shared bus capabilities are required for PATA devices; devices shall be configurable as device 0 or device 1.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Hd.Ata.Dma

ATA/ATAPI DMA Mode

Target Feature
Device.Storage.Hd.Ata
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

ATA/ATAPI DMA Mode All PATA controllers and PATA peripherals shall support Ultra-DMA as defined in ATA/ATAPI-7.Justification: In addition to improved transfer rates, Ultra-DMA also provides error checking for improved robustness over previous PATA implementations.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Hd.AtaProtocol

Related Requirements
Device.Storage.Hd.AtaProtocol.Performance
Device.Storage.Hd.AtaProtocol.Protocol

Device.Storage.Hd.AtaProtocol.Performance

ATA Device Performance

Target Feature
Device.Storage.Hd.AtaProtocol
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64

Description

ATA Device Performance The Windows 7 Windows System Assessment Tool (WinSAT) disk formal test for the block storage device must pass the following performance requirements for any visible storage space utilization up to 95% (% of utilization as % of "used space" seen through the Windows file system).

Disk Sequential 64K Byte Read >25 MB/s

Disk Random 16K Byte Read >0.5MB/s

Disk Sequential 64K Byte Write >20 MB/s

Average Read Time with Sequential Writes <25 ms

Latency: 95th Percentile <120 ms

Latency: Maximum <700 ms

Average Read Time with Random Writes <40 ms

Additional Information

Enforcement Date
Jun. 01, 2010

Device.Storage.Hd.AtaProtocol.Protocol

ATA/ATAPI Protocol

Target Feature
Device.Storage.Hd.AtaProtocol
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

ATA/ATAPI Protocol

ATA/ATAPI controllers and devices shall comply with the following standard(s)

INCITS 397-2005 (1532D): AT Attachment with Packet Interface - 7 or later, also referred to in this document as ATA/ATAPI-7. AT Attachment with Packet Interface -8 or later will be required when this revision 8 is final and published.

ATA/ATAPI controllers shall support Windows operating system boot

ATA/ATAPI devices shall not rely on Identify Device data fields (61:60) and (103:100) to determine 28 bit or 48 bit LBA addressing support. ATA/ATAPI shall rely instead on bit 10 of word 83 and bit 10 of word 86 to identify 48 bit LBA addressing support (as per ATA/ATAPI-7).

Design notesRecommended:Reporting Nominal Media Rotation RateIf a device requires Windows defragmentation to be turned off by default, the device should report its Nominal Media Rotation Rate as 0001h Non-rotating media (e.g. solid state device) as per the ATA8-ACS1 specification, section 7.16.7.77. Justification: When the Nominal Media Rotation Rate reported by the device is anything but 0001h Non-rotating media, Windows will by default perform defragmentation of the block storage device.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Hd.DataVerification

Disk Verification Tests to ensure there is no data loss or corruption

Related Requirements
Device.Storage.Hd.DataVerification.BasicFunction

Device.Storage.Hd.DataVerification.BasicFunction

All Storage Devices will work correctly on Windows

Target Feature
Device.Storage.Hd.DataVerification
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Storage devices must reliably read and write data without data loss or data corruption

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Hd.Ehdd

Related Requirements
Device.Storage.Hd.Ehdd.Compliance

Device.Storage.Hd.Ehdd.Compliance

Encrypted Hard Drive complies with Microsoft and Industry specifications

Target Feature
Device.Storage.Hd.Ehdd
Applies to
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Encrypted Hard Drive

eDrives must be compliant with these industry specifications

IEEE 1667 version IEEE 1667-2009

Support Probe silo

Support TCG Storage silo

TCG

TCG core specification version 2.0

OPAL SSC 2.0

Programmatic TPer Reset Rev

Modifiable CommonName Column

SID Authority Disable

OPAL SSC Feature Sets

Set Additional Data Store Rev 1.05 or later

Single User Mode Rev 1.02 or later

SCSI

SPC4

SAT2

ATA

ACS2

eDrives must comply with these Windows Design Spec requirements:

Support at least AES 128

Support one or more of the following cipher modes

CBC

XTS

Support at least 8 bands

Support additional data store tables

Support range crossing

Support authenticate method

Support secret protect info

Support modifiable common name

Support TCG stack reset

Support programmatic TPer reset

Support single user mode

If SCSI devices(SPC4):-

The 1667 Version Descriptor, 0xFFC2 (IEEE 1667-2009) should be reported in the INQUIRY data. The 'Additional Length' field of the INQUIRY data must be greater than or equal to 0x38.

Security Protocol IN output must report 00, 01, 02, EE in the Supported Security Protocol List payload

If ATA devices (ACS2):-

The TrustedComputer.FeatureSupported (word 48 - bit 0 must be set to '1') must be reported in the IDENTIFY data

The AdditionalSupported.IEEE1667IDENTIFY (word 69 - bit 7 should be set to '1') must be reported in the IDENTIFY data

Trusted Receive output should report 00,01, 02, EE in the Supported Security Protocol List payload

If SATA-USB:-

Support SAT2

Command Performance:- The drive must complete the following operations within the specified duration

Operations
Max completion time
Discovery/Enumeration
24 sec (8 bands)
Activate
45 sec
Revert
8 sec
Create Band
1.5 sec
Delete Band
2 sec
Erase Band
2 sec
Set Metadata
20 sec
Get Metadata
14 sec
Lock Band
1.5 sec
Unlock Band
1.5 sec

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.EMMC

Defines the Industry and Microsoft standards that must be met.

Related Requirements
Device.Storage.Hd.EMMC.BasicFunction

Device.Storage.Hd.EMMC.BasicFunction

Emmc Basic Functionality

Target Feature
Device.Storage.Hd.EMMC
Applies to
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Must support industry standards.

eMMC 4.5.1 Requirements

Support discard/sanitize on both sector size and erase block boundaries.

Support HPI/BKOPS.

Support Packed commands.

Support HS200 signaling.

Support DDR50 signaling.

Support a RPMB of at least 128KB in size and creation of GPPs.

Support sleep (CMD5).

Support crypto offload operations (CMD53/54).

Support OS initiated cache flushing if device supports volatile cache.

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Hd.EnhancedStorage

Related Requirements
Device.Storage.Hd.EnhancedStorage.1667Compliance

Device.Storage.Hd.EnhancedStorage.1667Compliance

Enhanced Storage Devices comply with the IEEE 1667 defined standards

Target Feature
Device.Storage.Hd.EnhancedStorage
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

IEEE1667-Class (Enhanced Storage) enabled storage devices meet industry standardsEnhanced Storage devices comply with the IEEE 1667 defined standards.

Enhanced Storage device must:

Support authenticating the host

Implement support for IEEE 1667 (version 1.1 or later) defined Probe Silo on the device.

Implement at least one Certificate or Password Silo on the device.

Enhanced Storage device that implements Certificate Silo must:

Load native windows certificate silo driver

Responds to all commands of the IEEE 1667 version 1.1 specification

Verify certificate-based authentication is used to allow and block access to volume.

Enhanced Storage device that implements Password Silo must:

Load native password silo driver

Respond to all commands in the IEEE 1667 Password Silo specification

Verify password-based authentication is used to allow and block access to the volume.

Design Notes:Obtain IEEE 1667 specification from IEEE at the following location:https://go.microsoft.com/fwlink/?LinkID=110100

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Hd.FibreChannel

Related Requirements
Device.Storage.Hd.FibreChannel.Compliance

Device.Storage.Hd.FibreChannel.Compliance

Fibre Channel Devices

Target Feature
Device.Storage.Hd.FibreChannel
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Fibre Channel devices must comply with Fibre Channel Protocol for SCSI, Second Version (FCP-2) or later. To ensure interoperability at the electrical and signaling levels, Fibre Channel devices must comply with Third-Generation Fibre Channel Physical and Signaling Interface (formerly ANSI X3.303:1998).

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.Flush

Related Requirements
Device.Storage.Hd.Flush.BasicFunction

Device.Storage.Hd.Flush.BasicFunction

Flush Command Completion

Target Feature
Device.Storage.Hd.Flush
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Industry standard spec requirements:

For ATA device, FLUSH CACHE (E7h, Non-Data ) 28-bit command is optional for ATA devices and ATAPI devices. FLUSH CACHE EXT (EAh, Non-Data) 48-bit command is mandatory for devices implementing the 48-bit Address feature set

For SCSI Devices, SYNCHRONIZE CACHE (10) command and /or SYNCHRONIZE CACHE (16) command shall be implemented

Windows Design Spec requirements - HDD:

Correct Reporting of Completion: When the OS issues a flush cache command, the storage device should synchronously report Completion of the command only when the content of cache has been persisted.

Note: The requirement is not applicable to Laptop.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.Iscsi

Related Requirements
Device.Storage.Hd.Iscsi.BasicFunction

Device.Storage.Hd.Iscsi.BasicFunction

iSCSI Devices

Target Feature
Device.Storage.Hd.Iscsi
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

iSCSI devicesiSCSI devices must comply with RFC3720, RFC3721, and RFC3723.

Device must complete testing by using the Microsoft iSCSI initiator.

Device must be able to receive ping (ICMP) and send ping (ICMP).

The following iSCSI protocol features are required:

Send Targets.

Logon Authentication: CHAP and none. Targets may delegate CHAP authentication to Radius.

Discovery Session Logon key/value pairs: InitiatorName, SessionType, and AuthMethod.

Normal Session Logon key/value pairs: InitiatorName, SessionType, AuthMethod, and TargetName.

DataPDUInOrder.

DataSequenceInOrder.

DefaultTime2Wait.

DefaultTime2Retain

ErrorRecoveryLevel=0.

Targets that allow different shared secrets for different initiator names.

The following iSCSI protocol features must pass testing if they are implemented:

Mutual CHAP.

HeaderDigest: CRC32 and none.

DataDigest: CRC32 and none.

InitialR2T.

IPsec; when using IPsec, Main mode must be available. In addition, the following items are required when IPsec is implemented:

IPsec transport mode must be implemented.

Internet key exchange (IKE) implementations must support main mode and preshared keys. Target portals with the same IP address must expect the identical main mode IKE policy.

Targets and initiators must allow different preshared keys for different identifier payloads.

Targets and initiators must have static IP addresses for main mode.

Additional Standard Inquiry data VERSION DESCRIPTORS (SPC-3) are required

At least one iSCSI VERSION DESCRIPTOR is required (value = 0960h).

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.Mpio

Related Requirements
Device.Storage.Hd.Mpio.BasicFunction

Device.Storage.Hd.Mpio.BasicFunction

RAID implementations that provide a multipathing solution must comply with Microsoft multipath I/O (MPIO)

Target Feature
Device.Storage.Hd.Mpio
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Internal or external RAID implementations that provide a multipathing solution must comply with Microsoft multipath I/O (MPIO). Windows multipathing solutions must consist of a Device Specific Module (DSM) created by using the Microsoft MPIO DDK and must comply with all requirements set forth in the Multipath I/O Program Agreement.Following WMI classes must be implemented by 3rd party DSM .

DSM_QuerySupportedLBPolicies

DSM_QueryUniqyeId

3rd party DSM must report minor, major version numbers for the DSM

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.MultipleAccess

Drives that support Multiple Access must meet these requirements

Related Requirements
Device.Storage.Hd.MultipleAccess.MultiplePorts

Device.Storage.Hd.MultipleAccess.MultiplePorts

Multi-port drives must provide symmetric access

Target Feature
Device.Storage.Hd.MultipleAccess
Applies to
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Multi-port drives must support the same set of commands on all ports. Drives must not provide different behavior or degraded performance for commands based on which port used for command delivery.When drives are connected to a host via multiple paths, the drives must use Windows' Multipath IO (MPIO) solution with the Microsoft Device Specific Module (DSM).Example: Drives must provide the same performance for data access commands and the same behavior for persistent reservation commands arriving on different ports as they provide when those commands arrive on the same port.The performance degradation between any two ports should be within 10% range.Notes: Multi-port drives may be connected to one or more computer hosts via one or more paths per host. Connecting a drive to multiple hosts enables Windows to use the drive as part of a failover cluster of hosts. Connecting a drive to a single host via multiple paths enables Windows to continue to provide access to the drive in the event of cable failure. Windows supports using these connection topologies independently and jointly.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.MultipleAccess.PersistentReservation

Drives that support Persistent Reservations must meet these requirements

Related Requirements
Device.Storage.Hd.MultipleAccess.PersistentReservation.BasicFunction

Device.Storage.Hd.MultipleAccess.PersistentReservation.BasicFunction

Drives must provide persistent reservations

Target Feature
Device.Storage.Hd.MultipleAccess.PersistentReservation
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Drives must implement persistent reservations as per the SCSI-3 Primary Commands (SPC-3) specification. Windows depends on proper behavior for the below persistent reservation capabilities.

PERSISTENT RESERVE IN Read Keys (00h)

PERSISTENT RESERVE IN Read Reservation (01h)

PERSISTENT RESERVE OUT Reserve (01h)

Scope: LU_SCOPE (0h)

Type: Write Exclusive - Registrants Only (5h)

PERSISTENT RESERVE OUT Release (02h)

PERSISTENT RESERVE OUT Clear (03h)

PERSISTENT RESERVE OUT Preempt (04h)

PERSISTENT RESERVE OUT Register AND Ignore Existing Key (06h)

PERSISTENT RESERVE OUT Register (00h)

Notes: Windows can use physical disks to form a storage pool. From the storage pool, Windows can define virtual disks called storage spaces. Failover Cluster can make the pool of physical disks, the storage spaces they define, and the data they contain highly available. In addition to the standard HCT qualification physical disks should also pass the "Microsoft Cluster Configuration Validation Wizard" (ClusPrep) tool.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.OffloadedDataTransfer

Windows Offloaded Data Transfer

Related Requirements
Device.Storage.Hd.OffloadedDataTransfer.CopyOffload

Device.Storage.Hd.OffloadedDataTransfer.CopyOffload

If Copy Offload is supported these requirements must be implemented

Target Feature
Device.Storage.Hd.OffloadedDataTransfer
Applies to
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Industry standard spec requirements:

Targets that support Windows Copy Offload feature must implement T10 XCOPY Lite specification (11-059r8):

Supported VPD Pages VPD page (Must include ECOP VPD Page (Page Code 8Fh) in the Supported VPD page list)

ECOP VPD page or ECOP VPD Page (Page Code 8Fh) + Block Device ROD Limits ECOP descriptor (0000h)

Block Limit VPD Page (Page Code B0h)

According to T10 11-059r8 spec, Windows adopts 83h OP Code + 10 Service Action Code for POPULATE TOKEN and 83h OP Code + 11 Service Action Code for WRITE USING TOKEN commands.

According to T10 11-059r8 spec, Windows adopts 84h OP Code + 07 Service Action Code for RECEIVE ROD TOKEN INFORMATION command. Response service action field and command parameters shall be compliant with T10 XCOPY Lite spec (11-059r8)

Windows Design Spec requirements:

During the target device enumeration, Windows will send down an Inquiry for Supported VPD Pages VPD page. If 8F is included in Supported VPD page list, Windows will inquiry for ECOP VPD page and BLOCK LIMITs VPD page.

Implementation and Error Handling with Parameters of ECOP VPD page

The MAXIMUM RANGE DESCRIPTORS - If the number of Block Device Range Descriptors of a POPULATE TOKEN or WRITE USING TOKEN command exceeds the MAXIMUM RANGE DESCRIPTORS, copy manager shall terminate the command with CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and the additional sense code set to TOO MANY SEGMENT DESCRIPTORS.

The MAXIMUM INACTIVITY TIMER (MAXIMUM IAT) - If the INACTIVITY TIMEOUT of a POPULATE TOKEN command exceeds the MAXIMUM INACTIVITY TIMER, copy manager shall terminate the command with CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and the additional sense code set to INVALID FIELD IN PARAMETER LIST.

The MAXIMUM TOKEN TRANSFER SIZE -

If the sum of the NUMBER OF LOGICAL BLOCKS fields in all block device range descriptors of the WRITE USING TOKEN command is greater than the MAXIMUM TOKEN TRANSFER SIZE, copy manager shall terminate the command with CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and the additional sense code set to INVALID FIELD IN PARAMETER LIST.

If the sum of the NUMBER OF LOGICAL BLOCKS fields in all block device range descriptors of the POPULATE TOKEN is greater than the MAXIMUM TOKEN TRANSFER SIZE, copy manager shall terminate the command with CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and the additional sense code set to INVALID FIELD IN PARAMETER LIST.

Implementation and Error Handling with Parameters of Block Limits VPD page

The MAXIMUM TRANSFER LENGTH field indicates the maximum transfer length in blocks that the copy manager accepts for a single BLOCK DEVICE RANGE DESCRIPTOR. If a copy manager receives a request for a NUMBER OF LOGICAL BLOCKS exceeding this maximum, then the copy manager shall terminate the command with CHECK CONDITION status with the sense key set to ILLEGAL REQUEST and the additional sense code set to INVALID FIELD IN PARAMETER LIST.

Storage array must support both synchronous and asynchronous POPULATE TOKEN and WRITE USING TOKEN according to T10 11-059r8, 11-078r4 and 11-204r0 spec.

Storage array must complete synchronous POPULATE TOKEN and WRITE USING TOKEN commands in a very short time (4 seconds) without causing any SCSI command timeout.

User Experience Requirements:

Fall back to Legacy Copy - Windows copy offload operation shall be able to fall back legacy copy operation when a copy offload error or limitation is reported.

Drag and drop copy experience - must be able support drag and drop copy with copy offload capable storage target device.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.PersistentReservation

Related Requirements
Device.Storage.Hd.PersistentReservation.ClusterFailover

Device.Storage.Hd.PersistentReservation.ClusterFailover

Cluster Failover for RAID Array systems

Target Feature
Device.Storage.Hd.PersistentReservation
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Required: All Microsoft MPIO device-specific modules (DSMs) must be Windows Hardware Certification-qualified and support registering and unregistering persistent reservations across all paths.Design Notes:

All host bus adaptors (HBA) used on failover cluster nodes can use only a Windows Hardware Certification-qualified miniport driver based on the Storport miniport model.

All multipath I/O solutions leveraged on highly available failover clusters must be based on Microsoft MPIO.

It is recommended that in addition to the standard HCT qualification all solutions are also validated with the "Microsoft Cluster Configuration Validation Wizard" (ClusPrep) tool.

FC, iSCSI, and particularly serial-attached SCSI (SAS) failover cluster solutions cannot be built on RAID HBAs where cache and/or RAID configuration is machine/node specific. The RAID set information and hardware cache must reside in a single shared point that lives in an external storage controller.

SAS, FC, and iSCSI have no restrictions as to the number of nodes they support (which currently is 8nodes).

Note: Legacy parallel-SCSI server clusters were restricted to a maximum size of 2nodes.

Only SAS devices using the Serial SCSI Protocol (SSP) transport will be supported on failover clusters (including SAS JBOD or any SAS SSP RAID systems). SATA devices attached to a SAS domain must be part of a RAID system.

SATA direct attach and SATA JBOD is not supported; the system must include RAID.

If the system disks are attached to a bus type that is not a valid type for shared storage (something other then FC, iSCSI, or SAS), then the system disks and shared storage must be on separate physical controllers/host bus adaptors.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Hd.Piton

Related Requirements
Device.Storage.Hd.Piton.BasicFunction

Device.Storage.Hd.Piton.BasicFunction

Devices that implement the NV-Cache command set support industry Microsoft standards

Target Feature
Device.Storage.Hd.Piton
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Devices that implement the NV-Cache command set support industry Microsoft standards

A device or system that contains a device that implements a non-volatile memory cache and either the non-volatile memory cache (NV-Cache) command set as defined by T13 ATA-ASC or the NV Cache Manager I/O Control Codes must meet the followingcertification requirements.

This device or system is known as a device under test (DUT)

A minimum of 50-MB NV Cache must be implemented in the DUT and exposed to Windows.

The NV-Cache must be able to perform according to the following scenarios:

Scenario Block Size (512 byte aligned) Throughput

Random Read 4KB 4MB/sec

Random Write 4KB 4MB/sec

Sequential Read 64KB 16MB/sec

Sequential Write 64KB 8MB/sec (Microsoft recommends 16MB/sec)

Random Read 1MB 16MB/sec

Random Write 1MB 10MB/sec

Immediately following a transition from device power state OFF to ON the DUT must be able to service a 512 bytes IO that is pinned in the NV-Cache in less than 3 seconds. This requirement is used to ensure the boot and resume benefits of the NV-Cache are realized. This requirement does not apply to storage adapters implementing NV-Cache command set.

In normal operation, the maximum read/write latencies for data in the NV-Cache should be:

less than or equal to 3 millisecond for a random 4K block

less than or equal to 4 millisecond for a random 4.5k block

The DUT must fully comply with ATA 7.0 with all additions enumerated in "e05106r7-ACS-NV_Cache_Command_Proposal" or ATA 8.0 when ratified.

Windows must be able to perform the following tasks when the DUT is installed on a system:

Detect that the device supports the NV-Cache commands when installed.

Enter and return from NV-Cache power mode.

Pin boot LBAs to enhance boot performance.

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Hd.PortAssociation

Drives must provide port association

Related Requirements
Device.Storage.Hd.PortAssociation.BasicFunction

Device.Storage.Hd.PortAssociation.BasicFunction

Drives must provide port association

Target Feature
Device.Storage.Hd.PortAssociation
Applies to
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

A drive must report its port address for device identification VPD page 83h inquiry association type 1 (port association). This must be the same address the drive supplies to a SCSI Enclosure Services (SES) device and the SES device reports via SES diagnostic page 0Ah with protocol identifier set to 6h.Notes: Windows depends on drive enclosures to provide SCSI Enclosure Services (SES) capabilities such as drive slot identification and visual drive indications (commonly implemented as drive LEDs). Windows matches a drive in an enclosure with SES identification capabilities via the drive's port address. Computer hosts may be separate from drive enclosures or may be integrated into drive enclosures.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.RaidArray

Related Requirements
Device.Storage.Hd.RaidArray.BasicFunction
Device.Storage.Hd.RaidArray.BitLocker

Device.Storage.Hd.RaidArray.BasicFunction

RAID Array Systems

Target Feature
Device.Storage.Hd.RaidArray
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

RAID Requirements RAID systems and devices must support commands from SBC-2 (or later) regardless of the drive interface implemented. RAID controllers and RAID systems must support, at a minimum, one of: RAID1, RAID 5, RAID6 or RAID 1/0.External RAID arrays must allow a failed drive that is redundant to be replaced manually without shutting down or halting the system. This requirement includes, but is not limited to, drives in a mirror set, a physical drive being replaced by a "hot spare," and the first failed drive in a RAID level-5 array. The RAID subsystem must also allow lost data to be rebuilt without interfering with system operations. It is expected that RAID array throughput will be impacted during the rebuild.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.RaidArray.BitLocker

BitLocker must not cause data corruption on Storage Arrays

Target Feature
Device.Storage.Hd.RaidArray
Applies to
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

BitLocker must be properly enabled to protect Data volumes on Storage Arrays

Additional Information

Business Justification
(1) When a server is placed in an environment without adequate physical security, BitLocker protects data on the server against unauthorized access if a server is stolen; (2) When hosting service providers repurpose or decommission storage arrays, BitLocker Disk Encryption prevents data breach.
Enforcement Date
Aug. 15, 2011

Device.Storage.Hd.ReadZeroOnTrimUnmap

Related Requirements
Device.Storage.Hd.ReadZeroOnTrimUnmap.BasicFunction

Device.Storage.Hd.ReadZeroOnTrimUnmap.BasicFunction

The requirement applies to Hard Disk Drives

Target Feature
Device.Storage.Hd.ReadZeroOnTrimUnmap
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

If the logical block provisioning read zeros (LBPRZ) bit is set to one, then the device server shall set all bits to zero in the Data-In Buffer for read operation on an unmapped (deallocated or anchored) LBA

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.RemovableMedia

Defines requirements that must be met if the Storage Device is Removable, i.e., it has RMB bit set to 1

Related Requirements
Device.Storage.Hd.RemovableMedia.BasicFunction

Device.Storage.Hd.RemovableMedia.BasicFunction

Devices with True Removable Storage Media

Target Feature
Device.Storage.Hd.RemovableMedia
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Device with True Removable Media should report as True Removable Media (RMB=1) according to SPC-4 Revision 29, Section 6.4.2

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.Sas

Related Requirements
Device.Storage.Hd.Sas.ComplyWithIndustrySpec

Device.Storage.Hd.Sas.ComplyWithIndustrySpec

Serial Attached SCSI devices comply with industry specifications

Target Feature
Device.Storage.Hd.Sas
Applies to
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64

Description

The reference for specification compliance. Where noted as Min, the baseline specification is mandatory. Rec indicates the preferred version of the specification. If not otherwise specified, the version listed is the minimum required. Unless otherwise indicated, all features of the cited specifications that are classified as mandatory by the standards body must be implemented.

SAS-1, SAM-3, SPC-3, Min:SBC-2, Rec: SBC-3

Serial Attached SCSI devices comply with the Serial Attached SCSI (SAS) Specification 1 or later.

  • Shall not cause more than 10% IO performance degradation when the SAS storage device is used in a MPIO configuration.

  • SAS storage device shall establish a UNIT ATTENTION subsequent to detection of the following events.

    • Power On

    • Hard Reset

    • Logical Unit Reset

    • I_T Nexus loss

    • Power loss expected

SAS SSD must implement following T10 (SCSI) command specification:

Read Capacity (16)

Block Limit VPD Page (Page Code B0h)

Block Device Characteristics VPD page (Page Code B1h)

Logical Block Provisioning VPD Page (Page Code B2h)

SAS SSD must meet the following requirements:

SAS SSD target device must return MEDIUM ROTATION RATE = 0001h (Non-rotating medium)

SAS SSD target device must return Read Capacity (16) command with LBPME bit set to 1 and Provisioning Type field = 0 (000b) Not Report a Provisioning Type or 1 (001b) Resource Provisioned in the Logical Block Provisioning VPD page (Page Code B2).

SAS SSD device must implement Block Limit VPD Page (Page Code B0h) and support the following parameters:

MAXIMUM UNMAP LBA COUNT

MAXIMUM UNMAP BLOCK DESCRIPTOR COUNT

OPTIMAL UNMAP GRANULARITY

UNMAP GRANULARITY ALIGNMENT

UGAVALID Bit

SAS SSD target device must implement Logical Block Provisioning VPD Page (Page Code B2h) and support the following parameters.

LBPU bit

LBPRZ bit

Provisioning Type field.

SAS SSD must support UNMAP (10) command and the LBPU bit in LBP VPD page shall set to one.

If the LBPME bit in ReadCapacity(16) return is set to one, the SAS SSD device must support Logical Block Provisioning VPD page (Page Code B2h)

If the LBPRZ bit in ReadCapacity(16) return is set to one, the SAS SSD device must set LBPRZ bit of Logical Block Provisioning VPD page to one.

Users should be able to identify the Solid State Drive in Windows Storage Optimization utility.

Windows Defragment and Optimization Drive utility should be able to operate according to the SSD s support features

Additional Information

Business Justification
Proposed Logo requirement will ensure SAS SSD that support UNMAP command can interoperate with Windows properly; thus lowering CSS/PSS costs.
Issues and concerns:
Without a proper algorithm to identify SAS SSD, Windows file system utility will encounter many unknown risks caused by the uncertain SBC3 spec adoption issues.
Without a proper handle of UNMAP command, frequently write/delete/move operations could cause high risk of wear-leveling and reduce the life span of the SSD.
Business and User scenarios:
Enable SSD s identification and UNMAP operation design and implementation in Windows OS.
Maximize the IO efficiency and endurance of SSD device.
Enable SSD to trim disk space after files are deleted in Windows environments.
Enable file system level trim to consolidate SSD space.
Enforcement Date
Jun. 26, 2013

Device.Storage.Hd.Sata

Related Requirements
Device.Storage.Hd.Sata.BasicFunction

Device.Storage.Hd.Sata.BasicFunction

ATA Device Performance

Target Feature
Device.Storage.Hd.Sata
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

SATA Devices

Requirement: SATA devices shall meet the requirements of the Serial ATA: High Speed Serialized AT Attachment, Version 2.6 or later.

Requirement: SATA devices support hot-plug functionality

Recommendation: SATA devices should implement interface power management

Recommendation: SATA devices should implement Native Command Queuing (NCQ) support

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.Sata.HybridInformation

This feature is for all devices that support the Hybrid Information feature.

Related Requirements
Device.Storage.Hd.Sata.HybridInformation.BasicFunction

Device.Storage.Hd.Sata.HybridInformation.BasicFunction

SATAIO Hybrid Drive Requirements

Target Feature
Device.Storage.Hd.Sata.HybridInformation
Applies to
Windows 8.1 Client x86, x64

Description

The following functionalities and requirements have to be supported by the device and refer to hybrid devices in general:

If a drive reports itself as a hybrid drive, it must be comprised of a spinning disk and at least one non-volatile cache component within a single physical device.

Self-Pinning on Boot

The device shall implement a mechanism to self-pin boot files, i.e. anything prior to Windows becoming active, into the top priority level of the cache. Specifically, the drive shall self-pin in this fashion from power on until the Hybrid Information Log Page is read. The drive should cease self-pinning to the top priority after 160 MB of data has been pinned. All other self-pinning the drive performs shall occur at priority 0.

Cache Size

The hybrid cache has to provide at least 12 GB (12x2 Bytes) of useable capacity to the host.

6 priority levels (0 through 5)

The device must support at least 6 priority levels. No data placed in the cache by the host shall be evicted from ranges 1 through 5 by the device, unless Windows specifies it through calls to evict, demotebysize or trim, or issues further I/Os with priority > 0 to a full cache (i.e. cache churning).

Cache Page Replacement

The drive shall repurpose cache pages of lower priorities to satisfy I/Os at higher priorities, starting with the lowest priority. For example, if the cache is full with 25% at priority 0, 50% at priority 2, and 25% at priority 3 and a priority 3 read/write occurs that is not in cache, a priority 0 cache page should be repurposed to accommodate the priority 3 LBA that was read. Once all priority 0 cache pages are repurposed, priority 1 and 2 pages will be repurposed respectively. If no lower priority pages are available, priority 3 should repurpose pages first that are chosen by a LRU-like algorithm.

Update Priority On IO (Read/Write)

Priorities associated with LBAs in the cache must be updated on any subsequent read or write to that LBA, from any valid priority to any valid priority. In addition, if a read or write is issued to an LBA range that currently does NOT reside in cache, then it shall be placed in the cache at the specified priority (provided there is room in the cache or there are blocks of lower priority that can be evicted in case of a full cache).

Trim

The device shall support trim as defined in the Windows 8 Hardware Certification Requirements under Device.Storage.Hd.Trim.BasicFunction.

Non-volatile Cache Performance:

Sequential Read:>= 200 MB/s3,200 I/Ops @ 64 KB

Sequential Write:>= 80 MB/s1,280 I/Ops @ 64 KB

Random Read:>= 10 MB/s2,560 I/Ops @ 4 KB (Queue Depth = 1)

>= 20 MB/s5,120 I/Ops @ 4 KB (Queue Depth = 8)

Random Write:>= 5 MB/s1,280 I/Ops @ 4KB (Queue Depth = 1)

>= 10 MB/s2,560 I/Ops @ 4KB (Queue Depth = 8)

Latency:

Setting dirty high and dirty low thresholds shall complete within 1.5ms.

This command can be completed asynchronously.

I/O that carries priority information should not be significantly slower than I/O without priority information. A read or write that has a priority assigned must not incur a latency penalty larger than 10% of an identical I/O without priority information. Achieving this on 95% of all I/Os is acceptable with the penalty never exceeding 100% of a non-priority I/O.

HybridDemoteBySize and HybridChangePriorityByLBARange must return within 5ms. A possible asynchronous implementation of these commands is acceptable.

The following functionalities and requirements have to be supported by the device and refer to the Hybrid Information Feature (Version 14, Oct. 29, 2012) worked on by SATAIO:

13.7.5.4.11 MaxPriority Behavior

The MaxPriority Behavior bit must be set to 0.

13.3.15 Enable/Disable Hybrid Information

13.6.5.4.13 Hybrid Control

Enable/Disable Caching Medium

Windows must have the ability to enable and disable the hybrid cache. Upon disabling the hybrid cache, all dirty data in the cache has to be synchronized with the final storage medium.

Dirty Low Threshold

Dirty High Threshold

Dirty data should be synchronized in ascending order of priority, i.e. priority 0 dirty data should be synchronized before priority 1 dirty data is synchronized.

13.6.5.4.7 Hybrid Demote By Size

Hybrid Information feature related Logs

The device must enable Windows to read the hybrid log pages and return sensible information. In other words, General Purpose Logging is required and the version number shall be set to 0001h. Specifically:

13.7.9 Word 0x12 of General Purpose Log Directory shall be set to 1 , indicating that NCQ NON-DATA log is supported.

13.7.10 Word 0x13 of General Purpose Log Directory shall be set to 1 , indicating that NCQ SEND AND RECEIVE log is supported.

13.7.12 Word 0x14 of General Purpose Log Directory shall be set to 1 , indicating that NCQ HYBRID INFORMATION log is supported. Windows has to be able to determine the following:

Caching Medium Health Status

Dirty Low Threshold

Dirty High Threshold

Maximum Hybrid Priority Level

Max Priority Behavior

NVM size

Max Eviction Commands.

Max Eviction Data Blocks

For each Priority level:

consumed NVM size fraction,

consumed Mapping Resources Fraction

consumed NVM Size for Dirty Data Fraction

consumed Mapping Resources for dirty data fraction

13.6.5.4.1 Hybrid Evict

The LBA range specified by the Evict command shall be targeted to the primary medium like a regular write. The host will ensure consistency if necessary by issuing a subsequent flush command.

13.6.5.4.10 Hybrid Change By LBA Range

If Hybrid Change By LBA Range is called on an LBA that currently does not reside in the caching medium, the device shall not fetch it from disk.

Additional Information

Business Justification
By providing the aforementioned functionality and hardware support, Windows will be capable to properly take advantage of the non-volatile cache that exists on hybrid devices.
A large non-volatile cache of 12 GB will allow Windows to reduce flash wear, since less churn will occur in the NVC. Additionally, hibernate and hiberboot scenarios can be supported very well without negatively affecting scenarios such as application launch and run-time / write caching.
Relatively fine-grained cache management becomes possible through the support of ChangePriorityByLBARange. Not only app launch, resume and boot performance is improved due to less cache misses but also flash longevity and endurance. Updating priorities on all I/Os (reads & writes), for example, allows Windows to only update LBA ranges that are intended to change priority level in the cache. All other cache contents do not have to be touched, which keeps metadata updates on the device to a minimum, thus prolonging the flash s life expectancy.
Trim has a similar effect, whereby a trimmed region can simply be discarded by the device, as opposed to moving the region to priority 0 and have it synchronized. The absence of trim would incur more flash I/O and wear, as well as disk I/O for synchronization that could be avoided. Bitlocker will be positively affected by the Evict command, since data can be synchronized periodically during encryption as opposed to potentially forcing the entire flash area onto the disk platter at the end of a Bitlocker conversion cycle, or alternatively, completely disabling the entire hybrid feature and disabling the cache for the duration of the encryption.
Enforcement Date
Jun. 26, 2013

Device.Storage.Hd.Scsi

Related Requirements
Device.Storage.Hd.Scsi.Connectors
Device.Storage.Hd.Scsi.ParallelInterface

Device.Storage.Hd.Scsi.Connectors

SCSI Connectors

Target Feature
Device.Storage.Hd.Scsi
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

SCSI Connectors If an external connector is implemented, it must meet the requirements in SCSI or a later specification. The SCSI connector must not use the same connector type as any other non-SCSI connector on the system. All external parallel SCSI connectors must be labeled with ANSI-approved icon for the bus. For internal and external configurations, the SCSI bus cable must be plugged into shrouded and keyed connectors on the host adapter and devices. This ensures that the cable is properly positioned so the user cannot plug in cables incorrectly. For internal configurations, pin-1 orientation must be designated on one edge of the ribbon cable and also on the keyed connector for the SCSI peripheral device.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.Scsi.ParallelInterface

Parallel SCSI Interface

Target Feature
Device.Storage.Hd.Scsi
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Parallel SCSI Interface

Parallel SCSI devices and adapters comply with SCSI Parallel Interface-4 (SPI-4) or later.

Termination: Automatic termination circuit and SCSI terminators meet SPI-4 standard or later. Parallel SCSI host controllers and adapters must use automatic termination that allows a user to add external devices without removing the server case. Terminators used in the SCSI host adapter must be regulated terminators, which are also known as active, SCSI SPI-4, or Boulay terminators. SCSI termination built onto internal cables must also meet the SPI-4 specification.

Terminator power must be supplied to the SCSI bus with overcurrent protection. The host adapter must supply terminator power (TERMPWR) to the SCSI bus for system-board implementations by using PCI or another expansion bus. All terminators on the external SCSI bus must be powered from the TERMPWR lines in the SCSI bus. In addition, the circuit that supplies TERMPWR must have overcurrent protection built into it.

External removable disks, hard drives, and CD/DVD optical drives must provide automatic termination or an accessible on-board termination switch. At a minimum, a mechanical means must be provided for setting termination and the switch must be accessible to the user without opening the device chassis.

All SCSI devices supporting hot plugging must comply with annex D of SPI-4, which addresses SCSI device insertion and removal, with and without command activity.

Differential devices must support DIFFSENS as defined in SPI-4 standard or later.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.Scsi.ReliabilityCounters

Basic reliability counter functionality for disks which implement the SCSI command sets.

Related Requirements
Device.Storage.Hd.Scsi.ReliabilityCounters.BasicFunction

Device.Storage.Hd.Scsi.ReliabilityCounters.BasicFunction

Basic reliability counter functionality for disks which implement the SCSI command sets.

Target Feature
Device.Storage.Hd.Scsi.ReliabilityCounters
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

All SCSI drives must provide valid data for the below log sense page (LOG SENSE 4Dh) parameters as per the SCSI Primary Commands 4 (SPC-4) and SCSI Block Commands 3 (SBC-3) specifications.

Start-Stop Cycle Counter (0Eh)

Manufacture Date (0001h)

Read Error Counter (03h)

Total (0002h)

Total Errors Corrected (0003h)

Total Uncorrected Errors (0006h)

Temperature (0Dh)

Temperature (0000h)

Reference Temperature (0001h)

Write Error Counter (02h)

Total (0002h)

Total Errors Corrected (0003h)

Total Uncorrected Errors (0006h)

Background Scan (15h)

Background Scan Status (0000h)

Drives which physically move recording media and/or read-write devices, such as hard disk drives, must provide valid data for the below log sense page (LOG SENSE 4Dh) parameters as per the SCSI Primary Commands 4 (SPC-4) specification.

Start-Stop Cycle Counter (0Eh)

Specified Cycle Count Over Device Lifetime (0003h)

Accumulated Start-Stop Cycles (0004h)

Specified Load-Unload Count Over Device Lifetime (0005h)

Accumulated Load-Unload Cycles (0006h)

Solid-state drives must provide valid data for the below log sense page (LOG SENSE 4Dh) parameter as per the SCSI Block Commands 3 (SBC-3) specification.

Solid State Media (11h)

Percentage Used Endurance Indicator (0001h)

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.ScsiProtocol

Related Requirements
Device.Storage.Hd.ScsiProtocol.ReferenceSpec
Device.Storage.Hd.ScsiProtocol.SamCompliance
Device.Storage.Hd.ScsiProtocol.SpcCompliance

Device.Storage.Hd.ScsiProtocol.ReferenceSpec

Reference to Specifications

Target Feature
Device.Storage.Hd.ScsiProtocol
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Where noted as Min, the baseline specification is mandatory. Rec indicates the preferred version of the specification. If not otherwise specified, the version listed is the minimum required. Unless otherwise indicated, all features of the cited specifications that are classified as mandatory by the standards body must be implemented.SPI-4, SAM-3, Min:SPC-2, Rec: SPC-3, Min: SBC, Rec: SBC-2

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.ScsiProtocol.SamCompliance

SCSI Architecture Model SAM-3

Target Feature
Device.Storage.Hd.ScsiProtocol
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

SCSI Architecture Model SAM-3SCSI Devices must comply with SCSI Architecture Model SAM-3 or later (except as noted in SBP-2 for 1394 devices), including the following requirements:

All devices must support LUN reset. In particular, if two LUNs L0 and L1 under the same target have outstanding commands, a LUN reset to L0 must clear any outstanding commands to L0 only.

Following a reset, all devices must return an appropriate unit attention condition to any initiator currently having access to the logical unit.

All FC, iSCSI, SCSI, and SAS devices must support multiple initiators.

MODE SELECT commands that change parameters must cause a unit attention condition to be raised for any other initiator consistent with SAM-3.

LUN 0 must be implemented for all targets. At a minimum, LUN 0 must respond to INQUIRY and all multi-LUN targets must support the REPORT LUNS commands.

If any LUN is added or removed that is accessible to the initiator(s), the device must report a unit attention condition of (06/3F/0E) REPORT LUNS DATA HAS CHANGED MODE SELECT. Commands that change parameters must cause a unit attention condition to be raised for any other initiator that would be impacted by the change.

Any unrecognized SCSI command or incorrectly formed command descriptor block (CDB) must result in an immediate CHECK CONDITION reported back to the initiator.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.ScsiProtocol.SpcCompliance

SCSI Primary Commands (SPC-3, SPC-4 and SBC-3)

Target Feature
Device.Storage.Hd.ScsiProtocol
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

SCSI Primary Commands-3 (SPC-3), SCSI Primary Commands-4 (SPC-4) and SCSI Block Commands-3 (SBC-3)

Devices must comply with SCSI Primary Commands: support commands listed as mandatory in the SCSI Primary Commands (SPC-3 or later). In addition, each device type must implement the mandatory command set for that type (SBC-3 for block devices and so on).

For SCSI INQUIRY and REPORT LUNS commands:

All devices must support the SCSI INQUIRY command.

Multi-LUN devices must always respond to an INQUIRY command sent to LUN 0 even if LUN 0 is not implemented. This can be indicated by returning the Device Type Qualifier of 3.

All multi-LUN devices must support the REPORT LUNS command as defined in SPC-2 or later.

Windows supports only single-level logical unit numbers up to 255; see SAM-3. Use of any other format will be incorrectly interpreted, and the device may not be available or data corruption will occur.

All standard INQUIRY data must be correctly set for the device capabilities.

VERSION Field must be 04 or greater. For SAS, this field must be 05 or greater.

Drives with attached media changers must set the MChgnr bit in the standard inquiry data.

Multi-LUN units must return valid REPORT LUNS data for LUN 0.

If LUN 0 is not an accessible PERIPHERAL DEVICE TYPE, the PERIPHERAL QUALIFIER shall be returned as 1. SCSIport will not enumerate the entire target device if a qualifier of 3 is used. It is strongly recommended that LUN 0 not be type 0 because it must be exposed to all initiators. Type 0 is permitted only if the array can map different logical units to LUN 0 for each initiator.

If a device has more than one port, MultiP bit must be set and page 83h descriptors must correctly reflect the port information.

Vital Product Data (VPD) pages:

Page 00h (Supported Pages VPD Page) is required.

Page B1h (Block Device Characteristics VPD Page) is required.

Page 80h (Unit Serial Number VPD Page) is required.

Page 83h (Device Identification VPD Page) is required. For VPD Page 83, at least one type-3 or one type-2 descriptor must be returned for each logical unit, the value must use Code Set 1 (Binary), the value must be unique for that logical unit, and it must be the same value regardless of the path or port responding to the request. Appropriate descriptors for multiport devices are required in addition to that mandatory descriptor. Devices that support aliases must also support the corresponding descriptor types. Vendor-specific device identifiers, if present, must use type 0 and must follow the specified format, including correct page length;

Vendor-specific identifiers are not a substitute for the mandatory type 2/3 descriptors. All device identifiers must conform to formatting rules set forth in SPC-3 or later, even if the device claims only conformance to a previous release.

Device must comply with SPC-3 section 7.6.3 Device Identification VPD page 83h.

At least one identification descriptor must have the IDENTIFIER TYPE field set to:

2h (EUI-64-based) as defined in 7.6.3.5

3h (NAA); or as defined in 7.6.3.6

8h (SCSI name string) at defined in 7.6.3.11

SCSI Mode Sense Command and Pages

MODE SENSE (6) is mandatory for all devices except RBC devices, which implement MODE SENSE (10). The DBD bit must be supported.

Mode Page 3Fh (Return all pages mode page) is mandatory.

Device type-specific pages listed in the device-specific sections of this document.

Additional commands for all devices are as follows:

All devices must support the TEST UNIT READY and REQUEST SENSE commands.

Block Storage (Disk and RAID) Devices

Block storage (disk and RAID) devices must comply with the following requirements:

SCSI block commands (SBC) or later (RBC for 1394). These requirements apply to any device reporting as Device Type 0, including logical units exposed by a RAID controller or subsystem.

Block Devices must support the SCSI START STOP UNIT command to decrease power consumption.

READ CAPACITY (10) command. If a device has more than 2^32 - 1 sectors, a value of 0xFFFFFFFF must be returned for the RETURNED LOGICAL BLOCK ADDRESS field and the READ CAPACITY (16) command must be supported (see below).

Any change to capacity must set a unit attention condition of CAPACITY DATA HAS CHANGED for all initiators with access to the logical unit.

READ(10).

WRITE(10). Support for force unit access (FUA) is mandatory for individual physical disk drives or RAID controllers that contain volatile (non-battery-backed) cache memory and must cause the data sent with this command to be committed to physical media before the command completes.

REASSIGN BLOCKS (hard disks only). RAID controllers that handle bad block replacement should succeed this command.

VERIFY (10).

START STOP UNIT. This command must not perform any other action, such as path failover.

SYNCHRONIZE CACHE (10) (no optional fields are used). For a physical disk drive, this command causes all data in the write cache to commit to physical media if write caching is enabled. Failure to follow this can result in data corruption.

Mode pages:

Mode Page 08h (Caching mode page) with the following bits must contain valid information: WCE (Write Cache Enable), CACHE SEGMENT SIZE, and NUMBER OF CACHE SEGMENTS (optional). RBC devices support Page 6 instead of Page 8 (WCD, WRITED, FORMATD, and LOCKD bits).

If a device supports disabling write caching through the use of the WCE bit, this bit must also be reported as changeable and be supported by a MODE SELECT operation which modifies it. The status of the write caching must be visible by reading Mode Page 8. Vendors can implement caching policies outside of the limited SBC ones, and disabling of write cache does not need to be through this mode page.

Mode Page 0Ah (Control mode page) is required.

Mode Page 1Ah (Power Condition mode page) is required

Disk devices that support greater than 2-TB logical units (including 1394 disks). Devices must conform to SPC-3 and must implement all of the following in accordance with the SCSI Block Commands-2 (SBC-2) specification:

READ CAPACITY (16)

READ (16)

WRITE (16) FUA (bit must be supported if a volatile cache is present on the device)

VERIFY (16)

REASSIGN BLOCKS. LONGLBA field must be supported.

Erasable SCSI Disk Devices

Erasable SCSI disk devices must also support the following commands or features:

ERASE: Full-side and selected-block erase.

Format requirements reported with FORMAT command.

MODE SENSE (6) Total spare blocks available, write protect status.

PREVENT ALLOW MEDIUM REMOVAL and START STOP UNIT.

REASSIGN BLOCKS and READ DEFECT DATA (10).

WRITE without pre-erase, for erasable optical only.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.ThinProvisioning

Related Requirements
Device.Storage.Hd.ThinProvisioning.BasicFunction

Device.Storage.Hd.ThinProvisioning.BasicFunction

Thin Provisioning

Target Feature
Device.Storage.Hd.ThinProvisioning
Applies to
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Industry standard spec requirements:

Targets that support thin provisioning feature must implement following T10 SPC4 and SBC3 specification:

Supported VPD Page VPD Page (Page Code 00h)

Block Limit VPD Page (Page Code B0h)

Logical Block Provisioning VPD Page (Page Code B2h)

Logical Block Provisioning Log Page (Page Code 0Ch)

Windows Design Spec requirements:

Target devices with thin provisioning feature must meet the following requirements.

Must return Inquiry command for Supported VPD Page VPD Page with B0h and B2h.

Must return LBPU bit set to one and Provisioning Type field = 3 (010b) of Logical Block Provisioning VPD page (Page Code B2).

Must implement Block Limit VPD Page (Page Code B0h) and support the following parameters.

MAXIMUM UNMAP LBA COUNT

MAXIMUM UNMAP BLOCK DESCRIPTOR COUNT

OPTIMAL UNMAP GRANULARITY

UNMAP GRANULARITY ALIGNMENT

UGAVALID Bit

Must implement Logical Block Provisioning VPD Page (Page Code B2h) and support the following parameters.

Threshold Exponent

LBPU bit

LBPRZ bit

Provisioning Type field

Thin Provisioning target devices should support Log sense command to retrieve Logical Block Provisioning Log Page (Page Code 0Ch) - for adding the following information into the threshold notification system event log.

Used LBA mapping resources of a Thin Provisioning LUN.

Available LBA mapping resources to the Thin Provisioning LUN.

Storage array must support UNMAP (10) command, the LBPU bit in LBP VPD page shall set to one.

Must support Get LBA Status (16) command according to T10 SBC3 spec.

If the LBPME bit in ReadCapacity(16) return is set to one or B2h is reported in the Supported VPD Page VPD Page, the storage array must support Logical Block Provisioning VPD page (Page Code B2h)

If the LBPRZ bit in ReadCapacity(16) return is set to one, the storage array must set LBPRZ bit of Logical Block Provisioning VPD page to one.

Storage array must support threshold notification (TN), temporary resource exhaustion (TRE) and permanent resource exhaustion (PRE) through the following sense key, additional sense code and additional sense code qualifier returns as SPC4 and SBC3 specs.

TN- Sense Key/ASC/ASCQ (06/38/07)

TRE- Sense Key/ASC/ASCQ (02/04/14)

PRE- Sense Key/ASC/ASCQ (07/27/07)

User Experience Requirements:

Must be able to set threshold through vendors' storage management utility and monitor system event log when the thin provisioning soft threshold is reached.

Must support Log Sense command to retrieve LBP log page for reporting available LBA mapping resource and used LBA mapping resource information to the thin provisioning LUN, if Log Page (Page Code OCh) is implemented.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.Trim

Related Requirements
Device.Storage.Hd.Trim.BasicFunction

Device.Storage.Hd.Trim.BasicFunction

ATA Trim and SCSI Unmap Functionality

Target Feature
Device.Storage.Hd.Trim
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

If the device implements ATA non-NCQ Trim or SCSI Unmap support:

The Trim implementation shall comply with ATA ACS2 Section 7.10 (Data Set Management Commands).

The SCSI Unmap command implementation shall comply with T10 SBC3 Section 5.28 (UNMAP command).

All IO and Trim/Unmap commands shall be completed in less than 500 ms.

98.5% of IO commands shall be completed in less than 100 ms.

If the RZAT bit is set on a SATA device or the LBPRZ bit is set on a SCSI device, then the device shall return all '0's to a Read command before the trimmed block(s) is(are) re-written.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.Uas

Related Requirements
Device.Storage.Hd.Uas.Compliance

Device.Storage.Hd.Uas.Compliance

USB UAS Storage Devices

Target Feature
Device.Storage.Hd.Uas
Applies to
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

USB UASP Storage devices must also be compliant with the USB UASP v1.0 and SPC4, SBC3 USB UASP Storage devices must support the following:

Mode page code: 0x08 Mode subpage code : 00

Block Limits page - 0xB0 SPC3 6.5.3

Support at least 16 streams

Support task management commands

       Note: for further information on mode pages see SPC4: D.6 Mode page codes

Support SPC, SBC version descriptors

Support/report R02. R04 version descriptors

Device must report FIXED if it is not a true removable media (RMB=0)

Note: for further information on mode pages see SPC4: D.6 Mode page codes Data Devices must perform as indicated:

Minimum sequential write speed: 100MB/s

Minimum sequential read speed: 110MB/s

Additional Requirement: If the device supports UASP on XHCI and then it must support UASP on EHCI.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.UasOnEHCI

Related Requirements
Device.Storage.Hd.UasOnEHCI.BasicFunction

Device.Storage.Hd.UasOnEHCI.BasicFunction

USB UAS Storage Devices

Target Feature
Device.Storage.Hd.UasOnEHCI
Applies to
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

If the device supports UASP on XHCI and then it must support UASP on EHCI.

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.Usb

Related Requirements
Device.Storage.Hd.Usb.Compatibility

Device.Storage.Hd.Usb.Compatibility

USB Compatibility

Target Feature
Device.Storage.Hd.Usb
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

USB Compatibility

All USB storage devices must meet the requirements of the Universal Serial Bus Mass Storage Class Specification Overview, V1.2 Revision. This includes all USB Mass Storage class documents, including Bulk Only, Control/Bulk/Interrupt, Bootability, and UFI Command specifications.

BOT1.0, SPC-2, SBC-2

USB 3.0 devices must retain backward compatibility at the Type-A connector to allow Superspeed devices to be used, albeit at a lower speed, with USB 2.0 PCs and allow high speed devices with their existing cables to be connected to the USB 3.0 Superspeed Type-A connectors.

USB storage devices must comply with USB 3.0 - Section 11 Interoperability and Power Delivery specs. The following table lists the compatibility matrix for USB3.0 and USB2.0. The implication of identifying a host port as supporting USB3.0 is that both hardware and software support for USB3.0 is in place; otherwise the port shall only be identified as a USB2.0 port.

USB Host Port
USB Device Capability
Connected Mode
USB 2.0
USB 2.0
USB 2.0 high-speed, full-speed, or low-speed
USB 3.0
USB 2.0 high-speed
USB 3.0
USB 2.0
USB 2.0 high-speed, full-speed, or low-speed
USB 3.0
USB 3.0 SuperSpeed

USB Storage Devices must comply with certification requirement for USB devices and USB Storage Devices

Note: Please refer to USB3.0 spec section 3.1.4 USB 3.0 Architecture summary

USB3.0 Super-speed - 5 Gb/s

USB2.0 high-speed - 480 Mb/s

Full-speed - 12 Mb/s

Low-speed - 1.5 Mb/s

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Storage.Hd.Usb3

Related Requirements
Device.Storage.Hd.Usb3.Compliance

Device.Storage.Hd.Usb3.Compliance

USB 3.0 Storage Devices

Target Feature
Device.Storage.Hd.Usb3
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

USB 3.0 Storage devices support industry specifications as indicated below

All USB 3.0 Storage devices must be compliant with the USB 3.0 Version 1.0 specification

Provide unique product identification through each storage end point (BOT, UASP)

USB VID/PID

Data Devices must perform as indicated:

Minimum sequential write speed: 60MB/s

Minimum sequential read speed: 90MB/s

Additional Information

Enforcement Date
Mar. 01, 2012

Device.Storage.Hd.WindowsToGoCapableUSBDrive

Windows To Go Capable USB Drive feature

Related Requirements
Device.Storage.Hd.WindowsToGoCapableUSBDrive.WindowsToGoCapableUSBDrive

Device.Storage.Hd.WindowsToGoCapableUSBDrive.WindowsToGoCapableUSBDrive

Windows To Go Capable USB Drive

Target Feature
Device.Storage.Hd.WindowsToGoCapableUSBDrive
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64

Description

USB boot devices must be USB 3.0 and meet these industry specifications:

USB 3.0 Version 1.0 specification

USB BOT specification

SCSI Block Commands 3 (SBC-3) Specification

USB boot devices must:

Boot Windows

Operate at SuperSpeed when connected to a USB 3.0 port

Successfully enter and resume from Sleep (S3) and Hibernate (S4)

Include in the MS OS Descriptor extended property the value "WindowsBootCapable" DWORD value 1

Be at least 32 GB in size (20 GB usable)

Provide unique, consistent product identification

USB VID/PID

Inquiry Serial Number

Inquiry Model Number

Report FIXED (RMB=0)

Implement the Block Device Characteristics VPD page

Not implement IEEE-1667

Not expose more than one LUN during boot

Not support the USB Attached SCSI (UAS) protocol

If the WTG drive exposes multiple functions to the OS:

The device must be designed as a composite USB device

Composite devices must set DeviceClass, Subclass, and Protocol to 0 in the composite node's device descriptors

Must not implement any functions other than WTG Storage and Smartcard

The Storage function must be the first function exposed

Support the following mode pages

Mode page code: 0x08 Mode subpage code : 00

Meet the following performance requirements:

Random 4 KB Write IOPs >= 200 (Rotational drives exempt)

Random 4 KB Read IOPs >= 2000 (Rotational drives exempt)

Read/Write perf should scale linearly in mixed workload random access read/write

Sequential write speed >= 80 MB/s

Sequential read speed >= 80 MB/s

Max I/O Latency < 500 milliseconds

Maximum of 16 seconds sum-total of user-perceivable I/O latencies over any 1 hour period of a user-representative workload, where a user-perceivable I/O is defined as having a latency of at least 100 millisecond

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Storage.Optical

Related Requirements
Device.Storage.Optical.CdRawRecording
Device.Storage.Optical.CommandPerformance
Device.Storage.Optical.DriveDefinition
Device.Storage.Optical.Features
Device.Storage.Optical.MmcVersion
Device.Storage.Optical.Profiles
Device.Storage.Optical.RealTimeStreaming

Device.Storage.Optical.CdRawRecording

Optical Drives must support CD RAW Recording

Target Feature
Device.Storage.Optical
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Optical drives must support CD RAW Recording Mode for CD-R and CD-RW profiles.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Optical.CommandPerformance

Optical Drives must complete Performance Command within allowed time frames

Target Feature
Device.Storage.Optical
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Optical Drives must complete all commands within the maximum allowed times according to the following table.

COMMAND
Basic certification requirement (msec)
Exception (exception criteria/ msec)
GET CONFIGURATION
20
GET EVENT STATUS NOTIFICATION
20
GET PERFORMANCE
20
INQUIRY
20
MECHANISM STATUS
20
MODE SELECT
20
MODE SENSE
20
PREVENT ALLOW MEDIUM REMOVAL
20
READ TOC PMA ATIP
20
READ BUFFER CAPACITY
20
READ CAPACITY
20
READ CD1,2,4
500
READ DISC INFORMATION
50
READ FORMAT CAPACITIES
20
READ TRACK INFORMATION
20
REQUEST SENSE (when not following a command failed with error status)
20
SEND OPC INFORMATION
60000
For dual layer media, i.e. DVD+R DL, DVD-R DL, BD-RE DL / 70000
SET READ AHEAD
20
SET STREAMING
20
START STOP UNIT (Immed=1b)
20
START STOP UNIT (Eject, Immed=0b)
7000
START STOP UNIT (Inject, Immed=0b, until media is ready)
25000
DVD-RAM / 40000For dual layer media, i.e. DVD+R DL, DVD-R DL, BD-RE DL / 30000
SYNCHRONIZE CACHE (Immed=1b)
20
SYNCHRONIZE CACHE (Immed=0b)
15000
TEST UNIT READY
20
BLANK (Immed=1b)
20
BLANK (Immed=0b)
N/A
CLOSE TRACK SESSION (Immed=1b)
20
CLOSE TRACK SESSION (Immed=0b, close logical track or session, do not finalize disc)
65000
DVD+R DL, DVD-R DL / 300000DVD-R SL, DVD-RW / 180000
CLOSE TRACK SESSION (Immed=0b, finalize disc)
65000
DVD+R DL, 300000DVD-R SL, DVD-R DL DVD-RW / 900000
FORMAT UNIT (Immediate)
20
LOAD/UNLOAD MEDIUM
N/A
READ101,2,4
500
DVD-RAM / 800
READ12 (not streaming)1,2,4
500
DVD-RAM / 800
READ12 (streaming)1,2,4
100
CD at 1X / 500; CD at 2x / 350; CD at 4x / 200
READ DISC STRUCTURE6
20
READ MEDIA SERIAL NUMBER2
500
REPORT KEY
20
RESERVE TRACK
N/A
SEND CUE SHEET
N/A
SEND DISC STRUCTURE
N/A
SEND KEY
20
SET CD SPEED
20
WRITE 10 (FUA=0) 1,3
50
WRITE 12 (FUA=0) 1,3
50
WRITE BUFFER
N/A
ERASE
N/A
READ BUFFER
N/A
READ CD MSF1,2,4
500
REPAIR TRACK
N/A
SEEK10
N/A
VERIFY 10
N/A
WRITE AND VERIFY 10
N/A

"Command completion time" is defined as the time between a command leaving the Microsoft port / miniport driver and the command completion being returned to the Microsoft port / miniport driver. If the command is failed with error status, this time also includes the subsequent Request Sense command leaving the Microsoft port / miniport driver and the Request Sense command completion being returned to the Microsoft port / miniport driver.All the command execution time performance measurement should be performed on media conforming to media physical layer standard specification from associated committees - i.e. DVD Forum, BDA, DVD+RW Alliance. Also, they should be performed under normal temperature and humidity operational condition as declared in the device specification.Note: Read-Only drives will be retired from the Windows certification Program on June 01, 2010. Hence, certification requirements and tests will cease to exist for Read-Only drives on June 01, 2010. Partners who wish to receive Windows certification on systems with Read-Only drives would still be a able to. However, the Read-Only drive would fall under the "unclassified" category of devices. 1: Transfer length for the read and write performance tests is equal or smaller to a single ECC block (32 or 64 KB depending of the current media type, i.e. 64KB for CD and BD, 32KB for DVD).2: Performance tests may be exercised at any speed reported as supported by the device, including 1x media speed if so reported as supported.3: Drive must make use of write buffer and shall not delay command completion by any form of media access. If write buffer is full, drive must fail the write command with long write in progress sense information (02h/04h/08h). 4: The first hundred read I/O commands after media arrival or resume from StandBy power state or Set Cd Speed or Set Streaming are permitted a delay up to a cumulative total of 60 000 msec to complete to allow for additional spin-up time. These commands individually may take any duration up to a limit of 7 000 msec, but the cumulative time to complete all hundred commands shall not exceed 60 000 msec. Only the time between when a read command is sent to the device and that read command is completed by the device is accounted for, the time between two successive read commands is not accounted for (i.e. host delays are not measured).6: The list of disc structure codes is limited to; physical format information (Format = 0x00, Address = 0), DVD-RAM medium status (Format = 0x09, Address = 0), DVD+RW write inhibit DCB (Format = 0x30 Address = 0x57444300), write protection status (Format = 0xC0 Address = 0)7:Dual Layer Write profile will be required on 1 June 2010 for Blu-Ray drives of 9.5 mm height and smaller as well as DVD drives 7mm height and smaller. This ends the previous exception for these form factors.

Additional Information

Enforcement Date
Jun. 01, 2010

Device.Storage.Optical.DriveDefinition

How Optical Drives are Defined for certification

Target Feature
Device.Storage.Optical
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

To be an Optical Drive, the device must be defined as CD (Compact Disc) device, DVD (Digital Versatile Disc or Digital Video Disc) device, BD (Blu-Ray Disc) device or any device which identifies itself as Peripheral Device Type 5 per INCITS's T10's command set SCSI Primary Commands, SPC (any revision).

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Optical.Features

Required Optical Drive Features

Target Feature
Device.Storage.Optical
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Optical Drives must support the required Features listed below

Core Feature

Profile List Feature

Mandatory features per profile

Removable medium feature from Mt. Fuji 7

Reporting correct tray status

Power management feature

Morphing Feature

Drive Serial Number Feature

DVD CSS Feature (0106h)

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Optical.MmcVersion

Optical Drives must comply with MMC

Target Feature
Device.Storage.Optical
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Optical Drives must conform to INCITS's T10's command set, MultiMedia Command Set - 6 (MMC-6), when published. Because the publication of MMC-6 has been delayed, Optical Drives must in the interim conform to the combination of INCITS's T10's command set MultiMedia Command Set - 5 (MMC-5) and SFF's Mt. Fuji Commands for Multimedia Devices Version 7 (INF-8090i v7) until publication of MMC-6. If and when MMC-5 and INF-8090i v7 contradict each other, and the following requirements do not specify explicitly the required behavior, compliance to MMC-5 is required (with the exception of features newly defined in INF-8090i v7).

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Optical.Profiles

Required Optical Drive Profiles

Target Feature
Device.Storage.Optical
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Optical Drives must support the required profiles as listed below

CD-ROM

DVD-ROM

Removable Disk

CD-R

CD-RW

DVD-R Sequential Recording

DVD-RW Restricted Overwrite

DVD-R Dual Layer Sequential Recording

DVD+RW

DVD+R

DVD+R DL

Additional Information

Enforcement Date
Jun. 01, 2010

Device.Storage.Optical.RealTimeStreaming

Optical Drives must support Real Time Streaming

Target Feature
Device.Storage.Optical
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Optical Drives must support Real Time Streaming as required according to Profile requirements. For all recordable and rewritable profiles, the following fields shall be set accordingly: Stream Writing (SW)=1b and Write Speed Performance Descriptor (WSPD)=1b.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Storage.Optical.BluRayReader

Related Requirements
Device.Storage.Optical.BluRayReader.Profiles

Device.Storage.Optical.BluRayReader.Profiles

Required Profiles for BluRay Readers

Target Feature
Device.Storage.Optical.BluRayReader
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

BluRay Reader drives must support BD-ROM profile.

Additional Information

Enforcement Date
Jun. 01, 2010

Device.Storage.Optical.BluRayWriter

Related Requirements
Device.Storage.Optical.BluRayWriter.Profiles

Device.Storage.Optical.BluRayWriter.Profiles

Required Profiles for BluRay Writers

Target Feature
Device.Storage.Optical.BluRayWriter
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

BluRay Drives that can write must support BD-ROM, BD-R Sequential Recording and BD-RE profiles.

Additional Information

Enforcement Date
Jun. 01, 2010

Device.Storage.Optical.Sata

Related Requirements
Device.Storage.Optical.Sata.AsynchronousNotification

Device.Storage.Optical.Sata.AsynchronousNotification

Asynchronous Notification is Required for all SATA connected drives.

Target Feature
Device.Storage.Optical.Sata
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)
Windows Server 2012 R2 x64
Windows Server 2008 x86, x64,
Windows Server 2008 Release 2 x64
Windows Server 2012 x64

Description

Optical Drives that connect via the SATA bus must support Asynchronous Notification.

Additional Information

Enforcement Date
Jun. 01, 2010