Windows Hardware Certification Requirements

Windows Hardware Certification Requirements
Windows Hardware Certification
Requirements
Device
Updated: May 9, 2012
This document is provided “as-is”. Information and views expressed in this document, including
URL and other Internet Web site references, may change without notice.
This document does not provide you with any legal rights to any intellectual property in any
Microsoft product. You may copy and use this document for your internal, reference purposes. ©
2012 Microsoft. All rights reserved.
BitLocker, Direct3D, DirectInput, DirectShow, DirectSound, DirectX, Microsoft, Windows, and
Windows Server are trademarks of the Microsoft group of companies. UPnP™ is a certification
mark of the UPnP™ Implementers Corp. All other trademarks are property of their respective
owners.
Page 1 of 907
Microsoft Corporation Technical Documentation License Agreement
READ THIS! THIS IS A LEGAL AGREEMENT BETWEEN MICROSOFT CORPORATION ("MICROSOFT") AND THE RECIPIENT OF THESE
MATERIALS, WHETHER AN INDIVIDUAL OR AN ENTITY ("YOU"). IF YOU HAVE ACCESSED THIS AGREEMENT IN THE PROCESS OF
DOWNLOADING MATERIALS ("MATERIALS") FROM A MICROSOFT WEB SITE, BY CLICKING "I ACCEPT", DOWNLOADING, USING OR
PROVIDING FEEDBACK ON THE MATERIALS, YOU AGREE TO THESE TERMS. IF THIS AGREEMENT IS ATTACHED TO MATERIALS, BY
ACCESSING, USING OR PROVIDING FEEDBACK ON THE ATTACHED MATERIALS, YOU AGREE TO THESE TERMS.
For good and valuable consideration, the receipt and sufficiency of which are acknowledged, You and Microsoft agree as follows:
1. You may review these Materials only (a) as a reference to assist You in planning and designing Your product, service or technology
("Product") to interface with a Microsoft Product as described in these Materials; and (b) to provide feedback on these Materials to
Microsoft. All other rights are retained by Microsoft; this agreement does not give You rights under any Microsoft patents. You may not (i)
remove this agreement or any notices from these Materials, or (ii) give any part of these Materials, or assign or otherwise provide Your
rights under this agreement, to anyone else.
2. These Materials may contain preliminary information or inaccuracies, and may not correctly represent any associated Microsoft Product
as commercially released. All Materials are provided entirely "AS IS." To the extent permitted by law, MICROSOFT MAKES NO WARRANTY
OF ANY KIND, DISCLAIMS ALL EXPRESS, IMPLIED AND STATUTORY WARRANTIES, AND ASSUMES NO LIABILITY TO YOU FOR ANY DAMAGES
OF ANY TYPE IN CONNECTION WITH THESE MATERIALS OR ANY INTELLECTUAL PROPERTY IN THEM.
3. If You are an entity and (a) merge into another entity or (b) a controlling ownership interest in You changes, Your right to use these
Materials automatically terminates and You must destroy them.
4. You have no obligation to give Microsoft any suggestions, comments or other feedback ("Feedback") relating to these Materials.
However, any Feedback you voluntarily provide may be used in Microsoft Products and related specifications or other documentation
(collectively, "Microsoft Offerings") which in turn may be relied upon by other third parties to develop their own Products. Accordingly, if
You do give Microsoft Feedback on any version of these Materials or the Microsoft Offerings to which they apply, You agree: (a) Microsoft
may freely use, reproduce, license, distribute, and otherwise commercialize Your Feedback in any Microsoft Offering; (b) You also grant
third parties, without charge, only those patent rights necessary to enable other Products to use or interface with any specific parts of a
Microsoft Product that incorporate Your Feedback; and (c) You will not give Microsoft any Feedback (i) that You have reason to believe is
subject to any patent, copyright or other intellectual property claim or right of any third party; or (ii) subject to license terms which seek to
require any Microsoft Offering incorporating or derived from such Feedback, or other Microsoft intellectual property, to be licensed to or
otherwise shared with any third party.
5. Microsoft has no obligation to maintain confidentiality of any Microsoft Offering, but otherwise the confidentiality of Your Feedback,
including Your identity as the source of such Feedback, is governed by Your NDA.
6. This agreement is governed by the laws of the State of Washington. Any dispute involving it must be brought in the federal or state
superior courts located in King County, Washington, and You waive any defenses allowing the dispute to be litigated elsewhere. If there is
litigation, the losing party must pay the other party’s reasonable attorneys’ fees, costs and other expenses. If any part of this agreement is
unenforceable, it will be considered modified to the extent necessary to make it enforceable, and the remainder shall continue in effect.
This agreement is the entire agreement between You and Microsoft concerning these Materials; it may be changed only by a written
document signed by both You and Microsoft.
Page 2 of 907
Contents
Introduction .......................................................................................................................................... 58
Features ................................................................................................................................................ 58
Device.Audio.APO ............................................................................................................................. 58
Device.Audio.APO.MicArrayRawData ........................................................................................... 58
Device.Audio.APO.WinPEConformance ........................................................................................ 59
Device.Audio.AudioController .......................................................................................................... 60
Device.Audio.AudioController.HDAudioVersionNumber ............................................................. 60
Device.Audio.AudioController.HDControllerCompliance ............................................................. 61
Device.Audio.Base ............................................................................................................................ 62
Device.Audio.Base.AudioDriversSupportMute ............................................................................. 63
Device.Audio.Base.BasicDataFormats .......................................................................................... 64
Device.Audio.Base.ChannelMasks ................................................................................................ 65
Device.Audio.Base.DCOffset ......................................................................................................... 66
Device.Audio.Base.DevicesWorkWithoutExtraSoftware .............................................................. 66
Device.Audio.Base.DigitalStreamsNoMixing ................................................................................ 68
Device.Audio.Base.DockingStation ............................................................................................... 69
Device.Audio.Base.DRM ............................................................................................................... 70
Device.Audio.Base.EfficientBufferManagement .......................................................................... 71
Device.Audio.Base.ExposedAudioEndpointsAreFunctional.......................................................... 72
Device.Audio.Base.Fidelity ............................................................................................................ 73
Device.Audio.Base.FullDuplexOperation ...................................................................................... 75
Device.Audio.Base.HDAudioRemoveDevicePowerState .............................................................. 76
Device.Audio.Base.IMiniportWaveRTStreamNotification ............................................................ 77
Device.Audio.Base.IndependentInputOutputFormatSelection .................................................... 79
Device.Audio.Base.InitiatorTargetBlocktransferSupport.............................................................. 79
Device.Audio.Base.JackConnectorStateDescription ..................................................................... 80
Device.Audio.Base.JackDetection ................................................................................................. 81
Device.Audio.Base.KSPROPERTYAUDIOMIXLEVELTABLE .............................................................. 82
Device.Audio.Base.KSPROPERTYAUDIOVOLUMELEVEL ................................................................ 83
Device.Audio.Base.KSTopologyCompliance .................................................................................. 83
Page 3 of 907
Device.Audio.Base.NoHiddenStreamRouting ............................................................................... 85
Device.Audio.Base.NoUncontrollableStreamRouting................................................................... 86
Device.Audio.Base.NoUndiscoverableDevice ............................................................................... 87
Device.Audio.Base.PCMNonPCMForSPDIF ................................................................................... 88
Device.Audio.Base.PowerManagement ....................................................................................... 89
Device.Audio.Base.ProperUSBDescriptors ................................................................................... 90
Device.Audio.Base.RealtimeDriversSupportStandardLoopedStreaming ..................................... 90
Device.Audio.Base.ReportSupportedProperties........................................................................... 91
Device.Audio.Base.RestartWithinASpecifiedDuration.................................................................. 92
Device.Audio.Base.ResumeLatency .............................................................................................. 93
Device.Audio.Base.SamplePositionAccuracy ................................................................................ 94
Device.Audio.Base.SamplingAccuracy .......................................................................................... 95
Device.Audio.Base.TimeSynchronizedSampleRates ..................................................................... 95
Device.Audio.Base.TipRing............................................................................................................ 96
Device.Audio.Base.TwoDMAEnginesAndConnections ................................................................. 97
Device.Audio.Base.VoiceCommunicationUAA.............................................................................. 98
Device.Audio.Base.VolumeControlsIsLinear ............................................................................... 102
Device.Audio.Base.VolumeGranularity ....................................................................................... 102
Device.Audio.Base.WAVEFORMATEXTENSIBLESupport ............................................................. 103
Device.Audio.Base.WaveRTConformance .................................................................................. 104
Device.Audio.Base.WaveRTImplementation .............................................................................. 105
Device.Audio.Base.ZeroGlitch ..................................................................................................... 106
Device.Audio.Bluetooth .................................................................................................................. 106
Device.Audio.Bluetooth.AtleastOneProfileSupport ................................................................... 107
Device.Audio.Bluetooth.AutomaticReconnectAttempt ............................................................. 108
Device.Audio.Bluetooth.ConnectDisconnectBluetooth.............................................................. 108
Device.Audio.Bluetooth.DriverReqs ........................................................................................... 109
Device.Audio.Bluetooth.HandsFreeCallControl .......................................................................... 111
Device.Audio.Bluetooth.HCIDisconnect ..................................................................................... 111
Device.Audio.Bluetooth.MajorMinorClassID .............................................................................. 112
Device.Audio.HardwareAudioProcessing ....................................................................................... 113
Device.Audio.HardwareAudioProcessing.AudioHardwareOffloading ........................................ 113
Device.Audio.HardwareAudioProcessing.ETWEvent .................................................................. 119
Device.Audio.HardwareAudioProcessing.IMiniport ................................................................... 121
Page 4 of 907
Device.Audio.HDAudio.................................................................................................................... 122
Device.Audio.HDAudio.2AudioChannelsForHDMIorDisplayPort ................................................ 122
Device.Audio.HDAudio.AnalogJackDetection ............................................................................. 124
Device.Audio.HDAudio.CopyBitPolarityClarification .................................................................. 125
Device.Audio.HDAudio.DefaultAssociationNotZero ................................................................... 125
Device.Audio.HDAudio.DigitalJackDetection .............................................................................. 126
Device.Audio.HDAudio.HDAudioCodecAdditionalReqs .............................................................. 127
Device.Audio.HDAudio.HDAudioSpecCompliance...................................................................... 129
Device.Audio.HDAudio.HDMIDCN .............................................................................................. 129
Device.Audio.HDAudio.HDMIKSPROPERTYJACKSINKINFO ......................................................... 131
Device.Audio.HDAudio.INFHasDeviceID ..................................................................................... 132
Device.Audio.HDAudio.LowPowerDCN....................................................................................... 132
Device.Audio.HDAudio.OneCodecPortOneConnector ............................................................... 133
Device.Audio.HDAudio.PinConfigPortConnectivity .................................................................... 135
Device.Audio.HDAudio.PnPCodecDeviceID ................................................................................ 136
Device.Audio.HDAudio.UniqueSequenceNumbers .................................................................... 137
Device.Audio.UAACompliance ........................................................................................................ 138
Device.Audio.UAACompliance.TestUsingBluetoothClassDriver ................................................. 138
Device.Audio.UAACompliance.UAA ............................................................................................ 139
Device.Audio.USB............................................................................................................................ 139
Device.Audio.USB.HIDCommunications ..................................................................................... 140
Device.Audio.USB.HIDControls ................................................................................................... 141
Device.Audio.USB.MicArray ........................................................................................................ 142
Device.Audio.USB.USB ................................................................................................................ 142
Device.BusController.Bluetooth.Base ............................................................................................. 143
Device.BusController.Bluetooth.Base.4LeSpecification ............................................................. 143
Device.BusController.Bluetooth.Base.LeStateCombinations ..................................................... 144
Device.BusController.Bluetooth.Base.LeWhiteList ..................................................................... 145
Device.BusController.Bluetooth.Base.MicrosoftBluetoothStack ............................................... 145
Device.BusController.Bluetooth.Base.OnOffStateControllableViaSoftware .............................. 146
Device.BusController.Bluetooth.Base.Scatternet ....................................................................... 147
Device.BusController.Bluetooth.Base.ScoDataTransportLayer .................................................. 147
Device.BusController.Bluetooth.Base.SimultaneousBrEdrAndLeTraffic .................................... 148
Device.BusController.Bluetooth.Base.SpecificInformationParameters ..................................... 149
Page 5 of 907
Device.BusController.Bluetooth.Base.SupportsBluetooth21AndEdr ......................................... 149
Device.BusController.Bluetooth.NonUSB ....................................................................................... 150
Device.BusController.Bluetooth.NonUSB.Performance ............................................................. 150
Device.BusController.Bluetooth.NonUSB.ScoSupport ............................................................... 151
Device.BusController.NearFieldProximity ...................................................................................... 151
Device.BusController.NearFieldProximity.NFCCertification ....................................................... 152
Device.BusController.NearFieldProximity.ProviderImplementation.......................................... 152
Device.BusController.NearFieldProximity.ProximityReliability .................................................. 153
Device.BusController.NearFieldProximity.RangeOfActuation .................................................... 154
Device.BusController.NearFieldProximity.SessionEstablishmentPerformance ......................... 155
Device.BusController.NearFieldProximity.TaptoSetupScenario ................................................. 156
Device.BusController.NearFieldProximity.TapToUseScenarios .................................................. 156
Device.BusController.SdioController .............................................................................................. 157
Device.BusController.SdioController.ComplyWithIndustrySpec ................................................ 157
Device.BusController.SdioController.WdfKmdfDriver ................................................................ 158
Device.BusController.UsbController ............................................................................................... 159
Device.BusController.UsbController.ImplementAtLeastOneXhciSpcStructForUSB2 ................. 159
Device.BusController.UsbController.MaintainDeviceStateOnResumeS1andS3......................... 160
Device.BusController.UsbController.MustResumeWithoutForcedReset ................................... 161
Device.BusController.UsbController.PreserveDeviceStateAfterDisableEnable.......................... 162
Device.BusController.UsbController.SpecificationCompliance .................................................. 163
Device.BusController.UsbController.SuperSpeedConnectorsSupportHighFullLow ................... 164
Device.BusController.UsbController.SupportSelectiveSuspend ................................................. 164
Device.BusController.UsbController.TestedUsingMicrosoftUsbStack........................................ 165
Device.BusController.UsbController.UsbifCertification.............................................................. 166
Device.BusController.UsbController.XhciAc64Bit ....................................................................... 167
Device.BusController.UsbController.XhciAddInCardsMapPortsConsistently ............................. 168
Device.BusController.UsbController.XhciAddInCardsReportInternalDevices ............................ 170
Device.BusController.UsbController.XhciSupportDebuggingOnAllExposedPorts ...................... 171
Device.BusController.UsbController.XhciSupportMsiMsixInterrupts ........................................ 172
Device.BusController.UsbController.XhciSupportsMinimum31Streams.................................... 172
Device.BusController.UsbController.XhciSupportsRuntimePowerManagement ....................... 173
Device.BusController.UsbController.XhciVersionCompliant ...................................................... 174
Device.Connectivity.BluetoothDevices ........................................................................................... 175
Page 6 of 907
Device.Connectivity.BluetoothDevices.BluetoothDeviceIdProfileVer12 .................................... 175
Device.Connectivity.BluetoothDevices.BluetoothDeviceIdProfileVer13 .................................... 176
Device.Connectivity.BluetoothDevices.BluetoothHidLimitedDiscoverableMode ...................... 176
Device.Connectivity.BluetoothDevices.BluetoothUSBPlugandPlay............................................ 177
Device.Connectivity.BluetoothDevices.ComplementarySubsystemList ..................................... 178
Device.Connectivity.BluetoothDevices.FunctionAfterSystemSuspendCycle.............................. 178
Device.Connectivity.BluetoothDevices.HidInitiatedReconnect .................................................. 179
Device.Connectivity.BluetoothDevices.KeyboardsSupportPasskeyAuthentication ................... 180
Device.Connectivity.BluetoothDevices.RespondToServiceDiscoveryRequests .......................... 180
Device.Connectivity.BluetoothDevices.SupportBluetooth21 ..................................................... 181
Device.Connectivity.NearFieldProximity ........................................................................................ 181
Device.Connectivity.NearFieldProximity.DeviceNFCCertification .............................................. 182
Device.Connectivity.NearFieldProximity.DeviceRangeOfActuation ........................................... 183
Device.Connectivity.NearFieldProximity.DeviceTapToSetup ..................................................... 183
Device.Connectivity.NearFieldProximity.NfcForumTag .............................................................. 184
Device.Connectivity.NearFieldProximity.TouchMark ................................................................. 185
Device.Connectivity.Network.PnPX ................................................................................................ 185
Device.Connectivity.Network.PnPX.PnPX ................................................................................... 186
Device.Connectivity.Network.VerticalPairing ................................................................................. 187
Device.Connectivity.Network.VerticalPairing.VerticalPairing .................................................... 187
Device.Connectivity.Network.VerticalPairing.WCN.................................................................... 188
Device.Connectivity.PciConnected ................................................................................................. 190
Device.Connectivity.PciConnected.64BitPrefetchableBar .......................................................... 190
Device.Connectivity.PciConnected.ConfigurationSpaceCorrectlyPopulated ............................. 191
Device.Connectivity.PciConnected.ExpressCardImplementsSerialNumber ............................... 192
Device.Connectivity.PciConnected.InterruptDisableBit ............................................................. 193
Device.Connectivity.PciConnected.MsiOrMsixSupport .............................................................. 194
Device.Connectivity.PciConnected.PciAndPcixDevicesArePciCompliant ................................... 195
Device.Connectivity.PciConnected.PCIExpress ........................................................................... 195
Device.Connectivity.PciConnected.SubsystemIdsRequired ....................................................... 197
Device.Connectivity.UsbDevices ..................................................................................................... 198
Device.Connectivity.UsbDevices.Addressing .............................................................................. 199
Device.Connectivity.UsbDevices.AlternateDriver ....................................................................... 200
Device.Connectivity.UsbDevices.CompliesWithChap9 ............................................................... 201
Page 7 of 907
Device.Connectivity.UsbDevices.DebugCompliesWithDebugSpec............................................. 202
Device.Connectivity.UsbDevices.DebugCompliesWithDebugSpecUSB3 .................................... 202
Device.Connectivity.UsbDevices.DeviceAttachLessThan100ms ................................................. 203
Device.Connectivity.UsbDevices.EsdRecovery ........................................................................... 204
Device.Connectivity.UsbDevices.FunctionSuspendSelectiveSuspend ........................................ 204
Device.Connectivity.UsbDevices.InstallViaUniquePnpIdentifier ................................................ 205
Device.Connectivity.UsbDevices.IsochronousDeviceAndDriver ................................................. 206
Device.Connectivity.UsbDevices.MsOsContainerId .................................................................... 208
Device.Connectivity.UsbDevices.MustBeFunctionalAfterResume ............................................. 208
Device.Connectivity.UsbDevices.MustEnumerateOnEhciAndXhci ............................................. 209
Device.Connectivity.UsbDevices.MustNotDisconnectDuringSuspend ....................................... 210
Device.Connectivity.UsbDevices.MustResumeWithoutForcedReset ......................................... 211
Device.Connectivity.UsbDevices.MustSignalAttachWithin500ms.............................................. 212
Device.Connectivity.UsbDevices.MustSupportSuspend ............................................................. 213
Device.Connectivity.UsbDevices.PeripheralOperatesInFunctionMode ..................................... 214
Device.Connectivity.UsbDevices.PortMove500ms ..................................................................... 215
Device.Connectivity.UsbDevices.RespondAllStringRequests ..................................................... 216
Device.Connectivity.UsbDevices.ResponsesLimitedByWlengthField ......................................... 217
Device.Connectivity.UsbDevices.SerialNumbers ........................................................................ 217
Device.Connectivity.UsbDevices.SerialNumbersUseValidCharacters ........................................ 219
Device.Connectivity.UsbDevices.SuperSpeedOnConnectViaUsb3Port ...................................... 220
Device.Connectivity.UsbDevices.TestedUsingMicrosoftUsbStack ............................................. 221
Device.Connectivity.UsbDevices.Usb3CompatibleWithDownLevel ........................................... 221
Device.Connectivity.UsbDevices.UsbifCertification.................................................................... 222
Device.Connectivity.UsbDevices.UseUsbClassOnlyForControllerOrHub .................................... 223
Device.Connectivity.UsbDevices.WirelessUsbObtainsWusbLogoFromUsbif ............................. 224
Device.Connectivity.UsbDevices.WirelessUsbWiMediaAlliace .................................................. 225
Device.Connectivity.UsbHub........................................................................................................... 226
Device.Connectivity.UsbHub.CompliesWithChap11................................................................... 226
Device.Connectivity.UsbHub.IdentifyNumOfUserAccessiblePorts ............................................. 227
Device.Connectivity.UsbHub.ImplementSuperSpeedDescriptors .............................................. 228
Device.Connectivity.UsbHub.MapPortsPerUsb3Specification ................................................... 230
Device.Connectivity.UsbHub.ProvideStandardInterfacesToHostPeripherals............................. 231
Device.Connectivity.UsbHub.SuperSpeedRemainsOnAfterPortReset ....................................... 232
Page 8 of 907
Device.Connectivity.UsbHub.SupportSuspend ........................................................................... 232
Device.Connectivity.UsbHub.Usb3HubCompliesWithUsb3Spec ................................................ 233
Device.Connectivity.UsbHub.Usb3ReportPortStatusBitsCorrectly............................................. 234
Device.Connectivity.WSD................................................................................................................ 235
Device.Connectivity.WSD.DPWS ................................................................................................. 235
Device.Connectivity.WSD.DPWSExtensibility ............................................................................. 236
Device.Connectivity.WSD.MetadataExchange ........................................................................... 237
Device.Connectivity.WSD.MetadataValid................................................................................... 238
Device.Connectivity.WSD.Schema .............................................................................................. 238
Device.Connectivity.WSD.WSDiscovery...................................................................................... 240
Device.DevFund.CDA ...................................................................................................................... 240
Device.DevFund.CDA.Application ............................................................................................... 241
Device.DevFund.Color..................................................................................................................... 241
Device.DevFund.Color.DeviceColorProfilesInstall ...................................................................... 242
Device.DevFund.DriverFramework.AllDrivers ................................................................................ 243
Device.DevFund.DriverFramework.AllDrivers.WDFLoadGroup ................................................. 243
Device.DevFund.DriverFramework.KMDF ...................................................................................... 244
Device.DevFund.DriverFramework.KMDF.HandleDDIFailures ................................................... 244
Device.DevFund.DriverFramework.KMDF.Reliability ................................................................. 245
Device.DevFund.DriverFramework.KMDF.WDFProperINF ......................................................... 247
Device.DevFund.DriverFramework.KMDF.WDFRedistributables ............................................... 251
Device.DevFund.DriverFramework.UMDF...................................................................................... 252
Device.DevFund.DriverFramework.UMDF.Reliability ................................................................. 253
Device.DevFund.DriverFramework.UMDF.WDFProperINF ........................................................ 254
Device.DevFund.DriverFramework.UMDF.WDFRedistributables .............................................. 258
Device.DevFund.Firmware .............................................................................................................. 260
Device.DevFund.Firmware.UpdateDriverPackage ...................................................................... 260
Device.DevFund.INF ........................................................................................................................ 261
Device.DevFund.INF.AddReg ...................................................................................................... 262
Device.DevFund.INF.AddService ................................................................................................. 264
Device.DevFund.INF.ClassInstall32 ............................................................................................. 265
Device.DevFund.INF.ComplexDeviceMatching........................................................................... 266
Device.DevFund.INF.DDInstall.CoInstallers ................................................................................ 267
Device.DevFund.INF.DeviceConfigOnly ...................................................................................... 269
Page 9 of 907
Device.DevFund.INF.DeviceResourceConfig ............................................................................... 270
Device.DevFund.INF.FileCopyRestriction.................................................................................... 271
Device.DevFund.INF.FileOrRegistryModification........................................................................ 272
Device.DevFund.INF.InstallManagement ................................................................................... 273
Device.DevFund.INF.LegacySyntax ............................................................................................. 274
Device.DevFund.INF.TargetOSVersion........................................................................................ 274
Device.DevFund.Memory ............................................................................................................... 275
Device.DevFund.Memory.DriverFootprint ................................................................................. 276
Device.DevFund.Memory.NXPool............................................................................................... 276
Device.DevFund.Reliability ............................................................................................................. 277
Device.DevFund.Reliability.BasicReliabilityAndPerformance ..................................................... 278
Device.DevFund.Reliability.BasicSecurity ................................................................................... 280
Device.DevFund.Reliability.BootDriverEmbeddedSignature ...................................................... 281
Device.DevFund.Reliability.DriverInstallUninstallReinstall ......................................................... 282
Device.DevFund.Reliability.DriverUninstallInstallOtherDeviceStability ..................................... 284
Device.DevFund.Reliability.NoReplacingSysComponents .......................................................... 285
Device.DevFund.Reliability.NormalOpWithDEP ......................................................................... 285
Device.DevFund.Reliability.PnPIDs ............................................................................................. 287
Device.DevFund.Reliability.PnPIRPs ........................................................................................... 289
Device.DevFund.Reliability.ProperINF ........................................................................................ 290
Device.DevFund.Reliability.RemoteDesktopServices ................................................................. 291
Device.DevFund.Reliability.S3S4SleepStates .............................................................................. 292
Device.DevFund.Reliability.Signable ........................................................................................... 294
Device.DevFund.Reliability.SWDeviceInstallsUsePnPAPIs .......................................................... 295
Device.DevFund.Reliability.X64Support ..................................................................................... 296
Device.DevFund.Reliability.3rdParty .............................................................................................. 298
Device.DevFund.Reliability.3rdParty.FormerTests ..................................................................... 298
Device.DevFund.Reliability.Interrupts ............................................................................................ 299
Device.DevFund.Reliability.Interrupts.BasicReliabilityAndPerformance.................................... 299
Device.DevFund.ReliabilityDisk....................................................................................................... 300
Device.DevFund.ReliabilityDisk.IOCompletionCancellation ....................................................... 300
Device.DevFund.Security ................................................................................................................ 302
Device.DevFund.Security.NoTDIFilterAndLSP ............................................................................. 302
Device.DevFund.Server ................................................................................................................... 303
Page 10 of 907
Device.DevFund.Server.CommandLineConfigurable .................................................................. 303
Device.DevFund.Server.MultipleProcessorGroups ..................................................................... 305
Device.DevFund.Server.ServerPowerManagement ................................................................... 307
Device.DevFund.Server.PCI ............................................................................................................. 308
Device.DevFund.Server.PCI.PCIAER ............................................................................................ 308
Device.DevFund.Server.StaticTools ................................................................................................ 309
Device.DevFund.Server.StaticTools.SDVandPFD ........................................................................ 309
Device.Digitizer.Base....................................................................................................................... 310
Device.Digitizer.Base.DigitizersAppearAsHID ............................................................................. 310
Device.Digitizer.Base.HighQualityDigitizerInput ......................................................................... 311
Device.Digitizer.Pen ........................................................................................................................ 312
Device.Digitizer.Pen.100HzSampleRate ...................................................................................... 313
Device.Digitizer.Pen.ContactAccuracy ........................................................................................ 313
Device.Digitizer.Pen.HoverAccuracy ........................................................................................... 314
Device.Digitizer.Pen.PenRange ................................................................................................... 315
Device.Digitizer.Pen.PenResolution ............................................................................................ 315
Device.Digitizer.Touch .................................................................................................................... 316
Device.Digitizer.Touch.5TouchPointMinimum ........................................................................... 316
Device.Digitizer.Touch.Bezel ....................................................................................................... 317
Device.Digitizer.Touch.DigitizerConnectsOverUSBOrI2C ........................................................... 318
Device.Digitizer.Touch.DigitizerJitter .......................................................................................... 319
Device.Digitizer.Touch.ExtraInputBehavior ................................................................................ 320
Device.Digitizer.Touch.FieldFirmwareUpdatable ....................................................................... 320
Device.Digitizer.Touch.HIDCompliantFirmware ......................................................................... 321
Device.Digitizer.Touch.HighQualityTouchDigitizerInput ............................................................ 322
Device.Digitizer.Touch.HighResolutionTimeStamp .................................................................... 323
Device.Digitizer.Touch.InputSeparation ..................................................................................... 324
Device.Digitizer.Touch.NoiseSuppression................................................................................... 325
Device.Digitizer.Touch.PhysicalDimension ................................................................................. 326
Device.Digitizer.Touch.PhysicalInputPosition ............................................................................. 327
Device.Digitizer.Touch.PowerStates ........................................................................................... 327
Device.Digitizer.Touch.ReportingRate ........................................................................................ 328
Device.Digitizer.Touch.ResponseLatency ................................................................................... 329
Device.Digitizer.Touch.TouchResolution .................................................................................... 330
Page 11 of 907
Device.Digitizer.Touch.ZAxisAllowance ...................................................................................... 330
Device.Display.Monitor................................................................................................................... 331
Device.Display.Monitor.Base ...................................................................................................... 331
Device.Display.Monitor.ColorimetricTolerance.......................................................................... 332
Device.Display.Monitor.DigitalLinkProtection ............................................................................ 334
Device.Display.Monitor.EDID ...................................................................................................... 335
Device.Display.Monitor.Modes .................................................................................................. 337
Device.Display.Monitor.Stereoscopic3DModes ......................................................................... 339
Device.Graphics.AdapterBase ......................................................................................................... 340
Device.Graphics.AdapterBase.ApplicationVerifier ..................................................................... 340
Device.Graphics.AdapterBase.DriverVersion.............................................................................. 341
Device.Graphics.AdapterBase.PowerManagementCompliance................................................. 343
Device.Graphics.AdapterBase.RegistryEntries............................................................................ 344
Device.Graphics.AdapterBase.SubsystemResettable ................................................................. 346
Device.Graphics.AdapterRender..................................................................................................... 347
Device.Graphics.AdapterRender.MinimumDirectXLevel ............................................................ 347
Device.Graphics.AdapterRender.RGBFrameBuffer .................................................................... 348
Device.Graphics.AdapterRender.YUVSupport ............................................................................ 349
Device.Graphics.AdapterRender.D3D101Core ............................................................................... 349
Device.Graphics.AdapterRender.D3D101Core.D3D101CorePrimary ......................................... 349
Device.Graphics.AdapterRender.D3D101WDDM11 ....................................................................... 350
Device.Graphics.AdapterRender.D3D101WDDM11.D3D101v11Primary .................................. 351
Device.Graphics.AdapterRender.D3D101WDDM12 ....................................................................... 352
Device.Graphics.AdapterRender.D3D101WDDM12.D3D101v12Primary .................................. 352
Device.Graphics.AdapterRender.D3D10ComputeShader .............................................................. 353
Device.Graphics.AdapterRender.D3D10ComputeShader.D3D10CoreC ..................................... 353
Device.Graphics.AdapterRender.D3D10Core ................................................................................. 354
Device.Graphics.AdapterRender.D3D10Core.D3D10CorePrimary ............................................. 355
Device.Graphics.AdapterRender.D3D10D3D11LogicOps ............................................................... 356
Device.Graphics.AdapterRender.D3D10D3D11LogicOps.D3D10CoreD ..................................... 356
Device.Graphics.AdapterRender.D3D10Multisampling4X ............................................................. 357
Device.Graphics.AdapterRender.D3D10Multisampling4X.D3D10CoreA.................................... 357
Device.Graphics.AdapterRender.D3D10Multisampling8X ............................................................. 358
Device.Graphics.AdapterRender.D3D10Multisampling8X.D3D10CoreB.................................... 358
Page 12 of 907
Device.Graphics.AdapterRender.D3D10WDDM11 ......................................................................... 359
Device.Graphics.AdapterRender.D3D10WDDM11.D3D10v11Primary ...................................... 359
Device.Graphics.AdapterRender.D3D10WDDM12 ......................................................................... 361
Device.Graphics.AdapterRender.D3D10WDDM12.D3D10v12Primary ...................................... 361
Device.Graphics.AdapterRender.D3D10WDDM12.Stereoscopic3DArraySupport ..................... 363
Device.Graphics.AdapterRender.D3D111Core ............................................................................... 365
Device.Graphics.AdapterRender.D3D111Core.D3D111CorePrimary ......................................... 365
Device.Graphics.AdapterRender.D3D11Core ................................................................................. 366
Device.Graphics.AdapterRender.D3D11Core.D3D11CorePrimary ............................................. 367
Device.Graphics.AdapterRender.D3D11DoublePrecisionShader ................................................... 368
Device.Graphics.AdapterRender.D3D11DoublePrecisionShader.D3D11CoreC ......................... 368
Device.Graphics.AdapterRender.D3D11DriverCommandLists ....................................................... 369
Device.Graphics.AdapterRender.D3D11DriverCommandLists.D3D11CoreB ............................. 369
Device.Graphics.AdapterRender.D3D11DriverConcurrentObjectCreation .................................... 370
Device.Graphics.AdapterRender.D3D11DriverConcurrentObjectCreation.D3D11CoreA .......... 370
Device.Graphics.AdapterRender.D3D11Level9WDDM12 .............................................................. 371
Device.Graphics.AdapterRender.D3D11Level9WDDM12.D3D9UMDDIUpdate......................... 371
Device.Graphics.AdapterRender.D3D11PartialPrecision................................................................ 372
Device.Graphics.AdapterRender.D3D11PartialPrecision.D3D11CoreE ...................................... 372
Device.Graphics.AdapterRender.D3D11WDDM12 ......................................................................... 373
Device.Graphics.AdapterRender.D3D11WDDM12.D3D11v12Primary ...................................... 373
Device.Graphics.AdapterRender.D3D11WDDM12DoublePrecisionShader ................................... 375
Device.Graphics.AdapterRender.D3D11WDDM12DoublePrecisionShader.D3D11v12C ........... 375
Device.Graphics.WDDM.................................................................................................................. 376
Device.Graphics.WDDM.Base ..................................................................................................... 376
Device.Graphics.WDDM.Checklist .............................................................................................. 377
Device.Graphics.WDDM.GPUFenceCommands.......................................................................... 379
Device.Graphics.WDDM.Display ..................................................................................................... 380
Device.Graphics.WDDM.Display.Base ........................................................................................ 380
Device.Graphics.WDDM.Display.GammaCorrection .................................................................. 381
Device.Graphics.WDDM.Display.HotPlugDetection ................................................................... 382
Device.Graphics.WDDM.Display.I2CSupport .............................................................................. 384
Device.Graphics.WDDM.Display.MediaCenterResolutionTiming............................................... 385
Device.Graphics.WDDM.Display.Multimon ................................................................................ 386
Page 13 of 907
Device.Graphics.WDDM.Display.ResetToVGA ............................................................................ 388
Device.Graphics.WDDM.Display.HDMIorDPDCNs .......................................................................... 389
Device.Graphics.WDDM.Display.HDMIorDPDCNs.DCNCompliance ........................................... 389
Device.Graphics.WDDM.Display.TVOut.......................................................................................... 392
Device.Graphics.WDDM.Display.TVOut.Base ............................................................................. 392
Device.Graphics.WDDM.Display.TVOut.DAC .............................................................................. 393
Device.Graphics.WDDM.Display.TVOut.Encoder ....................................................................... 393
Device.Graphics.WDDM.DisplayRender ......................................................................................... 394
Device.Graphics.WDDM.DisplayRender.Base ............................................................................. 394
Device.Graphics.WDDM.DisplayRender.OutputProtection ........................................................ 395
Device.Graphics.WDDM.DisplayRender.Stability ....................................................................... 397
Device.Graphics.WDDM.DisplayRender.OutputProtection............................................................ 398
Device.Graphics.WDDM.DisplayRender.OutputProtection.Windows7 ..................................... 398
Device.Graphics.WDDM.Render ..................................................................................................... 400
Device.Graphics.WDDM.Render.Base ........................................................................................ 400
Device.Graphics.WDDM.Render.VideoDecoding ....................................................................... 401
Device.Graphics.WDDM.Render.VideoProcessing ..................................................................... 403
Device.Graphics.WDDM.Render.Windows7.VideoDecoding ..................................................... 405
Device.Graphics.WDDM11.............................................................................................................. 406
Device.Graphics.WDDM11.Base ................................................................................................. 406
Device.Graphics.WDDM11.Display ................................................................................................. 407
Device.Graphics.WDDM11.Display.Base .................................................................................... 408
Device.Graphics.WDDM11.DisplayRender ..................................................................................... 408
Device.Graphics.WDDM11.DisplayRender.Base......................................................................... 409
Device.Graphics.WDDM11.DisplayRender.D3D9Overlay ............................................................... 409
Device.Graphics.WDDM11.DisplayRender.D3D9Overlay.D3D9Overlay .................................... 410
Device.Graphics.WDDM11.Render ................................................................................................. 411
Device.Graphics.WDDM11.Render.Base .................................................................................... 411
Device.Graphics.WDDM11.Render.ContentProtection .................................................................. 411
Device.Graphics.WDDM11.Render.ContentProtection.ContentProtection ............................... 412
Device.Graphics.WDDM11.Render.DXVAHD .................................................................................. 413
Device.Graphics.WDDM11.Render.DXVAHD.DXVAHD ............................................................... 413
Device.Graphics.WDDM12.............................................................................................................. 414
Device.Graphics.WDDM12.Base ................................................................................................. 414
Page 14 of 907
Device.Graphics.WDDM12.Display ................................................................................................. 418
Device.Graphics.WDDM12.Display.Base .................................................................................... 418
Device.Graphics.WDDM12.Display.ContainerIDSupport............................................................ 421
Device.Graphics.WDDM12.Display.DisplayOutputControl......................................................... 422
Device.Graphics.WDDM12.Display.ModeEnumeration ............................................................. 424
Device.Graphics.WDDM12.Display.PnpStopStartSupport.......................................................... 426
Device.Graphics.WDDM12.Display.ProvideLinearFrameBuffer ................................................. 428
Device.Graphics.WDDM12.DisplayOnly ......................................................................................... 429
Device.Graphics.WDDM12.DisplayOnly.Base ............................................................................. 429
Device.Graphics.WDDM12.DisplayRender ..................................................................................... 433
Device.Graphics.WDDM12.DisplayRender.Base......................................................................... 433
Device.Graphics.WDDM12.DisplayRender.ProcessingStereoscopicVideoContent ........................ 437
Device.Graphics.WDDM12.DisplayRender.ProcessingStereoscopicVideoContent.ProcessingStere
oscopicVideoContent .................................................................................................................. 438
Device.Graphics.WDDM12.DisplayRender.RuntimePowerMgmt .................................................. 439
Device.Graphics.WDDM12.DisplayRender.RuntimePowerMgmt.RuntimePowerMgmt ........... 439
Device.Graphics.WDDM12.Render ................................................................................................. 440
Device.Graphics.WDDM12.Render.Base .................................................................................... 440
Device.Graphics.WDDM12.Render.D3D11VideoDecoding ........................................................ 443
Device.Graphics.WDDM12.Render.D3D11VideoProcessing ...................................................... 445
Device.Graphics.WDDM12.Render.DirectFlip ............................................................................ 448
Device.Graphics.WDDM12.Render.FlipOnVSyncMmIo .............................................................. 449
Device.Graphics.WDDM12.Render.OfferReclaim ....................................................................... 450
Device.Graphics.WDDM12.Render.PreemptionGranularity ...................................................... 452
Device.Graphics.WDDM12.Render.TDRResiliency ..................................................................... 453
Device.Graphics.WDDM12.Render.UMDLogging ....................................................................... 455
Device.Graphics.WDDM12.Render.XPSRasterizationConformance ........................................... 456
Device.Graphics.WDDM12.RenderOnly ......................................................................................... 457
Device.Graphics.WDDM12.RenderOnly.Base ............................................................................. 457
Device.Graphics.WDDM12.StandbyHibernateFlags ....................................................................... 460
Device.Graphics.WDDM12.StandbyHibernateFlags.StandbyHibernateFlags ............................. 460
Device.Graphics.XDDM ................................................................................................................... 461
Device.Graphics.XDDM.Stability ................................................................................................. 462
Device.Imaging.Printer.Base ........................................................................................................... 462
Page 15 of 907
Device.Imaging.Printer.Base.applicationVerifier ........................................................................ 463
Device.Imaging.Printer.Base.autoConfiguration ........................................................................ 465
Device.Imaging.Printer.Base.ConfigurationFiles ......................................................................... 466
Device.Imaging.Printer.Base.connectionRecovery ..................................................................... 467
Device.Imaging.Printer.Base.connectivityRobustness ................................................................ 468
Device.Imaging.Printer.Base.deviceCapabilities ......................................................................... 469
Device.Imaging.Printer.Base.DocumentProperties .................................................................... 469
Device.Imaging.Printer.Base.driverCategory .............................................................................. 470
Device.Imaging.Printer.Base.DriverEventFiles ............................................................................ 471
Device.Imaging.Printer.Base.driverIsolation............................................................................... 471
Device.Imaging.Printer.Base.driverPackage ............................................................................... 472
Device.Imaging.Printer.Base.driverStability ............................................................................... 473
Device.Imaging.Printer.Base.faxModem .................................................................................... 474
Device.Imaging.Printer.Base.faxTIA592 ...................................................................................... 474
Device.Imaging.Printer.Base.faxV34 ........................................................................................... 475
Device.Imaging.Printer.Base.GDLFile .......................................................................................... 476
Device.Imaging.Printer.Base.infFile ............................................................................................ 476
Device.Imaging.Printer.Base.jobCancellation ............................................................................. 478
Device.Imaging.Printer.Base.metadata ...................................................................................... 478
Device.Imaging.Printer.Base.portMonitors ................................................................................ 479
Device.Imaging.Printer.Base.PrinterExtension ........................................................................... 480
Device.Imaging.Printer.Base.printerInterfaces ........................................................................... 481
Device.Imaging.Printer.Base.PrintProcessor .............................................................................. 481
Device.Imaging.Printer.Base.printRegions ................................................................................. 482
Device.Imaging.Printer.Base.printTicket..................................................................................... 483
Device.Imaging.Printer.Base.rendering ...................................................................................... 484
Device.Imaging.Printer.Base.TCPMon ........................................................................................ 486
Device.Imaging.Printer.Cluster ....................................................................................................... 486
Device.Imaging.Printer.Cluster.cluster ....................................................................................... 487
Device.Imaging.Printer.OXPS .......................................................................................................... 488
Device.Imaging.Printer.OXPS.OXPS ............................................................................................ 488
Device.Imaging.Printer.USB ............................................................................................................ 489
Device.Imaging.Printer.USB.CompatID ....................................................................................... 489
Device.Imaging.Printer.USB.JSBidiExtender ............................................................................... 490
Page 16 of 907
Device.Imaging.Printer.WSD ........................................................................................................... 491
Device.Imaging.Printer.WSD.CompatID...................................................................................... 491
Device.Imaging.Printer.WSD.Rally .............................................................................................. 492
Device.Imaging.Printer.WSD.WSPrint ......................................................................................... 493
Device.Imaging.Printer.XPS............................................................................................................. 494
Device.Imaging.Printer.XPS.XPS .................................................................................................. 494
Device.Imaging.Scanner.Base ......................................................................................................... 496
Device.Imaging.Scanner.Base.dataTransfer ............................................................................... 497
Device.Imaging.Scanner.Base.driverInstallation......................................................................... 499
Device.Imaging.Scanner.Base.errorHandling.............................................................................. 500
Device.Imaging.Scanner.Base.metadata..................................................................................... 502
Device.Imaging.Scanner.Base.MFPmultiplePorts ....................................................................... 503
Device.Imaging.Scanner.Base.RawFileFormat ............................................................................ 504
Device.Imaging.Scanner.Base.scannerInterfaces ....................................................................... 505
Device.Imaging.Scanner.Base.statusMessages........................................................................... 505
Device.Imaging.Scanner.Base.wia20 .......................................................................................... 506
Device.Imaging.Scanner.Base.WIAArchitecture ......................................................................... 507
Device.Imaging.Scanner.Base.WIAProperties............................................................................. 508
Device.Imaging.Scanner.DistributedScanManagement ................................................................. 509
Device.Imaging.Scanner.DistributedScanManagement.DistributedScanManagement ............. 509
Device.Imaging.Scanner.WSD ......................................................................................................... 509
Device.Imaging.Scanner.WSD.Rally ............................................................................................ 509
Device.Imaging.Scanner.WSD.WSScan ....................................................................................... 510
Device.Input.FingerPrintReader...................................................................................................... 511
Device.Input.FingerPrintReader.Base ......................................................................................... 512
Device.Input.FingerPrintReader.Extensions ............................................................................... 513
Device.Input.FingerPrintReader.ManagementApps ................................................................... 514
Device.Input.FingerPrintReader.SensorEngineDB ...................................................................... 515
Device.Input.FingerPrintReader.WBDI ....................................................................................... 517
Device.Input.GameController.CommonController ......................................................................... 519
Device.Input.GameController.CommonController.XInput ......................................................... 520
Device.Input.GameController.GenericController ........................................................................... 521
Device.Input.GameController.GenericController.DirectInput .................................................... 521
Device.Input.HID ............................................................................................................................. 521
Page 17 of 907
Device.Input.HID.I2CProtocolSpecCompliant ............................................................................. 522
Device.Input.HID.UsbSpecificationCompliant............................................................................. 522
Device.Input.Keyboard.................................................................................................................... 524
Device.Input.Keyboard.BrowserMultimediaKeysUseMSApis ..................................................... 524
Device.Input.Keyboard.DynamicKeyboards................................................................................ 525
Device.Input.Keyboard.HotKeyFunctionAPI ............................................................................... 527
Device.Input.Keyboard.KernelModeDriversUseWdfKmdf.......................................................... 528
Device.Input.Keyboard.LogoFlagKey .......................................................................................... 529
Device.Input.Keyboard.MultipleKeyboard ................................................................................. 530
Device.Input.Keyboard.ScanCode ............................................................................................... 531
Device.Input.PointDraw .................................................................................................................. 532
Device.Input.PointDraw.KernelModeDriversUseWdfKmdf ........................................................ 532
Device.Input.Sensor.Accelerometer ............................................................................................... 533
Device.Input.Sensor.Accelerometer.SensorDataType ................................................................ 533
Device.Input.Sensor.Accelerometer.SensorReportInterval ........................................................ 534
Device.Input.Sensor.Accelerometer.ShakeEvent ....................................................................... 535
Device.Input.Sensor.ALS ................................................................................................................. 536
Device.Input.Sensor.ALS.SupportRequiredData ......................................................................... 536
Device.Input.Sensor.Base ............................................................................................................... 538
Device.Input.Sensor.Base.SupportDataTypesAndProperties ..................................................... 538
Device.Input.Sensor.Compass ........................................................................................................ 541
Device.Input.Sensor.Compass.InclinometerDataType ............................................................... 541
Device.Input.Sensor.Compass.SensorDataType ......................................................................... 543
Device.Input.Sensor.Compass.SensorReportInterval ................................................................. 544
Device.Input.Sensor.DeviceOrientation.......................................................................................... 545
Device.Input.Sensor.DeviceOrientation.SensorDataType .......................................................... 545
Device.Input.Sensor.Gyroscope ...................................................................................................... 546
Device.Input.Sensor.Gyroscope.SensorDataType ...................................................................... 546
Device.Input.Sensor.Gyroscope.SensorReportInterval .............................................................. 548
Device.Input.Sensor.Location ......................................................................................................... 549
Device.Input.Sensor.Location.SupportRequiredDataFieldsForReport ....................................... 549
Device.Input.Sensor.Presence ........................................................................................................ 552
Device.Input.Sensor.Presence.SensorDataType ......................................................................... 552
Device.Input.SmartCardMiniDriver................................................................................................. 554
Page 18 of 907
Device.Input.SmartCardMiniDriver.DoNotStopWhenResourcesAreUnavailable ....................... 554
Device.Input.SmartCardMiniDriver.SpecsAndCertifications ...................................................... 555
Device.Input.SmartCardMiniDriver.SupportMultipleInstancesOnASystem ............................... 557
Device.Input.SmartCardReader ...................................................................................................... 558
Device.Input.SmartCardReader.PinDataEntryKeyboardCompliesWithIso ................................. 558
Device.Input.SmartCardReader.SmartCardService..................................................................... 559
Device.Input.SmartCardReader.Supports258And259BytePackets............................................. 559
Device.Input.SmartCardReader.SupportsDirectAndInverseConvention .................................... 560
Device.Input.SmartCardReader.SupportsInsertionAndRemovalMonitor .................................. 561
Device.Input.SmartCardReader.SupportsMinClockFrequency ................................................... 562
Device.Input.SmartCardReader.SupportsMinDataRateOf9600bps ............................................ 562
Device.Input.SmartCardReader.SupportsNegotiableAndSpecificModes ................................... 563
Device.Input.SmartCardReader.SupportsResetCommand ......................................................... 564
Device.Input.SmartCardReader.UsbCcidCompliesWithUsbDeviceClassSpec ............................. 565
Device.Input.SmartCardReader.UsbCcidIssuesNak .................................................................... 566
Device.Media.DMR.AV .................................................................................................................... 567
Device.Media.DMR.AV.AVC ........................................................................................................ 567
Device.Media.DMR.AV.WMV...................................................................................................... 569
Device.Media.DMR.Base................................................................................................................. 570
Device.Media.DMR.Base.ChangingFriendlyName ...................................................................... 571
Device.Media.DMR.Base.ContentPlaybackWithoutUserInput ................................................... 572
Device.Media.DMR.Base.DeviceInformation.............................................................................. 574
Device.Media.DMR.Base.DisplayedMetadata ............................................................................ 575
Device.Media.DMR.Base.DLNA15CertificationCompliance ........................................................ 576
Device.Media.DMR.Base.DMPPlayback...................................................................................... 578
Device.Media.DMR.Base.DMPSelectionOfAdvertisedResources ............................................... 579
Device.Media.DMR.Base.DMRStateAfterFindingAnError........................................................... 581
Device.Media.DMR.Base.EndOfStream ...................................................................................... 582
Device.Media.DMR.Base.Events ................................................................................................. 583
Device.Media.DMR.Base.MetaDataPackage .............................................................................. 584
Device.Media.DMR.Base.MetadataSize ..................................................................................... 585
Device.Media.DMR.Base.OptionalFieldsEntries ......................................................................... 586
Device.Media.DMR.Base.PausingAStream ................................................................................. 587
Device.Media.DMR.Base.PlaybackPerformance ........................................................................ 589
Page 19 of 907
Device.Media.DMR.Base.PlayBackPerformanceConstrainedBandwidth ................................... 590
Device.Media.DMR.Base.PlaysMediaContinuously .................................................................... 591
Device.Media.DMR.Base.ProtocolInfoField ................................................................................ 592
Device.Media.DMR.Base.ResponseToSetAVTransportURIActions ............................................. 594
Device.Media.DMR.Base.SeekOperations .................................................................................. 595
Device.Media.DMR.Base.SendsSSDPByeByeMessage ................................................................ 597
Device.Media.DMR.Base.SetNextAVTransportURI ..................................................................... 598
Device.Media.DMR.Base.VolumeControl ................................................................................... 600
Device.Media.DMR.Base.WakeOnLAN ....................................................................................... 602
Device.Media.DMR.Base.WiFiDirectSupport .............................................................................. 603
Device.Media.DMR.Base.WMDRMNDLinkProtectionSupport ................................................... 604
Device.Media.DMR.Image .............................................................................................................. 605
Device.Media.DMR.Image.JPEG.................................................................................................. 605
Device.Media.DMS.Audio ............................................................................................................... 606
Device.Media.DMS.Audio.AACAudioStreaming ......................................................................... 607
Device.Media.DMS.Audio.AlbumArt........................................................................................... 608
Device.Media.DMS.Audio.MP3AudioStreaming......................................................................... 609
Device.Media.DMS.Audio.WMAStreaming ................................................................................ 611
Device.Media.DMS.AV .................................................................................................................... 613
Device.Media.DMS.AV.AVCVideoStreaming............................................................................... 613
Device.Media.DMS.AV.ThumbnailImagesForTheAVMediaClass ................................................ 614
Device.Media.DMS.AV.WMVStreaming ..................................................................................... 615
Device.Media.DMS.Base ................................................................................................................. 617
Device.Media.DMS.Base.ChangingFriendlyName ...................................................................... 618
Device.Media.DMS.Base.DeviceInformation .............................................................................. 619
Device.Media.DMS.Base.DLNA15CertificationCompliance ........................................................ 620
Device.Media.DMS.Base.LowPowerModeSupport .................................................................... 621
Device.Media.DMS.Base.MetaDataPackage............................................................................... 622
Device.Media.DMS.Base.MultipleHTTPConnections .................................................................. 623
Device.Media.DMS.Base.OptionalFieldsEntries.......................................................................... 624
Device.Media.DMS.Base.Performance ....................................................................................... 624
Device.Media.DMS.Base.RangeRequests ................................................................................... 626
Device.Media.DMS.Base.SearchOperations ............................................................................... 627
Device.Media.DMS.Base.StreamsContinuously.......................................................................... 629
Page 20 of 907
Device.Media.DMS.Base.WakeOnLAN ....................................................................................... 630
Device.Media.DMS.Image............................................................................................................... 631
Device.Media.DMS.Image.JPEGImageTransfer .......................................................................... 631
Device.Media.DMS.Image.ThumbnailImagesForTheImageMediaClass ..................................... 632
Device.Network.DevFund ............................................................................................................... 633
Device.Network.DevFund.NdisVersion ....................................................................................... 633
Device.Network.DevFund.NdisVersionLegacy ............................................................................ 634
Device.Network.DevFund.NPOS ................................................................................................. 635
Device.Network.DevFund.SelectiveSuspend .............................................................................. 636
Device.Network.LAN.Base .............................................................................................................. 636
Device.Network.LAN.Base.100MbOrGreater ............................................................................. 637
Device.Network.LAN.Base.32MulticastAddresses ...................................................................... 637
Device.Network.LAN.Base.AdvProperties .................................................................................. 638
Device.Network.LAN.Base.AnyBoundary.................................................................................... 639
Device.Network.LAN.Base.IPv4AndIPv6OffloadParity................................................................ 640
Device.Network.LAN.Base.NDISCalls .......................................................................................... 640
Device.Network.LAN.Base.NDISRequirements ........................................................................... 641
Device.Network.LAN.Base.PacketFiltering ................................................................................. 642
Device.Network.LAN.Base.PreserveOSServices .......................................................................... 643
Device.Network.LAN.Base.PriorityVLAN ..................................................................................... 643
Device.Network.LAN.Base.ShortPacketPadding ......................................................................... 644
Device.Network.LAN.Base.SupportIEEEE8023............................................................................ 645
Device.Network.LAN.ChecksumOffload ......................................................................................... 646
Device.Network.LAN.ChecksumOffload.ChecksumOffload ........................................................ 646
Device.Network.LAN.CS .................................................................................................................. 647
Device.Network.LAN.CS.NetworkWake ...................................................................................... 647
Device.Network.LAN.CS.PresenceOffload .................................................................................. 648
Device.Network.LAN.CS.WakeEvents ......................................................................................... 649
Device.Network.LAN.CS.WakeReasonDetection ........................................................................ 650
Device.Network.LAN.DCB ............................................................................................................... 651
Device.Network.LAN.DCB.DCB.................................................................................................... 651
Device.Network.LAN.GRE ............................................................................................................... 652
Device.Network.LAN.GRE.GREPacketTaskOffloads .................................................................... 652
Device.Network.LAN.IPsec .............................................................................................................. 653
Page 21 of 907
Device.Network.LAN.IPsec.IPsec ................................................................................................ 653
Device.Network.LAN.KRDMA.......................................................................................................... 654
Device.Network.LAN.KRDMA.KRDMA ........................................................................................ 655
Device.Network.LAN.LargeSendOffload ......................................................................................... 655
Device.Network.LAN.LargeSendOffload.LargeSendOffload ....................................................... 656
Device.Network.LAN.PM................................................................................................................. 656
Device.Network.LAN.PM.PowMgmtNDIS ................................................................................... 657
Device.Network.LAN.PM.WakeOnLANPatterns ......................................................................... 658
Device.Network.LAN.PM.WakePacket........................................................................................ 659
Device.Network.LAN.RSC ................................................................................................................ 660
Device.Network.LAN.RSC.RSC ..................................................................................................... 660
Device.Network.LAN.RSS ................................................................................................................ 660
Device.Network.LAN.RSS.RSS ..................................................................................................... 661
Device.Network.LAN.RSS.SetHashFunctionTypeAndValue ........................................................ 662
Device.Network.LAN.RSS.SupportIndirectionTablesSizes .......................................................... 663
Device.Network.LAN.RSS.SupportToeplitzHashFunction ........................................................... 664
Device.Network.LAN.RSS.SupportUpdatesToRSSInfo ................................................................ 665
Device.Network.LAN.SRIOV ............................................................................................................ 666
Device.Network.LAN.SRIOV.SRIOV ............................................................................................. 666
Device.Network.LAN.SRIOV.VF ....................................................................................................... 668
Device.Network.LAN.SRIOV.VF.VF .............................................................................................. 668
Device.Network.LAN.TCPChimney .................................................................................................. 669
Device.Network.LAN.TCPChimney.ComplyWithNDIS ................................................................. 669
Device.Network.LAN.TCPChimney.ComplyWithTCPIPProtocol .................................................. 670
Device.Network.LAN.TCPChimney.HandlesOutOfOrderData..................................................... 676
Device.Network.LAN.TCPChimney.ImplementSufficientlyGranularTimers ................................ 676
Device.Network.LAN.TCPChimney.NeighborStateObjTimestampsComplyWithWDK ................ 677
Device.Network.LAN.TCPChimney.Support1024Connections.................................................... 678
Device.Network.LAN.TCPChimney.Support64bitAddresses ....................................................... 678
Device.Network.LAN.VMQ.............................................................................................................. 679
Device.Network.LAN.VMQ.VirtualMachineQueues ................................................................... 679
Device.Network.MobileBroadband.CDMA ..................................................................................... 681
Device.Network.MobileBroadband.CDMA.ComplyWithBaseReq .............................................. 681
Device.Network.MobileBroadband.CDMA.FWComplyWithMBSpec ......................................... 682
Page 22 of 907
Device.Network.MobileBroadband.CDMA.IdentityMorphing ................................................... 683
Device.Network.MobileBroadband.CDMA.ImplementSMS ....................................................... 684
Device.Network.MobileBroadband.CDMA.Loopback................................................................. 685
Device.Network.MobileBroadband.CDMA.MultiCarrierFunctionality ....................................... 686
Device.Network.MobileBroadband.CDMA.SupportUSBSelectiveSuspend ................................ 687
Device.Network.MobileBroadband.CDMA.SupportWakeOnMB................................................ 687
Device.Network.MobileBroadband.FirmwareUpdater .................................................................. 688
Device.Network.MobileBroadband.FirmwareUpdater.FirmwareUpgrade ................................ 688
Device.Network.MobileBroadband.GSM........................................................................................ 689
Device.Network.MobileBroadband.GSM.ComplyWithBaseReq................................................. 689
Device.Network.MobileBroadband.GSM.EAPSIM ...................................................................... 691
Device.Network.MobileBroadband.GSM.FWComplyWithMBSpec ............................................ 691
Device.Network.MobileBroadband.GSM.IdentityMorphing ...................................................... 692
Device.Network.MobileBroadband.GSM.ImplementSMS .......................................................... 693
Device.Network.MobileBroadband.GSM.Loopback ................................................................... 694
Device.Network.MobileBroadband.GSM.MultiCarrierFunctionality .......................................... 695
Device.Network.MobileBroadband.GSM.SupportFastDormancy .............................................. 696
Device.Network.MobileBroadband.GSM.SupportUSBSelectiveSuspend ................................... 696
Device.Network.MobileBroadband.GSM.SupportWakeOnMB .................................................. 697
Device.Network.MobileBroadband.GSM.USSD .......................................................................... 698
Device.Network.Router .................................................................................................................. 698
Device.Network.Router.BasicCompatibility ................................................................................ 699
Device.Network.Router.BasicPerf............................................................................................... 700
Device.Network.Router.ConeOrRestrictedNAT .......................................................................... 701
Device.Network.Router.GetTotalBytesPerf ................................................................................ 701
Device.Network.Router.GetTotalBytesSupport .......................................................................... 702
Device.Network.Router.NATLoopback ....................................................................................... 703
Device.Network.Router.PnPXUPnPSupport................................................................................ 704
Device.Network.Router.PresentationURLPnPProperty .............................................................. 705
Device.Network.Router.UPnPIGD ............................................................................................... 705
Device.Network.Router.UPnPPortMappings .............................................................................. 706
Device.Network.Router.WCNDynamicPIN.................................................................................. 707
Device.Network.Router.WFACertified ........................................................................................ 707
Device.Network.Router.WPSVer2 .............................................................................................. 708
Page 23 of 907
Device.Network.Router.WPSVer2PushButton............................................................................ 708
Device.Network.WLAN.Base ........................................................................................................... 709
Device.Network.WLAN.Base.ConformToNDIS ............................................................................ 710
Device.Network.WLAN.Base.ImplementD0PacketCoalescing .................................................... 710
Device.Network.WLAN.Base.ImplementVoicePersonalWMMPowerSave ................................. 711
Device.Network.WLAN.Base.MeetPerformanceReq .................................................................. 711
Device.Network.WLAN.Base.MeetScanAndConnReq ................................................................ 712
Device.Network.WLAN.Base.MinimizeCPUUtilization................................................................ 714
Device.Network.WLAN.Base.OnlyWDFOrNDIS630Calls ............................................................. 715
Device.Network.WLAN.Base.PassWiFiAllianceCertification ....................................................... 716
Device.Network.WLAN.Base.PermitIEToRequestAndResponseAF............................................. 717
Device.Network.WLAN.Base.SupportFiltering32MulticastAddresses ........................................ 718
Device.Network.WLAN.Base.SupportIEEE80211w ..................................................................... 718
Device.Network.WLAN.Base.SupportMultiDeviceInstances ...................................................... 719
Device.Network.WLAN.Base.SupportPromiscuousAndMulticastPacketFiltering....................... 719
Device.Network.WLAN.Base.SupportSeparateBeaconAndProbeIE ........................................... 720
Device.Network.WLAN.Base.SupportVirtualWiFi ....................................................................... 721
Device.Network.WLAN.Base.SupportWiFiAutoSaveMode ......................................................... 721
Device.Network.WLAN.Base.TransmitPacketsOnAnyBoundary................................................. 722
Device.Network.WLAN.CSBBase ..................................................................................................... 723
Device.Network.WLAN.CSBBase.ConformToNDIS ...................................................................... 723
Device.Network.WLAN.CSBBase.ImplementVoicePersonalWMMPowerSave ........................... 724
Device.Network.WLAN.CSBBase.MeetPerformanceReq ............................................................ 724
Device.Network.WLAN.CSBBase.MeetScanAndConnReq .......................................................... 725
Device.Network.WLAN.CSBBase.MinimizeCPUUtilization ......................................................... 727
Device.Network.WLAN.CSBBase.MustSupportD0PacketCoalescing .......................................... 728
Device.Network.WLAN.CSBBase.OnlyWDFOrNDIS630Calls ....................................................... 729
Device.Network.WLAN.CSBBase.PassWiFiAllianceCertification ................................................. 729
Device.Network.WLAN.CSBBase.PermitIEToRequestAndResponseAF....................................... 730
Device.Network.WLAN.CSBBase.SupportFiltering32MulticastAddresses .................................. 731
Device.Network.WLAN.CSBBase.SupportIEEE80211w ............................................................... 731
Device.Network.WLAN.CSBBase.SupportPromiscuousAndMulticastPacketFiltering ................ 732
Device.Network.WLAN.CSBBase.SupportSeparateBeaconAndProbeIE ..................................... 733
Device.Network.WLAN.CSBBase.SupportVirtualWiFi ................................................................. 733
Page 24 of 907
Device.Network.WLAN.CSBBase.SupportWiFiAutoSaveMode ................................................... 734
Device.Network.WLAN.CSBBase.TransmitPacketsOnAnyBoundary .......................................... 734
Device.Network.WLAN.CSBNLO ..................................................................................................... 735
Device.Network.WLAN.CSBNLO.SupportNetworkListOffload .................................................... 735
Device.Network.WLAN.CSBSoftAP ................................................................................................. 736
Device.Network.WLAN.CSBSoftAP.SupportSoftAP ..................................................................... 736
Device.Network.WLAN.CSBWiFiDirect ........................................................................................... 737
Device.Network.WLAN.CSBWiFiDirect.SupportAtLeast2WiFiDirectPortsConcurrently ............. 737
Device.Network.WLAN.CSBWiFiDirect.SupportAtLeast4Clients ................................................ 738
Device.Network.WLAN.CSBWoWLAN............................................................................................. 738
Device.Network.WLAN.CSBWoWLAN.MustSupportWakeOnWLAN .......................................... 739
Device.Network.WLAN.NLO............................................................................................................ 740
Device.Network.WLAN.NLO.SupportNetworkListOffload .......................................................... 740
Device.Network.WLAN.SoftAP........................................................................................................ 740
Device.Network.WLAN.SoftAP.SupportSoftAP ........................................................................... 741
Device.Network.WLAN.WiFiDirect ................................................................................................. 741
Device.Network.WLAN.WiFiDirect.SupportAtLeast2WiFiDirectPortsConcurrently ................... 742
Device.Network.WLAN.WiFiDirect.SupportAtLeast4Clients....................................................... 742
Device.Network.WLAN.WoWLAN ................................................................................................... 743
Device.Network.WLAN.WoWLAN.ImplementWakeOnWLAN .................................................... 743
Device.Portable.Core ...................................................................................................................... 744
Device.Portable.Core.AudioCodec .............................................................................................. 745
Device.Portable.Core.CustomDeviceServices ............................................................................. 746
Device.Portable.Core.DeviceServices ......................................................................................... 748
Device.Portable.Core.MediaSync................................................................................................ 750
Device.Portable.Core.ModelID ................................................................................................... 752
Device.Portable.Core.MTP .......................................................................................................... 753
Device.Portable.Core.MTPFunctionality ..................................................................................... 760
Device.Portable.Core.MTPMultiSession ..................................................................................... 761
Device.Portable.Core.MTPObjectProperties .............................................................................. 762
Device.Portable.Core.MTPStreams............................................................................................. 765
Device.Portable.Core.TransportBluetooth ................................................................................. 766
Device.Portable.Core.TransportIP .............................................................................................. 767
Device.Portable.Core.TransportIPDLNA ..................................................................................... 769
Page 25 of 907
Device.Portable.Core.TransportUSB ........................................................................................... 770
Device.Portable.Core.VideoCodec .............................................................................................. 772
Device.Portable.DigitalCamera ....................................................................................................... 776
Device.Portable.DigitalCamera.MTP........................................................................................... 776
Device.Portable.DigitalVideoCamera.............................................................................................. 781
Device.Portable.DigitalVideoCamera.MTP ................................................................................. 781
Device.Portable.MediaPlayer ......................................................................................................... 785
Device.Portable.MediaPlayer.MTP ............................................................................................. 786
Device.Portable.MobilePhone ........................................................................................................ 791
Device.Portable.MobilePhone.MTP ............................................................................................ 791
Device.Storage.Controller ............................................................................................................... 796
Device.Storage.Controller.BasicFunction ................................................................................... 796
Device.Storage.Controller.ClassCode ......................................................................................... 797
Device.Storage.Controller.InfFile ................................................................................................ 798
Device.Storage.Controller.MiniportDriverModel ....................................................................... 799
Device.Storage.Controller.Ata ........................................................................................................ 800
Device.Storage.Controller.Ata.Interface ..................................................................................... 800
Device.Storage.Controller.Boot ...................................................................................................... 801
Device.Storage.Controller.Boot.BasicFunction ........................................................................... 802
Device.Storage.Controller.Boot.BitLocker .................................................................................. 803
Device.Storage.Controller.BootDeviceGreaterThan ....................................................................... 803
Device.Storage.Controller.BootDeviceGreaterThan.BasicFunction ........................................... 803
Device.Storage.Controller.Fc .......................................................................................................... 805
Device.Storage.Controller.Fc.Interface ....................................................................................... 805
Device.Storage.Controller.Fcoe ...................................................................................................... 806
Device.Storage.Controller.Fcoe.Interface ................................................................................... 806
Device.Storage.Controller.Fcoe.Interoperability ........................................................................ 807
Device.Storage.Controller.Flush ..................................................................................................... 808
Device.Storage.Controller.Flush.BasicFunction .......................................................................... 808
Device.Storage.Controller.Iscsi ....................................................................................................... 809
Device.Storage.Controller.Iscsi.Interface.................................................................................... 809
Device.Storage.Controller.Iscsi.iSCSIBootComponent.................................................................... 811
Device.Storage.Controller.Iscsi.iSCSIBootComponent.FwTable ................................................. 811
Device.Storage.Controller.Optical .................................................................................................. 813
Page 26 of 907
Device.Storage.Controller.Optical.BasicFunction ....................................................................... 813
Device.Storage.Controller.PassThroughSupport ............................................................................ 814
Device.Storage.Controller.PassThroughSupport.BasicFunction ................................................. 814
Device.Storage.Controller.Raid ....................................................................................................... 815
Device.Storage.Controller.Raid.BasicFunction ........................................................................... 815
Device.Storage.Controller.Sas......................................................................................................... 816
Device.Storage.Controller.Sas.Interface ..................................................................................... 816
Device.Storage.Controller.Sata ....................................................................................................... 817
Device.Storage.Controller.Sata.Interface ................................................................................... 817
Device.Storage.Enclosure ............................................................................................................... 818
Device.Storage.Enclosure.DirectAccess ...................................................................................... 818
Device.Storage.Enclosure.DriveIdentification ............................................................................ 819
Device.Storage.Hd........................................................................................................................... 820
Device.Storage.Hd.BasicFunction ............................................................................................... 820
Device.Storage.Hd.PhysicalSectorSizeReportsAccurately .......................................................... 821
Device.Storage.Hd.1394.................................................................................................................. 823
Device.Storage.Hd.1394.Compliance.......................................................................................... 823
Device.Storage.Hd.Alua .................................................................................................................. 824
Device.Storage.Hd.Alua.Compliance .......................................................................................... 824
Device.Storage.Hd.Ata .................................................................................................................... 825
Device.Storage.Hd.Ata.BasicFunction ......................................................................................... 825
Device.Storage.Hd.Ata.Dma........................................................................................................ 826
Device.Storage.Hd.AtaProtocol ...................................................................................................... 826
Device.Storage.Hd.AtaProtocol.Performance ............................................................................ 827
Device.Storage.Hd.AtaProtocol.Protocol .................................................................................... 828
Device.Storage.Hd.DataVerification ............................................................................................... 829
Device.Storage.Hd.DataVerification.BasicFunction .................................................................... 829
Device.Storage.Hd.Ehdd ................................................................................................................. 830
Device.Storage.Hd.Ehdd.Compliance ......................................................................................... 830
Device.Storage.Hd.EnhancedStorage ............................................................................................. 833
Device.Storage.Hd.EnhancedStorage.1667Compliance ............................................................. 833
Device.Storage.Hd.FibreChannel .................................................................................................... 834
Device.Storage.Hd.FibreChannel.Compliance ............................................................................ 835
Device.Storage.Hd.Flush ................................................................................................................. 835
Page 27 of 907
Device.Storage.Hd.Flush.BasicFunction ...................................................................................... 835
Device.Storage.Hd.Hybrid ............................................................................................................... 836
Device.Storage.Hd.Hybrid.Piton ................................................................................................. 837
Device.Storage.Hd.Iscsi ................................................................................................................... 838
Device.Storage.Hd.Iscsi.BasicFunction........................................................................................ 838
Device.Storage.Hd.Mpio ................................................................................................................. 840
Device.Storage.Hd.Mpio.BasicFunction ...................................................................................... 840
Device.Storage.Hd.MultipleAccess ................................................................................................. 841
Device.Storage.Hd.MultipleAccess.MultiplePorts ...................................................................... 841
Device.Storage.Hd.MultipleAccess.PersistentReservation ............................................................. 842
Device.Storage.Hd.MultipleAccess.PersistentReservation.BasicFunction ................................. 843
Device.Storage.Hd.OffloadedDataTransfer .................................................................................... 844
Device.Storage.Hd.OffloadedDataTransfer.CopyOffload ........................................................... 844
Device.Storage.Hd.PersistentReservation ...................................................................................... 846
Device.Storage.Hd.PersistentReservation.ClusterFailover ......................................................... 846
Device.Storage.Hd.PortAssociation ................................................................................................ 848
Device.Storage.Hd.PortAssociation.BasicFunction ..................................................................... 848
Device.Storage.Hd.RaidArray .......................................................................................................... 849
Device.Storage.Hd.RaidArray.BasicFunction .............................................................................. 849
Device.Storage.Hd.RaidArray.BitLocker ...................................................................................... 850
Device.Storage.Hd.ReadZeroOnTrimUnmap .................................................................................. 850
Device.Storage.Hd.ReadZeroOnTrimUnmap.BasicFunction ....................................................... 851
Device.Storage.Hd.Sas .................................................................................................................... 851
Device.Storage.Hd.Sas.ComplyWithIndustrySpec ...................................................................... 851
Device.Storage.Hd.Sata................................................................................................................... 852
Device.Storage.Hd.Sata.BasicFunction ....................................................................................... 852
Device.Storage.Hd.Scsi.................................................................................................................... 853
Device.Storage.Hd.Scsi.Connectors ............................................................................................ 854
Device.Storage.Hd.Scsi.ParallelInterface .................................................................................... 854
Device.Storage.Hd.ScsiProtocol ...................................................................................................... 856
Device.Storage.Hd.ScsiProtocol.ReferenceSpec ......................................................................... 856
Device.Storage.Hd.ScsiProtocol.SamCompliance ....................................................................... 857
Device.Storage.Hd.ScsiProtocol.SpcCompliance ........................................................................ 858
Device.Storage.Hd.ThinProvisioning ............................................................................................... 862
Page 28 of 907
Device.Storage.Hd.ThinProvisioning.BasicFunction ................................................................... 862
Device.Storage.Hd.Trim .................................................................................................................. 864
Device.Storage.Hd.Trim.BasicFunction ....................................................................................... 864
Device.Storage.Hd.Uas.................................................................................................................... 865
Device.Storage.Hd.Uas.Compliance............................................................................................ 865
Device.Storage.Hd.UasOnEHCI ....................................................................................................... 866
Device.Storage.Hd.UasOnEHCI.BasicFunction ............................................................................ 867
Device.Storage.Hd.Usb ................................................................................................................... 867
Device.Storage.Hd.Usb.Compatibility ......................................................................................... 868
Device.Storage.Hd.Usb3 ................................................................................................................. 869
Device.Storage.Hd.Usb3.Compliance ......................................................................................... 869
Device.Storage.Hd.WindowsToGoCapableUSBDrive ...................................................................... 870
Device.Storage.Hd.WindowsToGoCapableUSBDrive.WindowsToGoCapableUSBDrive ............. 870
Device.Storage.Optical .................................................................................................................... 872
Device.Storage.Optical.CdRawRecording ................................................................................... 872
Device.Storage.Optical.CommandPerformance ......................................................................... 873
Device.Storage.Optical.DriveDefinition ...................................................................................... 876
Device.Storage.Optical.Features................................................................................................. 877
Device.Storage.Optical.MmcVersion .......................................................................................... 878
Device.Storage.Optical.Profiles................................................................................................... 879
Device.Storage.Optical.RealTimeStreaming ............................................................................... 880
Device.Storage.Optical.BluRayReader ............................................................................................ 881
Device.Storage.Optical.BluRayReader.Profiles ........................................................................... 881
Device.Storage.Optical.BluRayWriter ............................................................................................. 882
Device.Storage.Optical.BluRayWriter.Profiles ............................................................................ 882
Device.Storage.Optical.Sata ............................................................................................................ 883
Device.Storage.Optical.Sata.AsynchronousNotification ............................................................. 883
Device.Streaming.HMFT ................................................................................................................. 884
Device.Streaming.HMFT.Decoding ............................................................................................. 884
Device.Streaming.HMFT.Encoding .............................................................................................. 887
Device.Streaming.Webcam.Base .................................................................................................... 897
Device.Streaming.Webcam.Base.AVStreamWDMAndInterfaceRequirements.......................... 897
Device.Streaming.Webcam.Base.BasicPerf ................................................................................ 899
Device.Streaming.Webcam.Base.DirectShowAndMediaFoundation ......................................... 900
Page 29 of 907
Device.Streaming.Webcam.Base.KSCategoryVideoCameraRegistration ................................... 900
Device.Streaming.Webcam.Base.MultipleClientAppSupport..................................................... 901
Device.Streaming.Webcam.Base.SurpriseRemoval .................................................................... 902
Device.Streaming.Webcam.Base.UsageIndicator ....................................................................... 902
Device.Streaming.Webcam.H264 ................................................................................................... 903
Device.Streaming.Webcam.H264.H264Support ......................................................................... 903
Device.Streaming.Webcam.NonMSDriver ...................................................................................... 904
Device.Streaming.Webcam.NonMSDriver.VideoInfoHeader2 ................................................... 904
Device.Streaming.Webcam.USBClassDriver ................................................................................... 905
Device.Streaming.Webcam.USBClassDriver.UVC ....................................................................... 905
Device.Streaming.Webcam.USBClassDriver.UVCDriver ............................................................. 906
Features ................................................................................................................................................ 58
Device.Audio.APO ............................................................................................................................. 58
Device.Audio.APO.MicArrayRawData ........................................................................................... 58
Device.Audio.APO.WinPEConformance ........................................................................................ 59
Device.Audio.AudioController .......................................................................................................... 60
Device.Audio.AudioController.HDAudioVersionNumber ............................................................. 60
Device.Audio.AudioController.HDControllerCompliance ............................................................. 61
Device.Audio.Base ............................................................................................................................ 62
Device.Audio.Base.AudioDriversSupportMute ............................................................................. 63
Device.Audio.Base.BasicDataFormats .......................................................................................... 64
Device.Audio.Base.ChannelMasks ................................................................................................ 65
Device.Audio.Base.DCOffset ......................................................................................................... 66
Device.Audio.Base.DevicesWorkWithoutExtraSoftware .............................................................. 66
Device.Audio.Base.DigitalStreamsNoMixing ................................................................................ 68
Device.Audio.Base.DockingStation ............................................................................................... 69
Device.Audio.Base.DRM ............................................................................................................... 70
Device.Audio.Base.EfficientBufferManagement .......................................................................... 71
Device.Audio.Base.ExposedAudioEndpointsAreFunctional.......................................................... 72
Device.Audio.Base.Fidelity ............................................................................................................ 73
Device.Audio.Base.FullDuplexOperation ...................................................................................... 75
Device.Audio.Base.HDAudioRemoveDevicePowerState .............................................................. 76
Device.Audio.Base.IMiniportWaveRTStreamNotification ............................................................ 77
Page 30 of 907
Device.Audio.Base.IndependentInputOutputFormatSelection .................................................... 79
Device.Audio.Base.InitiatorTargetBlocktransferSupport.............................................................. 79
Device.Audio.Base.JackConnectorStateDescription ..................................................................... 80
Device.Audio.Base.JackDetection ................................................................................................. 81
Device.Audio.Base.KSPROPERTYAUDIOMIXLEVELTABLE .............................................................. 82
Device.Audio.Base.KSPROPERTYAUDIOVOLUMELEVEL ................................................................ 83
Device.Audio.Base.KSTopologyCompliance .................................................................................. 83
Device.Audio.Base.NoHiddenStreamRouting ............................................................................... 85
Device.Audio.Base.NoUncontrollableStreamRouting................................................................... 86
Device.Audio.Base.NoUndiscoverableDevice ............................................................................... 87
Device.Audio.Base.PCMNonPCMForSPDIF ................................................................................... 88
Device.Audio.Base.PowerManagement ....................................................................................... 89
Device.Audio.Base.ProperUSBDescriptors ................................................................................... 90
Device.Audio.Base.RealtimeDriversSupportStandardLoopedStreaming ..................................... 90
Device.Audio.Base.ReportSupportedProperties........................................................................... 91
Device.Audio.Base.RestartWithinASpecifiedDuration.................................................................. 92
Device.Audio.Base.ResumeLatency .............................................................................................. 93
Device.Audio.Base.SamplePositionAccuracy ................................................................................ 94
Device.Audio.Base.SamplingAccuracy .......................................................................................... 95
Device.Audio.Base.TimeSynchronizedSampleRates ..................................................................... 95
Device.Audio.Base.TipRing............................................................................................................ 96
Device.Audio.Base.TwoDMAEnginesAndConnections ................................................................. 97
Device.Audio.Base.VoiceCommunicationUAA.............................................................................. 98
Device.Audio.Base.VolumeControlsIsLinear ............................................................................... 102
Device.Audio.Base.VolumeGranularity ....................................................................................... 102
Device.Audio.Base.WAVEFORMATEXTENSIBLESupport ............................................................. 103
Device.Audio.Base.WaveRTConformance .................................................................................. 104
Device.Audio.Base.WaveRTImplementation .............................................................................. 105
Device.Audio.Base.ZeroGlitch ..................................................................................................... 106
Device.Audio.Bluetooth .................................................................................................................. 106
Device.Audio.Bluetooth.AtleastOneProfileSupport ................................................................... 107
Device.Audio.Bluetooth.AutomaticReconnectAttempt ............................................................. 108
Device.Audio.Bluetooth.ConnectDisconnectBluetooth.............................................................. 108
Device.Audio.Bluetooth.DriverReqs ........................................................................................... 109
Page 31 of 907
Device.Audio.Bluetooth.HandsFreeCallControl .......................................................................... 111
Device.Audio.Bluetooth.HCIDisconnect ..................................................................................... 111
Device.Audio.Bluetooth.MajorMinorClassID .............................................................................. 112
Device.Audio.HardwareAudioProcessing ....................................................................................... 113
Device.Audio.HardwareAudioProcessing.AudioHardwareOffloading ........................................ 113
Device.Audio.HardwareAudioProcessing.ETWEvent .................................................................. 119
Device.Audio.HardwareAudioProcessing.IMiniport ................................................................... 121
Device.Audio.HDAudio.................................................................................................................... 122
Device.Audio.HDAudio.2AudioChannelsForHDMIorDisplayPort ................................................ 122
Device.Audio.HDAudio.AnalogJackDetection ............................................................................. 124
Device.Audio.HDAudio.CopyBitPolarityClarification .................................................................. 125
Device.Audio.HDAudio.DefaultAssociationNotZero ................................................................... 125
Device.Audio.HDAudio.DigitalJackDetection .............................................................................. 126
Device.Audio.HDAudio.HDAudioCodecAdditionalReqs .............................................................. 127
Device.Audio.HDAudio.HDAudioSpecCompliance...................................................................... 129
Device.Audio.HDAudio.HDMIDCN .............................................................................................. 129
Device.Audio.HDAudio.HDMIKSPROPERTYJACKSINKINFO ......................................................... 131
Device.Audio.HDAudio.INFHasDeviceID ..................................................................................... 132
Device.Audio.HDAudio.LowPowerDCN....................................................................................... 132
Device.Audio.HDAudio.OneCodecPortOneConnector ............................................................... 133
Device.Audio.HDAudio.PinConfigPortConnectivity .................................................................... 135
Device.Audio.HDAudio.PnPCodecDeviceID ................................................................................ 136
Device.Audio.HDAudio.UniqueSequenceNumbers .................................................................... 137
Device.Audio.UAACompliance ........................................................................................................ 138
Device.Audio.UAACompliance.TestUsingBluetoothClassDriver ................................................. 138
Device.Audio.UAACompliance.UAA ............................................................................................ 139
Device.Audio.USB............................................................................................................................ 139
Device.Audio.USB.HIDCommunications ..................................................................................... 140
Device.Audio.USB.HIDControls ................................................................................................... 141
Device.Audio.USB.MicArray ........................................................................................................ 142
Device.Audio.USB.USB ................................................................................................................ 142
Device.BusController.Bluetooth.Base ............................................................................................. 143
Device.BusController.Bluetooth.Base.4LeSpecification ............................................................. 143
Device.BusController.Bluetooth.Base.LeStateCombinations ..................................................... 144
Page 32 of 907
Device.BusController.Bluetooth.Base.LeWhiteList ..................................................................... 145
Device.BusController.Bluetooth.Base.MicrosoftBluetoothStack ............................................... 145
Device.BusController.Bluetooth.Base.OnOffStateControllableViaSoftware .............................. 146
Device.BusController.Bluetooth.Base.Scatternet ....................................................................... 147
Device.BusController.Bluetooth.Base.ScoDataTransportLayer .................................................. 147
Device.BusController.Bluetooth.Base.SimultaneousBrEdrAndLeTraffic .................................... 148
Device.BusController.Bluetooth.Base.SpecificInformationParameters ..................................... 149
Device.BusController.Bluetooth.Base.SupportsBluetooth21AndEdr ......................................... 149
Device.BusController.Bluetooth.NonUSB ....................................................................................... 150
Device.BusController.Bluetooth.NonUSB.Performance ............................................................. 150
Device.BusController.Bluetooth.NonUSB.ScoSupport ............................................................... 151
Device.BusController.NearFieldProximity ...................................................................................... 151
Device.BusController.NearFieldProximity.NFCCertification ....................................................... 152
Device.BusController.NearFieldProximity.ProviderImplementation.......................................... 152
Device.BusController.NearFieldProximity.ProximityReliability .................................................. 153
Device.BusController.NearFieldProximity.RangeOfActuation .................................................... 154
Device.BusController.NearFieldProximity.SessionEstablishmentPerformance ......................... 155
Device.BusController.NearFieldProximity.TaptoSetupScenario ................................................. 156
Device.BusController.NearFieldProximity.TapToUseScenarios .................................................. 156
Device.BusController.SdioController .............................................................................................. 157
Device.BusController.SdioController.ComplyWithIndustrySpec ................................................ 157
Device.BusController.SdioController.WdfKmdfDriver ................................................................ 158
Device.BusController.UsbController ............................................................................................... 159
Device.BusController.UsbController.ImplementAtLeastOneXhciSpcStructForUSB2 ................. 159
Device.BusController.UsbController.MaintainDeviceStateOnResumeS1andS3......................... 160
Device.BusController.UsbController.MustResumeWithoutForcedReset ................................... 161
Device.BusController.UsbController.PreserveDeviceStateAfterDisableEnable.......................... 162
Device.BusController.UsbController.SpecificationCompliance .................................................. 163
Device.BusController.UsbController.SuperSpeedConnectorsSupportHighFullLow ................... 164
Device.BusController.UsbController.SupportSelectiveSuspend ................................................. 164
Device.BusController.UsbController.TestedUsingMicrosoftUsbStack........................................ 165
Device.BusController.UsbController.UsbifCertification.............................................................. 166
Device.BusController.UsbController.XhciAc64Bit ....................................................................... 167
Device.BusController.UsbController.XhciAddInCardsMapPortsConsistently ............................. 168
Page 33 of 907
Device.BusController.UsbController.XhciAddInCardsReportInternalDevices ............................ 170
Device.BusController.UsbController.XhciSupportDebuggingOnAllExposedPorts ...................... 171
Device.BusController.UsbController.XhciSupportMsiMsixInterrupts ........................................ 172
Device.BusController.UsbController.XhciSupportsMinimum31Streams.................................... 172
Device.BusController.UsbController.XhciSupportsRuntimePowerManagement ....................... 173
Device.BusController.UsbController.XhciVersionCompliant ...................................................... 174
Device.Connectivity.BluetoothDevices ........................................................................................... 175
Device.Connectivity.BluetoothDevices.BluetoothDeviceIdProfileVer12 .................................... 175
Device.Connectivity.BluetoothDevices.BluetoothDeviceIdProfileVer13 .................................... 176
Device.Connectivity.BluetoothDevices.BluetoothHidLimitedDiscoverableMode ...................... 176
Device.Connectivity.BluetoothDevices.BluetoothUSBPlugandPlay............................................ 177
Device.Connectivity.BluetoothDevices.ComplementarySubsystemList ..................................... 178
Device.Connectivity.BluetoothDevices.FunctionAfterSystemSuspendCycle.............................. 178
Device.Connectivity.BluetoothDevices.HidInitiatedReconnect .................................................. 179
Device.Connectivity.BluetoothDevices.KeyboardsSupportPasskeyAuthentication ................... 180
Device.Connectivity.BluetoothDevices.RespondToServiceDiscoveryRequests .......................... 180
Device.Connectivity.BluetoothDevices.SupportBluetooth21 ..................................................... 181
Device.Connectivity.NearFieldProximity ........................................................................................ 181
Device.Connectivity.NearFieldProximity.DeviceNFCCertification .............................................. 182
Device.Connectivity.NearFieldProximity.DeviceRangeOfActuation ........................................... 183
Device.Connectivity.NearFieldProximity.DeviceTapToSetup ..................................................... 183
Device.Connectivity.NearFieldProximity.NfcForumTag .............................................................. 184
Device.Connectivity.NearFieldProximity.TouchMark ................................................................. 185
Device.Connectivity.Network.PnPX ................................................................................................ 185
Device.Connectivity.Network.PnPX.PnPX ................................................................................... 186
Device.Connectivity.Network.VerticalPairing ................................................................................. 187
Device.Connectivity.Network.VerticalPairing.VerticalPairing .................................................... 187
Device.Connectivity.Network.VerticalPairing.WCN.................................................................... 188
Device.Connectivity.PciConnected ................................................................................................. 190
Device.Connectivity.PciConnected.64BitPrefetchableBar .......................................................... 190
Device.Connectivity.PciConnected.ConfigurationSpaceCorrectlyPopulated ............................. 191
Device.Connectivity.PciConnected.ExpressCardImplementsSerialNumber ............................... 192
Device.Connectivity.PciConnected.InterruptDisableBit ............................................................. 193
Device.Connectivity.PciConnected.MsiOrMsixSupport .............................................................. 194
Page 34 of 907
Device.Connectivity.PciConnected.PciAndPcixDevicesArePciCompliant ................................... 195
Device.Connectivity.PciConnected.PCIExpress ........................................................................... 195
Device.Connectivity.PciConnected.SubsystemIdsRequired ....................................................... 197
Device.Connectivity.UsbDevices ..................................................................................................... 198
Device.Connectivity.UsbDevices.Addressing .............................................................................. 199
Device.Connectivity.UsbDevices.AlternateDriver ....................................................................... 200
Device.Connectivity.UsbDevices.CompliesWithChap9 ............................................................... 201
Device.Connectivity.UsbDevices.DebugCompliesWithDebugSpec............................................. 202
Device.Connectivity.UsbDevices.DebugCompliesWithDebugSpecUSB3 .................................... 202
Device.Connectivity.UsbDevices.DeviceAttachLessThan100ms ................................................. 203
Device.Connectivity.UsbDevices.EsdRecovery ........................................................................... 204
Device.Connectivity.UsbDevices.FunctionSuspendSelectiveSuspend ........................................ 204
Device.Connectivity.UsbDevices.InstallViaUniquePnpIdentifier ................................................ 205
Device.Connectivity.UsbDevices.IsochronousDeviceAndDriver ................................................. 206
Device.Connectivity.UsbDevices.MsOsContainerId .................................................................... 208
Device.Connectivity.UsbDevices.MustBeFunctionalAfterResume ............................................. 208
Device.Connectivity.UsbDevices.MustEnumerateOnEhciAndXhci ............................................. 209
Device.Connectivity.UsbDevices.MustNotDisconnectDuringSuspend ....................................... 210
Device.Connectivity.UsbDevices.MustResumeWithoutForcedReset ......................................... 211
Device.Connectivity.UsbDevices.MustSignalAttachWithin500ms.............................................. 212
Device.Connectivity.UsbDevices.MustSupportSuspend ............................................................. 213
Device.Connectivity.UsbDevices.PeripheralOperatesInFunctionMode ..................................... 214
Device.Connectivity.UsbDevices.PortMove500ms ..................................................................... 215
Device.Connectivity.UsbDevices.RespondAllStringRequests ..................................................... 216
Device.Connectivity.UsbDevices.ResponsesLimitedByWlengthField ......................................... 217
Device.Connectivity.UsbDevices.SerialNumbers ........................................................................ 217
Device.Connectivity.UsbDevices.SerialNumbersUseValidCharacters ........................................ 219
Device.Connectivity.UsbDevices.SuperSpeedOnConnectViaUsb3Port ...................................... 220
Device.Connectivity.UsbDevices.TestedUsingMicrosoftUsbStack ............................................. 221
Device.Connectivity.UsbDevices.Usb3CompatibleWithDownLevel ........................................... 221
Device.Connectivity.UsbDevices.UsbifCertification.................................................................... 222
Device.Connectivity.UsbDevices.UseUsbClassOnlyForControllerOrHub .................................... 223
Device.Connectivity.UsbDevices.WirelessUsbObtainsWusbLogoFromUsbif ............................. 224
Device.Connectivity.UsbDevices.WirelessUsbWiMediaAlliace .................................................. 225
Page 35 of 907
Device.Connectivity.UsbHub........................................................................................................... 226
Device.Connectivity.UsbHub.CompliesWithChap11................................................................... 226
Device.Connectivity.UsbHub.IdentifyNumOfUserAccessiblePorts ............................................. 227
Device.Connectivity.UsbHub.ImplementSuperSpeedDescriptors .............................................. 228
Device.Connectivity.UsbHub.MapPortsPerUsb3Specification ................................................... 230
Device.Connectivity.UsbHub.ProvideStandardInterfacesToHostPeripherals............................. 231
Device.Connectivity.UsbHub.SuperSpeedRemainsOnAfterPortReset ....................................... 232
Device.Connectivity.UsbHub.SupportSuspend ........................................................................... 232
Device.Connectivity.UsbHub.Usb3HubCompliesWithUsb3Spec ................................................ 233
Device.Connectivity.UsbHub.Usb3ReportPortStatusBitsCorrectly............................................. 234
Device.Connectivity.WSD................................................................................................................ 235
Device.Connectivity.WSD.DPWS ................................................................................................. 235
Device.Connectivity.WSD.DPWSExtensibility ............................................................................. 236
Device.Connectivity.WSD.MetadataExchange ........................................................................... 237
Device.Connectivity.WSD.MetadataValid................................................................................... 238
Device.Connectivity.WSD.Schema .............................................................................................. 238
Device.Connectivity.WSD.WSDiscovery...................................................................................... 240
Device.DevFund.CDA ...................................................................................................................... 240
Device.DevFund.CDA.Application ............................................................................................... 241
Device.DevFund.Color..................................................................................................................... 241
Device.DevFund.Color.DeviceColorProfilesInstall ...................................................................... 242
Device.DevFund.DriverFramework.AllDrivers ................................................................................ 243
Device.DevFund.DriverFramework.AllDrivers.WDFLoadGroup ................................................. 243
Device.DevFund.DriverFramework.KMDF ...................................................................................... 244
Device.DevFund.DriverFramework.KMDF.HandleDDIFailures ................................................... 244
Device.DevFund.DriverFramework.KMDF.Reliability ................................................................. 245
Device.DevFund.DriverFramework.KMDF.WDFProperINF ......................................................... 247
Device.DevFund.DriverFramework.KMDF.WDFRedistributables ............................................... 251
Device.DevFund.DriverFramework.UMDF...................................................................................... 252
Device.DevFund.DriverFramework.UMDF.Reliability ................................................................. 253
Device.DevFund.DriverFramework.UMDF.WDFProperINF ........................................................ 254
Device.DevFund.DriverFramework.UMDF.WDFRedistributables .............................................. 258
Device.DevFund.Firmware .............................................................................................................. 260
Device.DevFund.Firmware.UpdateDriverPackage ...................................................................... 260
Page 36 of 907
Device.DevFund.INF ........................................................................................................................ 261
Device.DevFund.INF.AddReg ...................................................................................................... 262
Device.DevFund.INF.AddService ................................................................................................. 264
Device.DevFund.INF.ClassInstall32 ............................................................................................. 265
Device.DevFund.INF.ComplexDeviceMatching........................................................................... 266
Device.DevFund.INF.DDInstall.CoInstallers ................................................................................ 267
Device.DevFund.INF.DeviceConfigOnly ...................................................................................... 269
Device.DevFund.INF.DeviceResourceConfig ............................................................................... 270
Device.DevFund.INF.FileCopyRestriction.................................................................................... 271
Device.DevFund.INF.FileOrRegistryModification........................................................................ 272
Device.DevFund.INF.InstallManagement ................................................................................... 273
Device.DevFund.INF.LegacySyntax ............................................................................................. 274
Device.DevFund.INF.TargetOSVersion........................................................................................ 274
Device.DevFund.Memory ............................................................................................................... 275
Device.DevFund.Memory.DriverFootprint ................................................................................. 276
Device.DevFund.Memory.NXPool............................................................................................... 276
Device.DevFund.Reliability ............................................................................................................. 277
Device.DevFund.Reliability.BasicReliabilityAndPerformance ..................................................... 278
Device.DevFund.Reliability.BasicSecurity ................................................................................... 280
Device.DevFund.Reliability.BootDriverEmbeddedSignature ...................................................... 281
Device.DevFund.Reliability.DriverInstallUninstallReinstall ......................................................... 282
Device.DevFund.Reliability.DriverUninstallInstallOtherDeviceStability ..................................... 284
Device.DevFund.Reliability.NoReplacingSysComponents .......................................................... 285
Device.DevFund.Reliability.NormalOpWithDEP ......................................................................... 285
Device.DevFund.Reliability.PnPIDs ............................................................................................. 287
Device.DevFund.Reliability.PnPIRPs ........................................................................................... 289
Device.DevFund.Reliability.ProperINF ........................................................................................ 290
Device.DevFund.Reliability.RemoteDesktopServices ................................................................. 291
Device.DevFund.Reliability.S3S4SleepStates .............................................................................. 292
Device.DevFund.Reliability.Signable ........................................................................................... 294
Device.DevFund.Reliability.SWDeviceInstallsUsePnPAPIs .......................................................... 295
Device.DevFund.Reliability.X64Support ..................................................................................... 296
Device.DevFund.Reliability.3rdParty .............................................................................................. 298
Device.DevFund.Reliability.3rdParty.FormerTests ..................................................................... 298
Page 37 of 907
Device.DevFund.Reliability.Interrupts ............................................................................................ 299
Device.DevFund.Reliability.Interrupts.BasicReliabilityAndPerformance.................................... 299
Device.DevFund.ReliabilityDisk....................................................................................................... 300
Device.DevFund.ReliabilityDisk.IOCompletionCancellation ....................................................... 300
Device.DevFund.Security ................................................................................................................ 302
Device.DevFund.Security.NoTDIFilterAndLSP ............................................................................. 302
Device.DevFund.Server ................................................................................................................... 303
Device.DevFund.Server.CommandLineConfigurable .................................................................. 303
Device.DevFund.Server.MultipleProcessorGroups ..................................................................... 305
Device.DevFund.Server.ServerPowerManagement ................................................................... 307
Device.DevFund.Server.PCI ............................................................................................................. 308
Device.DevFund.Server.PCI.PCIAER ............................................................................................ 308
Device.DevFund.Server.StaticTools ................................................................................................ 309
Device.DevFund.Server.StaticTools.SDVandPFD ........................................................................ 309
Device.Digitizer.Base....................................................................................................................... 310
Device.Digitizer.Base.DigitizersAppearAsHID ............................................................................. 310
Device.Digitizer.Base.HighQualityDigitizerInput ......................................................................... 311
Device.Digitizer.Pen ........................................................................................................................ 312
Device.Digitizer.Pen.100HzSampleRate ...................................................................................... 313
Device.Digitizer.Pen.ContactAccuracy ........................................................................................ 313
Device.Digitizer.Pen.HoverAccuracy ........................................................................................... 314
Device.Digitizer.Pen.PenRange ................................................................................................... 315
Device.Digitizer.Pen.PenResolution ............................................................................................ 315
Device.Digitizer.Touch .................................................................................................................... 316
Device.Digitizer.Touch.5TouchPointMinimum ........................................................................... 316
Device.Digitizer.Touch.Bezel ....................................................................................................... 317
Device.Digitizer.Touch.DigitizerConnectsOverUSBOrI2C ........................................................... 318
Device.Digitizer.Touch.DigitizerJitter .......................................................................................... 319
Device.Digitizer.Touch.ExtraInputBehavior ................................................................................ 320
Device.Digitizer.Touch.FieldFirmwareUpdatable ....................................................................... 320
Device.Digitizer.Touch.HIDCompliantFirmware ......................................................................... 321
Device.Digitizer.Touch.HighQualityTouchDigitizerInput ............................................................ 322
Device.Digitizer.Touch.HighResolutionTimeStamp .................................................................... 323
Device.Digitizer.Touch.InputSeparation ..................................................................................... 324
Page 38 of 907
Device.Digitizer.Touch.NoiseSuppression................................................................................... 325
Device.Digitizer.Touch.PhysicalDimension ................................................................................. 326
Device.Digitizer.Touch.PhysicalInputPosition ............................................................................. 327
Device.Digitizer.Touch.PowerStates ........................................................................................... 327
Device.Digitizer.Touch.ReportingRate ........................................................................................ 328
Device.Digitizer.Touch.ResponseLatency ................................................................................... 329
Device.Digitizer.Touch.TouchResolution .................................................................................... 330
Device.Digitizer.Touch.ZAxisAllowance ...................................................................................... 330
Device.Display.Monitor................................................................................................................... 331
Device.Display.Monitor.Base ...................................................................................................... 331
Device.Display.Monitor.ColorimetricTolerance.......................................................................... 332
Device.Display.Monitor.DigitalLinkProtection ............................................................................ 334
Device.Display.Monitor.EDID ...................................................................................................... 335
Device.Display.Monitor.Modes .................................................................................................. 337
Device.Display.Monitor.Stereoscopic3DModes ......................................................................... 339
Device.Graphics.AdapterBase ......................................................................................................... 340
Device.Graphics.AdapterBase.ApplicationVerifier ..................................................................... 340
Device.Graphics.AdapterBase.DriverVersion.............................................................................. 341
Device.Graphics.AdapterBase.PowerManagementCompliance................................................. 343
Device.Graphics.AdapterBase.RegistryEntries............................................................................ 344
Device.Graphics.AdapterBase.SubsystemResettable ................................................................. 346
Device.Graphics.AdapterRender..................................................................................................... 347
Device.Graphics.AdapterRender.MinimumDirectXLevel ............................................................ 347
Device.Graphics.AdapterRender.RGBFrameBuffer .................................................................... 348
Device.Graphics.AdapterRender.YUVSupport ............................................................................ 349
Device.Graphics.AdapterRender.D3D101Core ............................................................................... 349
Device.Graphics.AdapterRender.D3D101Core.D3D101CorePrimary ......................................... 349
Device.Graphics.AdapterRender.D3D101WDDM11 ....................................................................... 350
Device.Graphics.AdapterRender.D3D101WDDM11.D3D101v11Primary .................................. 351
Device.Graphics.AdapterRender.D3D101WDDM12 ....................................................................... 352
Device.Graphics.AdapterRender.D3D101WDDM12.D3D101v12Primary .................................. 352
Device.Graphics.AdapterRender.D3D10ComputeShader .............................................................. 353
Device.Graphics.AdapterRender.D3D10ComputeShader.D3D10CoreC ..................................... 353
Device.Graphics.AdapterRender.D3D10Core ................................................................................. 354
Page 39 of 907
Device.Graphics.AdapterRender.D3D10Core.D3D10CorePrimary ............................................. 355
Device.Graphics.AdapterRender.D3D10D3D11LogicOps ............................................................... 356
Device.Graphics.AdapterRender.D3D10D3D11LogicOps.D3D10CoreD ..................................... 356
Device.Graphics.AdapterRender.D3D10Multisampling4X ............................................................. 357
Device.Graphics.AdapterRender.D3D10Multisampling4X.D3D10CoreA.................................... 357
Device.Graphics.AdapterRender.D3D10Multisampling8X ............................................................. 358
Device.Graphics.AdapterRender.D3D10Multisampling8X.D3D10CoreB .................................... 358
Device.Graphics.AdapterRender.D3D10WDDM11 ......................................................................... 359
Device.Graphics.AdapterRender.D3D10WDDM11.D3D10v11Primary ...................................... 359
Device.Graphics.AdapterRender.D3D10WDDM12 ......................................................................... 361
Device.Graphics.AdapterRender.D3D10WDDM12.D3D10v12Primary ...................................... 361
Device.Graphics.AdapterRender.D3D10WDDM12.Stereoscopic3DArraySupport ..................... 363
Device.Graphics.AdapterRender.D3D111Core ............................................................................... 365
Device.Graphics.AdapterRender.D3D111Core.D3D111CorePrimary ......................................... 365
Device.Graphics.AdapterRender.D3D11Core ................................................................................. 366
Device.Graphics.AdapterRender.D3D11Core.D3D11CorePrimary ............................................. 367
Device.Graphics.AdapterRender.D3D11DoublePrecisionShader ................................................... 368
Device.Graphics.AdapterRender.D3D11DoublePrecisionShader.D3D11CoreC ......................... 368
Device.Graphics.AdapterRender.D3D11DriverCommandLists ....................................................... 369
Device.Graphics.AdapterRender.D3D11DriverCommandLists.D3D11CoreB ............................. 369
Device.Graphics.AdapterRender.D3D11DriverConcurrentObjectCreation .................................... 370
Device.Graphics.AdapterRender.D3D11DriverConcurrentObjectCreation.D3D11CoreA .......... 370
Device.Graphics.AdapterRender.D3D11Level9WDDM12 .............................................................. 371
Device.Graphics.AdapterRender.D3D11Level9WDDM12.D3D9UMDDIUpdate......................... 371
Device.Graphics.AdapterRender.D3D11PartialPrecision................................................................ 372
Device.Graphics.AdapterRender.D3D11PartialPrecision.D3D11CoreE ...................................... 372
Device.Graphics.AdapterRender.D3D11WDDM12 ......................................................................... 373
Device.Graphics.AdapterRender.D3D11WDDM12.D3D11v12Primary ...................................... 373
Device.Graphics.AdapterRender.D3D11WDDM12DoublePrecisionShader ................................... 375
Device.Graphics.AdapterRender.D3D11WDDM12DoublePrecisionShader.D3D11v12C ........... 375
Device.Graphics.WDDM.................................................................................................................. 376
Device.Graphics.WDDM.Base ..................................................................................................... 376
Device.Graphics.WDDM.Checklist .............................................................................................. 377
Device.Graphics.WDDM.GPUFenceCommands.......................................................................... 379
Page 40 of 907
Device.Graphics.WDDM.Display ..................................................................................................... 380
Device.Graphics.WDDM.Display.Base ........................................................................................ 380
Device.Graphics.WDDM.Display.GammaCorrection .................................................................. 381
Device.Graphics.WDDM.Display.HotPlugDetection ................................................................... 382
Device.Graphics.WDDM.Display.I2CSupport .............................................................................. 384
Device.Graphics.WDDM.Display.MediaCenterResolutionTiming............................................... 385
Device.Graphics.WDDM.Display.Multimon ................................................................................ 386
Device.Graphics.WDDM.Display.ResetToVGA ............................................................................ 388
Device.Graphics.WDDM.Display.HDMIorDPDCNs .......................................................................... 389
Device.Graphics.WDDM.Display.HDMIorDPDCNs.DCNCompliance ........................................... 389
Device.Graphics.WDDM.Display.TVOut.......................................................................................... 392
Device.Graphics.WDDM.Display.TVOut.Base ............................................................................. 392
Device.Graphics.WDDM.Display.TVOut.DAC .............................................................................. 393
Device.Graphics.WDDM.Display.TVOut.Encoder ....................................................................... 393
Device.Graphics.WDDM.DisplayRender ......................................................................................... 394
Device.Graphics.WDDM.DisplayRender.Base ............................................................................. 394
Device.Graphics.WDDM.DisplayRender.OutputProtection ........................................................ 395
Device.Graphics.WDDM.DisplayRender.Stability ....................................................................... 397
Device.Graphics.WDDM.DisplayRender.OutputProtection............................................................ 398
Device.Graphics.WDDM.DisplayRender.OutputProtection.Windows7 ..................................... 398
Device.Graphics.WDDM.Render ..................................................................................................... 400
Device.Graphics.WDDM.Render.Base ........................................................................................ 400
Device.Graphics.WDDM.Render.VideoDecoding ....................................................................... 401
Device.Graphics.WDDM.Render.VideoProcessing ..................................................................... 403
Device.Graphics.WDDM.Render.Windows7.VideoDecoding ..................................................... 405
Device.Graphics.WDDM11.............................................................................................................. 406
Device.Graphics.WDDM11.Base ................................................................................................. 406
Device.Graphics.WDDM11.Display ................................................................................................. 407
Device.Graphics.WDDM11.Display.Base .................................................................................... 408
Device.Graphics.WDDM11.DisplayRender ..................................................................................... 408
Device.Graphics.WDDM11.DisplayRender.Base......................................................................... 409
Device.Graphics.WDDM11.DisplayRender.D3D9Overlay ............................................................... 409
Device.Graphics.WDDM11.DisplayRender.D3D9Overlay.D3D9Overlay .................................... 410
Device.Graphics.WDDM11.Render ................................................................................................. 411
Page 41 of 907
Device.Graphics.WDDM11.Render.Base .................................................................................... 411
Device.Graphics.WDDM11.Render.ContentProtection .................................................................. 411
Device.Graphics.WDDM11.Render.ContentProtection.ContentProtection ............................... 412
Device.Graphics.WDDM11.Render.DXVAHD .................................................................................. 413
Device.Graphics.WDDM11.Render.DXVAHD.DXVAHD ............................................................... 413
Device.Graphics.WDDM12.............................................................................................................. 414
Device.Graphics.WDDM12.Base ................................................................................................. 414
Device.Graphics.WDDM12.Display ................................................................................................. 418
Device.Graphics.WDDM12.Display.Base .................................................................................... 418
Device.Graphics.WDDM12.Display.ContainerIDSupport............................................................ 421
Device.Graphics.WDDM12.Display.DisplayOutputControl......................................................... 422
Device.Graphics.WDDM12.Display.ModeEnumeration ............................................................. 424
Device.Graphics.WDDM12.Display.PnpStopStartSupport.......................................................... 426
Device.Graphics.WDDM12.Display.ProvideLinearFrameBuffer ................................................. 428
Device.Graphics.WDDM12.DisplayOnly ......................................................................................... 429
Device.Graphics.WDDM12.DisplayOnly.Base ............................................................................. 429
Device.Graphics.WDDM12.DisplayRender ..................................................................................... 433
Device.Graphics.WDDM12.DisplayRender.Base......................................................................... 433
Device.Graphics.WDDM12.DisplayRender.ProcessingStereoscopicVideoContent ........................ 437
Device.Graphics.WDDM12.DisplayRender.ProcessingStereoscopicVideoContent.ProcessingStere
oscopicVideoContent .................................................................................................................. 438
Device.Graphics.WDDM12.DisplayRender.RuntimePowerMgmt .................................................. 439
Device.Graphics.WDDM12.DisplayRender.RuntimePowerMgmt.RuntimePowerMgmt ........... 439
Device.Graphics.WDDM12.Render ................................................................................................. 440
Device.Graphics.WDDM12.Render.Base .................................................................................... 440
Device.Graphics.WDDM12.Render.D3D11VideoDecoding ........................................................ 443
Device.Graphics.WDDM12.Render.D3D11VideoProcessing ...................................................... 445
Device.Graphics.WDDM12.Render.DirectFlip ............................................................................ 448
Device.Graphics.WDDM12.Render.FlipOnVSyncMmIo .............................................................. 449
Device.Graphics.WDDM12.Render.OfferReclaim ....................................................................... 450
Device.Graphics.WDDM12.Render.PreemptionGranularity ...................................................... 452
Device.Graphics.WDDM12.Render.TDRResiliency ..................................................................... 453
Device.Graphics.WDDM12.Render.UMDLogging ....................................................................... 455
Device.Graphics.WDDM12.Render.XPSRasterizationConformance ........................................... 456
Page 42 of 907
Device.Graphics.WDDM12.RenderOnly ......................................................................................... 457
Device.Graphics.WDDM12.RenderOnly.Base ............................................................................. 457
Device.Graphics.WDDM12.StandbyHibernateFlags ....................................................................... 460
Device.Graphics.WDDM12.StandbyHibernateFlags.StandbyHibernateFlags ............................. 460
Device.Graphics.XDDM ................................................................................................................... 461
Device.Graphics.XDDM.Stability ................................................................................................. 462
Device.Imaging.Printer.Base ........................................................................................................... 462
Device.Imaging.Printer.Base.applicationVerifier ........................................................................ 463
Device.Imaging.Printer.Base.autoConfiguration ........................................................................ 465
Device.Imaging.Printer.Base.ConfigurationFiles ......................................................................... 466
Device.Imaging.Printer.Base.connectionRecovery ..................................................................... 467
Device.Imaging.Printer.Base.connectivityRobustness ................................................................ 468
Device.Imaging.Printer.Base.deviceCapabilities ......................................................................... 469
Device.Imaging.Printer.Base.DocumentProperties .................................................................... 469
Device.Imaging.Printer.Base.driverCategory .............................................................................. 470
Device.Imaging.Printer.Base.DriverEventFiles ............................................................................ 471
Device.Imaging.Printer.Base.driverIsolation............................................................................... 471
Device.Imaging.Printer.Base.driverPackage ............................................................................... 472
Device.Imaging.Printer.Base.driverStability ............................................................................... 473
Device.Imaging.Printer.Base.faxModem .................................................................................... 474
Device.Imaging.Printer.Base.faxTIA592 ...................................................................................... 474
Device.Imaging.Printer.Base.faxV34 ........................................................................................... 475
Device.Imaging.Printer.Base.GDLFile .......................................................................................... 476
Device.Imaging.Printer.Base.infFile ............................................................................................ 476
Device.Imaging.Printer.Base.jobCancellation ............................................................................. 478
Device.Imaging.Printer.Base.metadata ...................................................................................... 478
Device.Imaging.Printer.Base.portMonitors ................................................................................ 479
Device.Imaging.Printer.Base.PrinterExtension ........................................................................... 480
Device.Imaging.Printer.Base.printerInterfaces ........................................................................... 481
Device.Imaging.Printer.Base.PrintProcessor .............................................................................. 481
Device.Imaging.Printer.Base.printRegions ................................................................................. 482
Device.Imaging.Printer.Base.printTicket..................................................................................... 483
Device.Imaging.Printer.Base.rendering ...................................................................................... 484
Device.Imaging.Printer.Base.TCPMon ........................................................................................ 486
Page 43 of 907
Device.Imaging.Printer.Cluster ....................................................................................................... 486
Device.Imaging.Printer.Cluster.cluster ....................................................................................... 487
Device.Imaging.Printer.OXPS .......................................................................................................... 488
Device.Imaging.Printer.OXPS.OXPS ............................................................................................ 488
Device.Imaging.Printer.USB ............................................................................................................ 489
Device.Imaging.Printer.USB.CompatID ....................................................................................... 489
Device.Imaging.Printer.USB.JSBidiExtender ............................................................................... 490
Device.Imaging.Printer.WSD ........................................................................................................... 491
Device.Imaging.Printer.WSD.CompatID...................................................................................... 491
Device.Imaging.Printer.WSD.Rally .............................................................................................. 492
Device.Imaging.Printer.WSD.WSPrint ......................................................................................... 493
Device.Imaging.Printer.XPS............................................................................................................. 494
Device.Imaging.Printer.XPS.XPS .................................................................................................. 494
Device.Imaging.Scanner.Base ......................................................................................................... 496
Device.Imaging.Scanner.Base.dataTransfer ............................................................................... 497
Device.Imaging.Scanner.Base.driverInstallation......................................................................... 499
Device.Imaging.Scanner.Base.errorHandling.............................................................................. 500
Device.Imaging.Scanner.Base.metadata..................................................................................... 502
Device.Imaging.Scanner.Base.MFPmultiplePorts ....................................................................... 503
Device.Imaging.Scanner.Base.RawFileFormat ............................................................................ 504
Device.Imaging.Scanner.Base.scannerInterfaces ....................................................................... 505
Device.Imaging.Scanner.Base.statusMessages........................................................................... 505
Device.Imaging.Scanner.Base.wia20 .......................................................................................... 506
Device.Imaging.Scanner.Base.WIAArchitecture ......................................................................... 507
Device.Imaging.Scanner.Base.WIAProperties............................................................................. 508
Device.Imaging.Scanner.DistributedScanManagement ................................................................. 509
Device.Imaging.Scanner.DistributedScanManagement.DistributedScanManagement ............. 509
Device.Imaging.Scanner.WSD ......................................................................................................... 509
Device.Imaging.Scanner.WSD.Rally ............................................................................................ 509
Device.Imaging.Scanner.WSD.WSScan ....................................................................................... 510
Device.Input.FingerPrintReader...................................................................................................... 511
Device.Input.FingerPrintReader.Base ......................................................................................... 512
Device.Input.FingerPrintReader.Extensions ............................................................................... 513
Device.Input.FingerPrintReader.ManagementApps ................................................................... 514
Page 44 of 907
Device.Input.FingerPrintReader.SensorEngineDB ...................................................................... 515
Device.Input.FingerPrintReader.WBDI ....................................................................................... 517
Device.Input.GameController.CommonController ......................................................................... 519
Device.Input.GameController.CommonController.XInput ......................................................... 520
Device.Input.GameController.GenericController ........................................................................... 521
Device.Input.GameController.GenericController.DirectInput .................................................... 521
Device.Input.HID ............................................................................................................................. 521
Device.Input.HID.I2CProtocolSpecCompliant ............................................................................. 522
Device.Input.HID.UsbSpecificationCompliant............................................................................. 522
Device.Input.Keyboard.................................................................................................................... 524
Device.Input.Keyboard.BrowserMultimediaKeysUseMSApis ..................................................... 524
Device.Input.Keyboard.DynamicKeyboards................................................................................ 525
Device.Input.Keyboard.HotKeyFunctionAPI ............................................................................... 527
Device.Input.Keyboard.KernelModeDriversUseWdfKmdf.......................................................... 528
Device.Input.Keyboard.LogoFlagKey .......................................................................................... 529
Device.Input.Keyboard.MultipleKeyboard ................................................................................. 530
Device.Input.Keyboard.ScanCode ............................................................................................... 531
Device.Input.PointDraw .................................................................................................................. 532
Device.Input.PointDraw.KernelModeDriversUseWdfKmdf ........................................................ 532
Device.Input.Sensor.Accelerometer ............................................................................................... 533
Device.Input.Sensor.Accelerometer.SensorDataType ................................................................ 533
Device.Input.Sensor.Accelerometer.SensorReportInterval ........................................................ 534
Device.Input.Sensor.Accelerometer.ShakeEvent ....................................................................... 535
Device.Input.Sensor.ALS ................................................................................................................. 536
Device.Input.Sensor.ALS.SupportRequiredData ......................................................................... 536
Device.Input.Sensor.Base ............................................................................................................... 538
Device.Input.Sensor.Base.SupportDataTypesAndProperties ..................................................... 538
Device.Input.Sensor.Compass ........................................................................................................ 541
Device.Input.Sensor.Compass.InclinometerDataType ............................................................... 541
Device.Input.Sensor.Compass.SensorDataType ......................................................................... 543
Device.Input.Sensor.Compass.SensorReportInterval ................................................................. 544
Device.Input.Sensor.DeviceOrientation.......................................................................................... 545
Device.Input.Sensor.DeviceOrientation.SensorDataType .......................................................... 545
Device.Input.Sensor.Gyroscope ...................................................................................................... 546
Page 45 of 907
Device.Input.Sensor.Gyroscope.SensorDataType ...................................................................... 546
Device.Input.Sensor.Gyroscope.SensorReportInterval .............................................................. 548
Device.Input.Sensor.Location ......................................................................................................... 549
Device.Input.Sensor.Location.SupportRequiredDataFieldsForReport ....................................... 549
Device.Input.Sensor.Presence ........................................................................................................ 552
Device.Input.Sensor.Presence.SensorDataType ......................................................................... 552
Device.Input.SmartCardMiniDriver................................................................................................. 554
Device.Input.SmartCardMiniDriver.DoNotStopWhenResourcesAreUnavailable ....................... 554
Device.Input.SmartCardMiniDriver.SpecsAndCertifications ...................................................... 555
Device.Input.SmartCardMiniDriver.SupportMultipleInstancesOnASystem ............................... 557
Device.Input.SmartCardReader ...................................................................................................... 558
Device.Input.SmartCardReader.PinDataEntryKeyboardCompliesWithIso ................................. 558
Device.Input.SmartCardReader.SmartCardService..................................................................... 559
Device.Input.SmartCardReader.Supports258And259BytePackets............................................. 559
Device.Input.SmartCardReader.SupportsDirectAndInverseConvention .................................... 560
Device.Input.SmartCardReader.SupportsInsertionAndRemovalMonitor .................................. 561
Device.Input.SmartCardReader.SupportsMinClockFrequency ................................................... 562
Device.Input.SmartCardReader.SupportsMinDataRateOf9600bps ............................................ 562
Device.Input.SmartCardReader.SupportsNegotiableAndSpecificModes ................................... 563
Device.Input.SmartCardReader.SupportsResetCommand ......................................................... 564
Device.Input.SmartCardReader.UsbCcidCompliesWithUsbDeviceClassSpec ............................. 565
Device.Input.SmartCardReader.UsbCcidIssuesNak .................................................................... 566
Device.Media.DMR.AV .................................................................................................................... 567
Device.Media.DMR.AV.AVC ........................................................................................................ 567
Device.Media.DMR.AV.WMV...................................................................................................... 569
Device.Media.DMR.Base................................................................................................................. 570
Device.Media.DMR.Base.ChangingFriendlyName ...................................................................... 571
Device.Media.DMR.Base.ContentPlaybackWithoutUserInput ................................................... 572
Device.Media.DMR.Base.DeviceInformation.............................................................................. 574
Device.Media.DMR.Base.DisplayedMetadata ............................................................................ 575
Device.Media.DMR.Base.DLNA15CertificationCompliance ........................................................ 576
Device.Media.DMR.Base.DMPPlayback...................................................................................... 578
Device.Media.DMR.Base.DMPSelectionOfAdvertisedResources ............................................... 579
Device.Media.DMR.Base.DMRStateAfterFindingAnError........................................................... 581
Page 46 of 907
Device.Media.DMR.Base.EndOfStream ...................................................................................... 582
Device.Media.DMR.Base.Events ................................................................................................. 583
Device.Media.DMR.Base.MetaDataPackage .............................................................................. 584
Device.Media.DMR.Base.MetadataSize ..................................................................................... 585
Device.Media.DMR.Base.OptionalFieldsEntries ......................................................................... 586
Device.Media.DMR.Base.PausingAStream ................................................................................. 587
Device.Media.DMR.Base.PlaybackPerformance ........................................................................ 589
Device.Media.DMR.Base.PlayBackPerformanceConstrainedBandwidth ................................... 590
Device.Media.DMR.Base.PlaysMediaContinuously .................................................................... 591
Device.Media.DMR.Base.ProtocolInfoField ................................................................................ 592
Device.Media.DMR.Base.ResponseToSetAVTransportURIActions ............................................. 594
Device.Media.DMR.Base.SeekOperations .................................................................................. 595
Device.Media.DMR.Base.SendsSSDPByeByeMessage ................................................................ 597
Device.Media.DMR.Base.SetNextAVTransportURI ..................................................................... 598
Device.Media.DMR.Base.VolumeControl ................................................................................... 600
Device.Media.DMR.Base.WakeOnLAN ....................................................................................... 602
Device.Media.DMR.Base.WiFiDirectSupport .............................................................................. 603
Device.Media.DMR.Base.WMDRMNDLinkProtectionSupport ................................................... 604
Device.Media.DMR.Image .............................................................................................................. 605
Device.Media.DMR.Image.JPEG.................................................................................................. 605
Device.Media.DMS.Audio ............................................................................................................... 606
Device.Media.DMS.Audio.AACAudioStreaming ......................................................................... 607
Device.Media.DMS.Audio.AlbumArt........................................................................................... 608
Device.Media.DMS.Audio.MP3AudioStreaming......................................................................... 609
Device.Media.DMS.Audio.WMAStreaming ................................................................................ 611
Device.Media.DMS.AV .................................................................................................................... 613
Device.Media.DMS.AV.AVCVideoStreaming............................................................................... 613
Device.Media.DMS.AV.ThumbnailImagesForTheAVMediaClass ................................................ 614
Device.Media.DMS.AV.WMVStreaming ..................................................................................... 615
Device.Media.DMS.Base ................................................................................................................. 617
Device.Media.DMS.Base.ChangingFriendlyName ...................................................................... 618
Device.Media.DMS.Base.DeviceInformation .............................................................................. 619
Device.Media.DMS.Base.DLNA15CertificationCompliance ........................................................ 620
Device.Media.DMS.Base.LowPowerModeSupport .................................................................... 621
Page 47 of 907
Device.Media.DMS.Base.MetaDataPackage............................................................................... 622
Device.Media.DMS.Base.MultipleHTTPConnections .................................................................. 623
Device.Media.DMS.Base.OptionalFieldsEntries.......................................................................... 624
Device.Media.DMS.Base.Performance ....................................................................................... 624
Device.Media.DMS.Base.RangeRequests ................................................................................... 626
Device.Media.DMS.Base.SearchOperations ............................................................................... 627
Device.Media.DMS.Base.StreamsContinuously.......................................................................... 629
Device.Media.DMS.Base.WakeOnLAN ....................................................................................... 630
Device.Media.DMS.Image............................................................................................................... 631
Device.Media.DMS.Image.JPEGImageTransfer .......................................................................... 631
Device.Media.DMS.Image.ThumbnailImagesForTheImageMediaClass ..................................... 632
Device.Network.DevFund ............................................................................................................... 633
Device.Network.DevFund.NdisVersion ....................................................................................... 633
Device.Network.DevFund.NdisVersionLegacy ............................................................................ 634
Device.Network.DevFund.NPOS ................................................................................................. 635
Device.Network.DevFund.SelectiveSuspend .............................................................................. 636
Device.Network.LAN.Base .............................................................................................................. 636
Device.Network.LAN.Base.100MbOrGreater ............................................................................. 637
Device.Network.LAN.Base.32MulticastAddresses ...................................................................... 637
Device.Network.LAN.Base.AdvProperties .................................................................................. 638
Device.Network.LAN.Base.AnyBoundary.................................................................................... 639
Device.Network.LAN.Base.IPv4AndIPv6OffloadParity................................................................ 640
Device.Network.LAN.Base.NDISCalls .......................................................................................... 640
Device.Network.LAN.Base.NDISRequirements ........................................................................... 641
Device.Network.LAN.Base.PacketFiltering ................................................................................. 642
Device.Network.LAN.Base.PreserveOSServices .......................................................................... 643
Device.Network.LAN.Base.PriorityVLAN ..................................................................................... 643
Device.Network.LAN.Base.ShortPacketPadding ......................................................................... 644
Device.Network.LAN.Base.SupportIEEEE8023............................................................................ 645
Device.Network.LAN.ChecksumOffload ......................................................................................... 646
Device.Network.LAN.ChecksumOffload.ChecksumOffload ........................................................ 646
Device.Network.LAN.CS .................................................................................................................. 647
Device.Network.LAN.CS.NetworkWake ...................................................................................... 647
Device.Network.LAN.CS.PresenceOffload .................................................................................. 648
Page 48 of 907
Device.Network.LAN.CS.WakeEvents ......................................................................................... 649
Device.Network.LAN.CS.WakeReasonDetection ........................................................................ 650
Device.Network.LAN.DCB ............................................................................................................... 651
Device.Network.LAN.DCB.DCB.................................................................................................... 651
Device.Network.LAN.GRE ............................................................................................................... 652
Device.Network.LAN.GRE.GREPacketTaskOffloads .................................................................... 652
Device.Network.LAN.IPsec .............................................................................................................. 653
Device.Network.LAN.IPsec.IPsec ................................................................................................ 653
Device.Network.LAN.KRDMA.......................................................................................................... 654
Device.Network.LAN.KRDMA.KRDMA ........................................................................................ 655
Device.Network.LAN.LargeSendOffload ......................................................................................... 655
Device.Network.LAN.LargeSendOffload.LargeSendOffload ....................................................... 656
Device.Network.LAN.PM................................................................................................................. 656
Device.Network.LAN.PM.PowMgmtNDIS ................................................................................... 657
Device.Network.LAN.PM.WakeOnLANPatterns ......................................................................... 658
Device.Network.LAN.PM.WakePacket........................................................................................ 659
Device.Network.LAN.RSC ................................................................................................................ 660
Device.Network.LAN.RSC.RSC ..................................................................................................... 660
Device.Network.LAN.RSS ................................................................................................................ 660
Device.Network.LAN.RSS.RSS ..................................................................................................... 661
Device.Network.LAN.RSS.SetHashFunctionTypeAndValue ........................................................ 662
Device.Network.LAN.RSS.SupportIndirectionTablesSizes .......................................................... 663
Device.Network.LAN.RSS.SupportToeplitzHashFunction ........................................................... 664
Device.Network.LAN.RSS.SupportUpdatesToRSSInfo ................................................................ 665
Device.Network.LAN.SRIOV ............................................................................................................ 666
Device.Network.LAN.SRIOV.SRIOV ............................................................................................. 666
Device.Network.LAN.SRIOV.VF ....................................................................................................... 668
Device.Network.LAN.SRIOV.VF.VF .............................................................................................. 668
Device.Network.LAN.TCPChimney .................................................................................................. 669
Device.Network.LAN.TCPChimney.ComplyWithNDIS ................................................................. 669
Device.Network.LAN.TCPChimney.ComplyWithTCPIPProtocol .................................................. 670
Device.Network.LAN.TCPChimney.HandlesOutOfOrderData ..................................................... 676
Device.Network.LAN.TCPChimney.ImplementSufficientlyGranularTimers ................................ 676
Device.Network.LAN.TCPChimney.NeighborStateObjTimestampsComplyWithWDK ................ 677
Page 49 of 907
Device.Network.LAN.TCPChimney.Support1024Connections.................................................... 678
Device.Network.LAN.TCPChimney.Support64bitAddresses ....................................................... 678
Device.Network.LAN.VMQ.............................................................................................................. 679
Device.Network.LAN.VMQ.VirtualMachineQueues ................................................................... 679
Device.Network.MobileBroadband.CDMA ..................................................................................... 681
Device.Network.MobileBroadband.CDMA.ComplyWithBaseReq .............................................. 681
Device.Network.MobileBroadband.CDMA.FWComplyWithMBSpec ......................................... 682
Device.Network.MobileBroadband.CDMA.IdentityMorphing ................................................... 683
Device.Network.MobileBroadband.CDMA.ImplementSMS ....................................................... 684
Device.Network.MobileBroadband.CDMA.Loopback................................................................. 685
Device.Network.MobileBroadband.CDMA.MultiCarrierFunctionality ....................................... 686
Device.Network.MobileBroadband.CDMA.SupportUSBSelectiveSuspend ................................ 687
Device.Network.MobileBroadband.CDMA.SupportWakeOnMB................................................ 687
Device.Network.MobileBroadband.FirmwareUpdater .................................................................. 688
Device.Network.MobileBroadband.FirmwareUpdater.FirmwareUpgrade ................................ 688
Device.Network.MobileBroadband.GSM........................................................................................ 689
Device.Network.MobileBroadband.GSM.ComplyWithBaseReq................................................. 689
Device.Network.MobileBroadband.GSM.EAPSIM ...................................................................... 691
Device.Network.MobileBroadband.GSM.FWComplyWithMBSpec ............................................ 691
Device.Network.MobileBroadband.GSM.IdentityMorphing ...................................................... 692
Device.Network.MobileBroadband.GSM.ImplementSMS .......................................................... 693
Device.Network.MobileBroadband.GSM.Loopback ................................................................... 694
Device.Network.MobileBroadband.GSM.MultiCarrierFunctionality .......................................... 695
Device.Network.MobileBroadband.GSM.SupportFastDormancy .............................................. 696
Device.Network.MobileBroadband.GSM.SupportUSBSelectiveSuspend ................................... 696
Device.Network.MobileBroadband.GSM.SupportWakeOnMB .................................................. 697
Device.Network.MobileBroadband.GSM.USSD .......................................................................... 698
Device.Network.Router .................................................................................................................. 698
Device.Network.Router.BasicCompatibility ................................................................................ 699
Device.Network.Router.BasicPerf............................................................................................... 700
Device.Network.Router.ConeOrRestrictedNAT .......................................................................... 701
Device.Network.Router.GetTotalBytesPerf ................................................................................ 701
Device.Network.Router.GetTotalBytesSupport .......................................................................... 702
Device.Network.Router.NATLoopback ....................................................................................... 703
Page 50 of 907
Device.Network.Router.PnPXUPnPSupport................................................................................ 704
Device.Network.Router.PresentationURLPnPProperty .............................................................. 705
Device.Network.Router.UPnPIGD ............................................................................................... 705
Device.Network.Router.UPnPPortMappings .............................................................................. 706
Device.Network.Router.WCNDynamicPIN.................................................................................. 707
Device.Network.Router.WFACertified ........................................................................................ 707
Device.Network.Router.WPSVer2 .............................................................................................. 708
Device.Network.Router.WPSVer2PushButton............................................................................ 708
Device.Network.WLAN.Base ........................................................................................................... 709
Device.Network.WLAN.Base.ConformToNDIS ............................................................................ 710
Device.Network.WLAN.Base.ImplementD0PacketCoalescing .................................................... 710
Device.Network.WLAN.Base.ImplementVoicePersonalWMMPowerSave ................................. 711
Device.Network.WLAN.Base.MeetPerformanceReq .................................................................. 711
Device.Network.WLAN.Base.MeetScanAndConnReq ................................................................ 712
Device.Network.WLAN.Base.MinimizeCPUUtilization................................................................ 714
Device.Network.WLAN.Base.OnlyWDFOrNDIS630Calls ............................................................. 715
Device.Network.WLAN.Base.PassWiFiAllianceCertification ....................................................... 716
Device.Network.WLAN.Base.PermitIEToRequestAndResponseAF............................................. 717
Device.Network.WLAN.Base.SupportFiltering32MulticastAddresses ........................................ 718
Device.Network.WLAN.Base.SupportIEEE80211w ..................................................................... 718
Device.Network.WLAN.Base.SupportMultiDeviceInstances ...................................................... 719
Device.Network.WLAN.Base.SupportPromiscuousAndMulticastPacketFiltering....................... 719
Device.Network.WLAN.Base.SupportSeparateBeaconAndProbeIE ........................................... 720
Device.Network.WLAN.Base.SupportVirtualWiFi ....................................................................... 721
Device.Network.WLAN.Base.SupportWiFiAutoSaveMode ......................................................... 721
Device.Network.WLAN.Base.TransmitPacketsOnAnyBoundary................................................. 722
Device.Network.WLAN.CSBBase ..................................................................................................... 723
Device.Network.WLAN.CSBBase.ConformToNDIS ...................................................................... 723
Device.Network.WLAN.CSBBase.ImplementVoicePersonalWMMPowerSave ........................... 724
Device.Network.WLAN.CSBBase.MeetPerformanceReq ............................................................ 724
Device.Network.WLAN.CSBBase.MeetScanAndConnReq .......................................................... 725
Device.Network.WLAN.CSBBase.MinimizeCPUUtilization ......................................................... 727
Device.Network.WLAN.CSBBase.MustSupportD0PacketCoalescing .......................................... 728
Device.Network.WLAN.CSBBase.OnlyWDFOrNDIS630Calls ....................................................... 729
Page 51 of 907
Device.Network.WLAN.CSBBase.PassWiFiAllianceCertification ................................................. 729
Device.Network.WLAN.CSBBase.PermitIEToRequestAndResponseAF....................................... 730
Device.Network.WLAN.CSBBase.SupportFiltering32MulticastAddresses .................................. 731
Device.Network.WLAN.CSBBase.SupportIEEE80211w ............................................................... 731
Device.Network.WLAN.CSBBase.SupportPromiscuousAndMulticastPacketFiltering ................ 732
Device.Network.WLAN.CSBBase.SupportSeparateBeaconAndProbeIE ..................................... 733
Device.Network.WLAN.CSBBase.SupportVirtualWiFi ................................................................. 733
Device.Network.WLAN.CSBBase.SupportWiFiAutoSaveMode ................................................... 734
Device.Network.WLAN.CSBBase.TransmitPacketsOnAnyBoundary .......................................... 734
Device.Network.WLAN.CSBNLO ..................................................................................................... 735
Device.Network.WLAN.CSBNLO.SupportNetworkListOffload .................................................... 735
Device.Network.WLAN.CSBSoftAP ................................................................................................. 736
Device.Network.WLAN.CSBSoftAP.SupportSoftAP ..................................................................... 736
Device.Network.WLAN.CSBWiFiDirect ........................................................................................... 737
Device.Network.WLAN.CSBWiFiDirect.SupportAtLeast2WiFiDirectPortsConcurrently ............. 737
Device.Network.WLAN.CSBWiFiDirect.SupportAtLeast4Clients ................................................ 738
Device.Network.WLAN.CSBWoWLAN............................................................................................. 738
Device.Network.WLAN.CSBWoWLAN.MustSupportWakeOnWLAN .......................................... 739
Device.Network.WLAN.NLO............................................................................................................ 740
Device.Network.WLAN.NLO.SupportNetworkListOffload .......................................................... 740
Device.Network.WLAN.SoftAP........................................................................................................ 740
Device.Network.WLAN.SoftAP.SupportSoftAP ........................................................................... 741
Device.Network.WLAN.WiFiDirect ................................................................................................. 741
Device.Network.WLAN.WiFiDirect.SupportAtLeast2WiFiDirectPortsConcurrently ................... 742
Device.Network.WLAN.WiFiDirect.SupportAtLeast4Clients....................................................... 742
Device.Network.WLAN.WoWLAN ................................................................................................... 743
Device.Network.WLAN.WoWLAN.ImplementWakeOnWLAN .................................................... 743
Device.Portable.Core ...................................................................................................................... 744
Device.Portable.Core.AudioCodec .............................................................................................. 745
Device.Portable.Core.CustomDeviceServices ............................................................................. 746
Device.Portable.Core.DeviceServices ......................................................................................... 748
Device.Portable.Core.MediaSync................................................................................................ 750
Device.Portable.Core.ModelID ................................................................................................... 752
Device.Portable.Core.MTP .......................................................................................................... 753
Page 52 of 907
Device.Portable.Core.MTPFunctionality ..................................................................................... 760
Device.Portable.Core.MTPMultiSession ..................................................................................... 761
Device.Portable.Core.MTPObjectProperties .............................................................................. 762
Device.Portable.Core.MTPStreams............................................................................................. 765
Device.Portable.Core.TransportBluetooth ................................................................................. 766
Device.Portable.Core.TransportIP .............................................................................................. 767
Device.Portable.Core.TransportIPDLNA ..................................................................................... 769
Device.Portable.Core.TransportUSB ........................................................................................... 770
Device.Portable.Core.VideoCodec .............................................................................................. 772
Device.Portable.DigitalCamera ....................................................................................................... 776
Device.Portable.DigitalCamera.MTP........................................................................................... 776
Device.Portable.DigitalVideoCamera.............................................................................................. 781
Device.Portable.DigitalVideoCamera.MTP ................................................................................. 781
Device.Portable.MediaPlayer ......................................................................................................... 785
Device.Portable.MediaPlayer.MTP ............................................................................................. 786
Device.Portable.MobilePhone ........................................................................................................ 791
Device.Portable.MobilePhone.MTP ............................................................................................ 791
Device.Storage.Controller ............................................................................................................... 796
Device.Storage.Controller.BasicFunction ................................................................................... 796
Device.Storage.Controller.ClassCode ......................................................................................... 797
Device.Storage.Controller.InfFile ................................................................................................ 798
Device.Storage.Controller.MiniportDriverModel ....................................................................... 799
Device.Storage.Controller.Ata ........................................................................................................ 800
Device.Storage.Controller.Ata.Interface ..................................................................................... 800
Device.Storage.Controller.Boot ...................................................................................................... 801
Device.Storage.Controller.Boot.BasicFunction ........................................................................... 802
Device.Storage.Controller.Boot.BitLocker .................................................................................. 803
Device.Storage.Controller.BootDeviceGreaterThan ....................................................................... 803
Device.Storage.Controller.BootDeviceGreaterThan.BasicFunction ........................................... 803
Device.Storage.Controller.Fc .......................................................................................................... 805
Device.Storage.Controller.Fc.Interface ....................................................................................... 805
Device.Storage.Controller.Fcoe ...................................................................................................... 806
Device.Storage.Controller.Fcoe.Interface ................................................................................... 806
Device.Storage.Controller.Fcoe.Interoperability ........................................................................ 807
Page 53 of 907
Device.Storage.Controller.Flush ..................................................................................................... 808
Device.Storage.Controller.Flush.BasicFunction .......................................................................... 808
Device.Storage.Controller.Iscsi ....................................................................................................... 809
Device.Storage.Controller.Iscsi.Interface.................................................................................... 809
Device.Storage.Controller.Iscsi.iSCSIBootComponent.................................................................... 811
Device.Storage.Controller.Iscsi.iSCSIBootComponent.FwTable ................................................. 811
Device.Storage.Controller.Optical .................................................................................................. 813
Device.Storage.Controller.Optical.BasicFunction ....................................................................... 813
Device.Storage.Controller.PassThroughSupport ............................................................................ 814
Device.Storage.Controller.PassThroughSupport.BasicFunction ................................................. 814
Device.Storage.Controller.Raid ....................................................................................................... 815
Device.Storage.Controller.Raid.BasicFunction ........................................................................... 815
Device.Storage.Controller.Sas......................................................................................................... 816
Device.Storage.Controller.Sas.Interface ..................................................................................... 816
Device.Storage.Controller.Sata ....................................................................................................... 817
Device.Storage.Controller.Sata.Interface ................................................................................... 817
Device.Storage.Enclosure ............................................................................................................... 818
Device.Storage.Enclosure.DirectAccess ...................................................................................... 818
Device.Storage.Enclosure.DriveIdentification ............................................................................ 819
Device.Storage.Hd........................................................................................................................... 820
Device.Storage.Hd.BasicFunction ............................................................................................... 820
Device.Storage.Hd.PhysicalSectorSizeReportsAccurately .......................................................... 821
Device.Storage.Hd.1394.................................................................................................................. 823
Device.Storage.Hd.1394.Compliance.......................................................................................... 823
Device.Storage.Hd.Alua .................................................................................................................. 824
Device.Storage.Hd.Alua.Compliance .......................................................................................... 824
Device.Storage.Hd.Ata .................................................................................................................... 825
Device.Storage.Hd.Ata.BasicFunction ......................................................................................... 825
Device.Storage.Hd.Ata.Dma........................................................................................................ 826
Device.Storage.Hd.AtaProtocol ...................................................................................................... 826
Device.Storage.Hd.AtaProtocol.Performance ............................................................................ 827
Device.Storage.Hd.AtaProtocol.Protocol .................................................................................... 828
Device.Storage.Hd.DataVerification ............................................................................................... 829
Device.Storage.Hd.DataVerification.BasicFunction .................................................................... 829
Page 54 of 907
Device.Storage.Hd.Ehdd ................................................................................................................. 830
Device.Storage.Hd.Ehdd.Compliance ......................................................................................... 830
Device.Storage.Hd.EnhancedStorage ............................................................................................. 833
Device.Storage.Hd.EnhancedStorage.1667Compliance ............................................................. 833
Device.Storage.Hd.FibreChannel .................................................................................................... 834
Device.Storage.Hd.FibreChannel.Compliance ............................................................................ 835
Device.Storage.Hd.Flush ................................................................................................................. 835
Device.Storage.Hd.Flush.BasicFunction ...................................................................................... 835
Device.Storage.Hd.Hybrid ............................................................................................................... 836
Device.Storage.Hd.Hybrid.Piton ................................................................................................. 837
Device.Storage.Hd.Iscsi ................................................................................................................... 838
Device.Storage.Hd.Iscsi.BasicFunction........................................................................................ 838
Device.Storage.Hd.Mpio ................................................................................................................. 840
Device.Storage.Hd.Mpio.BasicFunction ...................................................................................... 840
Device.Storage.Hd.MultipleAccess ................................................................................................. 841
Device.Storage.Hd.MultipleAccess.MultiplePorts ...................................................................... 841
Device.Storage.Hd.MultipleAccess.PersistentReservation ............................................................. 842
Device.Storage.Hd.MultipleAccess.PersistentReservation.BasicFunction ................................. 843
Device.Storage.Hd.OffloadedDataTransfer .................................................................................... 844
Device.Storage.Hd.OffloadedDataTransfer.CopyOffload ........................................................... 844
Device.Storage.Hd.PersistentReservation ...................................................................................... 846
Device.Storage.Hd.PersistentReservation.ClusterFailover ......................................................... 846
Device.Storage.Hd.PortAssociation ................................................................................................ 848
Device.Storage.Hd.PortAssociation.BasicFunction ..................................................................... 848
Device.Storage.Hd.RaidArray .......................................................................................................... 849
Device.Storage.Hd.RaidArray.BasicFunction .............................................................................. 849
Device.Storage.Hd.RaidArray.BitLocker ...................................................................................... 850
Device.Storage.Hd.ReadZeroOnTrimUnmap .................................................................................. 850
Device.Storage.Hd.ReadZeroOnTrimUnmap.BasicFunction ....................................................... 851
Device.Storage.Hd.Sas .................................................................................................................... 851
Device.Storage.Hd.Sas.ComplyWithIndustrySpec ...................................................................... 851
Device.Storage.Hd.Sata................................................................................................................... 852
Device.Storage.Hd.Sata.BasicFunction ....................................................................................... 852
Device.Storage.Hd.Scsi.................................................................................................................... 853
Page 55 of 907
Device.Storage.Hd.Scsi.Connectors ............................................................................................ 854
Device.Storage.Hd.Scsi.ParallelInterface .................................................................................... 854
Device.Storage.Hd.ScsiProtocol ...................................................................................................... 856
Device.Storage.Hd.ScsiProtocol.ReferenceSpec ......................................................................... 856
Device.Storage.Hd.ScsiProtocol.SamCompliance ....................................................................... 857
Device.Storage.Hd.ScsiProtocol.SpcCompliance ........................................................................ 858
Device.Storage.Hd.ThinProvisioning ............................................................................................... 862
Device.Storage.Hd.ThinProvisioning.BasicFunction ................................................................... 862
Device.Storage.Hd.Trim .................................................................................................................. 864
Device.Storage.Hd.Trim.BasicFunction ....................................................................................... 864
Device.Storage.Hd.Uas.................................................................................................................... 865
Device.Storage.Hd.Uas.Compliance............................................................................................ 865
Device.Storage.Hd.UasOnEHCI ....................................................................................................... 866
Device.Storage.Hd.UasOnEHCI.BasicFunction ............................................................................ 867
Device.Storage.Hd.Usb ................................................................................................................... 867
Device.Storage.Hd.Usb.Compatibility ......................................................................................... 868
Device.Storage.Hd.Usb3 ................................................................................................................. 869
Device.Storage.Hd.Usb3.Compliance ......................................................................................... 869
Device.Storage.Hd.WindowsToGoCapableUSBDrive ...................................................................... 870
Device.Storage.Hd.WindowsToGoCapableUSBDrive.WindowsToGoCapableUSBDrive ............. 870
Device.Storage.Optical .................................................................................................................... 872
Device.Storage.Optical.CdRawRecording ................................................................................... 872
Device.Storage.Optical.CommandPerformance ......................................................................... 873
Device.Storage.Optical.DriveDefinition ...................................................................................... 876
Device.Storage.Optical.Features................................................................................................. 877
Device.Storage.Optical.MmcVersion .......................................................................................... 878
Device.Storage.Optical.Profiles................................................................................................... 879
Device.Storage.Optical.RealTimeStreaming ............................................................................... 880
Device.Storage.Optical.BluRayReader ............................................................................................ 881
Device.Storage.Optical.BluRayReader.Profiles ........................................................................... 881
Device.Storage.Optical.BluRayWriter ............................................................................................. 882
Device.Storage.Optical.BluRayWriter.Profiles ............................................................................ 882
Device.Storage.Optical.Sata ............................................................................................................ 883
Device.Storage.Optical.Sata.AsynchronousNotification ............................................................. 883
Page 56 of 907
Device.Streaming.HMFT ................................................................................................................. 884
Device.Streaming.HMFT.Decoding ............................................................................................. 884
Device.Streaming.HMFT.Encoding .............................................................................................. 887
Device.Streaming.Webcam.Base .................................................................................................... 897
Device.Streaming.Webcam.Base.AVStreamWDMAndInterfaceRequirements.......................... 897
Device.Streaming.Webcam.Base.BasicPerf ................................................................................ 899
Device.Streaming.Webcam.Base.DirectShowAndMediaFoundation ......................................... 900
Device.Streaming.Webcam.Base.KSCategoryVideoCameraRegistration ................................... 900
Device.Streaming.Webcam.Base.MultipleClientAppSupport..................................................... 901
Device.Streaming.Webcam.Base.SurpriseRemoval .................................................................... 902
Device.Streaming.Webcam.Base.UsageIndicator ....................................................................... 902
Device.Streaming.Webcam.H264 ................................................................................................... 903
Device.Streaming.Webcam.H264.H264Support ......................................................................... 903
Device.Streaming.Webcam.NonMSDriver ...................................................................................... 904
Device.Streaming.Webcam.NonMSDriver.VideoInfoHeader2 ................................................... 904
Device.Streaming.Webcam.USBClassDriver ................................................................................... 905
Device.Streaming.Webcam.USBClassDriver.UVC ....................................................................... 905
Device.Streaming.Webcam.USBClassDriver.UVCDriver ............................................................. 906
Page 57 of 907
Introduction
This release to web (RTW) document contains the Windows Hardware Certification requirements for
Windows 8 devices. These requirements are Microsoft’s guidelines for designing Windows internal
or external devices. Successfully following this guidance will allow a partner to receive certification
for their device and signing for their drivers.
The requirements are organized by feature using a Camel Case naming convention, which facilitates
grouping related requirements and communicating their relationship to the Windows feature they
are intended to support. Tests assessing compliance with the features are exposed during testing
with the Hardware Certification Kit and can be related directly back to these requirements.
Some requirements have passed forward from Logo requirements for earlier Windows versions
which used a category based structure. We have included the older LogoPoint ID in the comments
section for your convenience.
If Implemented Requirements
The Windows Hardware Certification program declares requirements which must be met by any
device under the feature area of device fundamentals, requirements for each connectivity used by
the device, and requirements for specific device type features or technologies in the PC ecosystem.
Additional functionality is built into Windows which is optional, and can offer a competitive edge for
manufacturers should they chose to implement these features. In these cases, there are
requirements which must be met only if the additional functionality is implemented. Because these
additional requirements apply only if the relevant functionality is implemented, they are referred to
as “if-implemented” requirements in this document.
The Hardware Certification Kit detects features exposed by a product automatically. The detected
features the will be tested for compliance whether they were mandatory to successfully be certified
as a defined product type or if the feature is optional. The title of the requirement or the exception
field will indicate when a requirement applies.
Features
Device.Audio.APO
Description:
This APO must match all APO tests
Related Requirements:


Device.Audio.APO.MicArrayRawData
Device.Audio.APO.WinPEConformance
Device.Audio.APO.MicArrayRawData
Target Feature: Device.Audio.APO
Title: System effect in capture path provides RAW data from microphone array when requested by
the client
Page 58 of 907
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
If a microphone array processing algorithm is provided in a Windows system effect audio processing
object (APO) instantiated in system effect local effect (LFX) insert point in capture path, it must
provide all the individual audio streams from the array when a client asks for a format greater than
one stream/channel. This allows the APO to provide hardware compensation processing and
microphone array processing to the client that takes advantage of the entire APO but allows clients
that rely on the microphone array processing that resides higher up in the audio subsystem to take
advantage of hardware compensation in the APO but not the array processing in it.
Exceptions:
Not Specified
Business Justification:
This helps Windows ensure mic array function correctly.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0045
Device.Audio.APO.WinPEConformance
Target Feature: Device.Audio.APO
Title: System effect APOs comply with Windows Protected Environment conformance and
compliance criteria
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Page 59 of 907
Description:
Audio Processing Objects (APOs) that are loaded into the system effect infrastructure by the audio
device driver INF must be signed with a certificate indicating conformance and compliance with the
robustness rules of the Windows Protected Environment. This signature attribute is granted
automatically as part of the submission process dependent on signing of the Test Agreements.
See Code Signing for Protected Media Components in Windows at
http://go.microsoft.com/fwlink/?LinkId=70751.
Exceptions:
Not Specified
Business Justification:
This helps ensure compatibility with protected media.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0048
Device.Audio.AudioController
Description:
This Audio Controller must match all Audio Controller tests
Related Requirements:


Device.Audio.AudioController.HDAudioVersionNumber
Device.Audio.AudioController.HDControllerCompliance
Device.Audio.AudioController.HDAudioVersionNumber
Target Feature: Device.Audio.AudioController
Title:
HD Audio 1.0 compliant hardware sets appropriate registers to specify the version number
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Page 60 of 907
Description:
HD Audio hardware that complies with HD Audio specification version 1.0 must set the correct
version number in the appropriate registers. The VMAJ and VMIN registers must specify a major
version number of 01h and a minor version number of 00h.
Design Notes:
In future HD Audio specification revisions the register values may be updated. It is assumed that any
future requirements that reference an updated revision of the specification will also require using
the VMAJ and VMIN registers defined by that revision of the specification.
Exceptions:
Not Specified
Business Justification:
This helps Windows understand the HD Audio version number and improves compatibility.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0013
Device.Audio.AudioController.HDControllerCompliance
Target Feature: Device.Audio.AudioController
Title:
HD Audio controllers comply with the Intel HD Audio specification
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
An audio or modem controller must be implemented as an HD Audio controller (except where noted
otherwise within this document). The controller must:
Be implemented according to Intel High Definition Audio Controller specification, Revision 1.0.
Be updated to comply with future specification revisions.
Page 61 of 907
Comply with future HD Audio specification ECRs in accordance with policies around new hardware
requirements.
Exceptions:
Not Specified
Business Justification:
This ensures compatibility with HD audio specification and enables Windows works correctly with
the device.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0012
Device.Audio.Base
Description:
This Device must match all base tests.
Related Requirements:























Device.Audio.Base.AudioDriversSupportMute
Device.Audio.Base.BasicDataFormats
Device.Audio.Base.ChannelMasks
Device.Audio.Base.DCOffset
Device.Audio.Base.DevicesWorkWithoutExtraSoftware
Device.Audio.Base.DigitalStreamsNoMixing
Device.Audio.Base.DockingStation
Device.Audio.Base.DRM
Device.Audio.Base.EfficientBufferManagement
Device.Audio.Base.ExposedAudioEndpointsAreFunctional
Device.Audio.Base.Fidelity
Device.Audio.Base.FullDuplexOperation
Device.Audio.Base.HDAudioRemoveDevicePowerState
Device.Audio.Base.IMiniportWaveRTStreamNotification
Device.Audio.Base.IndependentInputOutputFormatSelection
Device.Audio.Base.InitiatorTargetBlocktransferSupport
Device.Audio.Base.JackConnectorStateDescription
Device.Audio.Base.JackDetection
Device.Audio.Base.KSPROPERTYAUDIOMIXLEVELTABLE
Device.Audio.Base.KSPROPERTYAUDIOVOLUMELEVEL
Device.Audio.Base.KSTopologyCompliance
Device.Audio.Base.NoHiddenStreamRouting
Device.Audio.Base.NoUncontrollableStreamRouting
Page 62 of 907




















Device.Audio.Base.NoUndiscoverableDevice
Device.Audio.Base.PCMNonPCMForSPDIF
Device.Audio.Base.PowerManagement
Device.Audio.Base.ProperUSBDescriptors
Device.Audio.Base.RealtimeDriversSupportStandardLoopedStreaming
Device.Audio.Base.ReportSupportedProperties
Device.Audio.Base.RestartWithinASpecifiedDuration
Device.Audio.Base.ResumeLatency
Device.Audio.Base.SamplePositionAccuracy
Device.Audio.Base.SamplingAccuracy
Device.Audio.Base.TimeSynchronizedSampleRates
Device.Audio.Base.TipRing
Device.Audio.Base.TwoDMAEnginesAndConnections
Device.Audio.Base.VoiceCommunicationUAA
Device.Audio.Base.VolumeControlsIsLinear
Device.Audio.Base.VolumeGranularity
Device.Audio.Base.WAVEFORMATEXTENSIBLESupport
Device.Audio.Base.WaveRTConformance
Device.Audio.Base.WaveRTImplementation
Device.Audio.Base.ZeroGlitch
Device.Audio.Base.AudioDriversSupportMute
Target Feature: Device.Audio.Base
Title:
Audio drivers support mute
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows Server 2012
Windows RT
Description:
Any audio driver capable of supporting compressed format need to expose
KSPROPERTY_AUDIO_MUTE
Exceptions:
Not Specified
Business Justification:
Page 63 of 907
For information on how to twiddle the Pin Widget Control enable bit, see the Intel High Definition
Audio Specification, Revision 1.0or later.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0001
Device.Audio.Base.BasicDataFormats
Target Feature: Device.Audio.Base
Title:
Audio subsystem supports basic data formats
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
When the Microsoft software sample rate conversion (SRC) is used, hardware SRC is not required.
Windows provides software mixing and SRC, which eliminates the requirement for hardware to
support multiple sample rates.
Device Type
Required Sample Rate
Communications-only audio device
At least one of 16 kHz, 44.1 kHz, or 48 kHz*
General-purpose or media-capable audio device
At least one of 44.1 kHz or 48 kHz**
* Bluetooth HFP drivers that do not implement wideband speech are bound by the standard to
support only 8 kHz. This is an accepted exception.
** Unless further specified by external specifications. For example, HDMI audio requires both 44.1
kHz and 48 kHz, and Bluetooth A2DP requires both 44.1 kHz and 48 kHz for a Bluetooth sink.
Windows HCK tests may enforce these stricter specifications.
Support for other rates (8, 11.025, 16, 22.05, 32, 96, 192, and 384 kHz) in hardware is optional.
Design Notes:
This requirement is valid for both input and output devices.
Exceptions:
Not Specified
Business Justification:
Page 64 of 907
Full duplex audio is essential to support emerging communications applications such as Internet
Protocol (IP) telephony, conferencing, and network gaming. These applications require the audio
system to play back and record simultaneously. The following requirements ensure that full duplex
operation is available and performance is consistent across implementations.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0023
Device.Audio.Base.ChannelMasks
Target Feature: Device.Audio.Base
Title:
Audio device that supports multichannel audio formats properly handles channel masks
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
If the audio device supports multichannel audio formats, the audio device driver must deal with
channel masks consistent with the content and the current selected speaker configuration.
If supported, the device properly handles 5.1 and 7.1 PCM formats. The channels are routed to the
proper analog lines, and these requirements apply for all the channels except LFE.
See the Audio Driver Support for Home Theater Speaker Configurations white paper at
http://go.microsoft.com/fwlink/?LinkId=65430.
Exceptions:
Not Specified
Business Justification:
Multi-channel audio needs to behave in a predictable manner with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
7/17/2008
Page 65 of 907
Comments:
AUDIO-0035
Device.Audio.Base.DCOffset
Target Feature: Device.Audio.Base
Title:
+1.0
Audio capture device DC offset is limited within range of + or - 0.15 on a scale from -1.0 to
Applicable OS Versions:





Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Description:
Audio capture device DC offset is limited within range of + or - 0.15 on a scale from -1.0 to +1.0
Exceptions:
Not Specified
Business Justification:
To ensure good audio capture quality
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0055
Device.Audio.Base.DevicesWorkWithoutExtraSoftware
Target Feature: Device.Audio.Base
Title: Devices that work with UAA class drivers must support basic functionality without installing
any additional software or drivers.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Page 66 of 907
UAA audio devices must meet basic functionality requirements following a new Windows installation
and prior to the installation of any additional software (drivers, system services or applications).
When running exclusively with the built-in Windows support, audio devices as a minimum shall:
- Correctly render stereo sound from built-in speakers
- Correctly render mono sound from mono render devices
- Correctly transmit a stereo sound signal through line output connectors
- Correctly capture a stereo line-in signal
- Correctly capture a stereo mic-in signal
- Correctly capture a mono sound from mono capture devices
- Correctly support, Mute, Volume Control
Identical functionality must also be supported with any custom driver provided with the device.
If the physical design implements line-in and/or mic-in, then line-in and/or mic-in should work with
class drivers in Windows.
Design Notes:
This requirement checks the interaction of the UAA compatible devices with the class driver and
insures it is equivalent on basic functionality to that provided by third party drivers.
UAA class drivers support:
1. HD Audio
- High Definition Audio Specification Revision 1.0.
2. USB Audio 1.0
- Universal Serial Bus Device Class Definition for Audio Devices Release 1.0
- Universal Serial Bus Device Class Definition for Audio Data Formats Release 1.0
- Universal Serial Bus Device Class Definition for Terminal Types Release 1.0
- Universal Serial Bus Device Class Definition for MIDI Devices Release 1.0
Hardware mute and volume controls if implemented must be compatible with Windows class
drivers. In particular:

HD Audio hardware volume controls if implemented must be designed as amplifier widgets,
and not as HD Audio volume knob widgets. See HD Audio spec sections 7.3.3.7 "Amplifier
Gain/Mute", 7.3.4.10 "Amplifier Capabilities", and not 7.3.3.29 "Volume Knob".

HD Audio mute is implemented many ways in the class driver. If an amplifier widget has the
"mute capable" bit set, sending a mute control down must mute the signal path through
Page 67 of 907
that amplifier widget. See HD Audio spec sections 7.3.3.7 "Amplifier Gain/Mute" and
7.3.4.10 "Amplifier Capabilities". If a pin widget has "input capable" or "output capable" set,
setting "input enable" or "output enable" to 0 must mute the signal path through that pin
widget. See HD Audio spec sections 7.3.3.13 "Pin Widget Control" and 7.3.4.9 "Pin
Capabilities". Setting "digital enable" bit to 0 on a digital converter must mute the signal
path through that digital converter. See HD Audio spec sections 7.3.3.9 "Digital Converter
Control" and 7.3.4.6 "Audio Widget Capabilities".

USB hardware volume controls if implemented must be designed as the proper set of
descriptors and associated command responses. Refer to USB Audio Specification 1.0, Mute
Control and Volume Control as defined in sections 5.2.2.4.3.1 and 5.2.2.4.3.2.
Exceptions:
Not Specified
Business Justification:
Only UAA class drivers ship in Windows and will be installed on any UAA device on a new Windows
installation. Third party drivers posted on Windows Update require additional user action to be
downloaded and installed. Devices must provide basic audio functionality with class drivers to
protect the end user experience.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2011
AUDIO-0088
Device.Audio.Base.DigitalStreamsNoMixing
Target Feature: Device.Audio.Base
Title:
Audio sources are available as digital streams without analog mixing to the audio subsystem
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Audio sources must be available as digital audio streams that are accessible to the system-wide
kernel; that is, they must not rely exclusively on any analog mixing stage between the DAC converter
and the speaker jack as the only means for output. Sources that continue to offer an analog mixing
output configuration must also provide the user a configurable digital option.
Page 68 of 907
One model for providing the user such an option is Windows support for CD music.
This requirement covers the following audio sources, which must be available digitally to USB
speakers if attached:




CD-ROM or DVD
TV tuner
FM radio
Voice modem
PC beep notifications are exempt from this requirement.
Design Notes: Analog microphone and line in with available analog-to-digital converters (ADCs) are
digital-ready by definition. Devices for which the operating system supports emulation equivalents,
such as hardware-accelerated 3-D and MIDI synthesis (Microsoft DirectSound 3D emulation and the
Windows GS Wavetable SW Synth) are acceptable.
Exceptions:
Not Specified
Business Justification:
This requirement assures that all audio content can be made available at both the analog jack and
USB port. Elimination of the dependency on analog mixing for output is essential to making
computer audio easier to configure and use, and it removes a major obstacle for USB audio
rendering devices.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0030
Device.Audio.Base.DockingStation
Target Feature: Device.Audio.Base
Title:
Audio jacks on docking stations
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Page 69 of 907
Audio jacks on docking stations need to support the below three states:
1) The system is not plugged in to the dock:
The dock audio device should not appear in the Sound control panel at all.
2) The system is plugged in to the dock, but nothing is plugged into the jack:
The dock audio device should appear in the Sound control panel as "unplugged"
(DEVICE_STATE_DISCONNECTED.)
3) The system is plugged in to the dock, and something is plugged into the jack:
The dock audio device should appear in the Sound control panel as "working"
(DEVICE_STATE_ACTIVE.)
When the system is undocked and is using the HD Audio class driver, it is acceptable for devices on
dock to show as unplugged.
Exceptions:
Not Specified
Business Justification:
Ensures good audio experience for the end user when using docking station with audio jacks.
Scenarios:
Ensures compatibility with Windows.
Success Metric: Not Specified
Enforcement Date:
Comments:
9/16/2011
NEW
Device.Audio.Base.DRM
Target Feature: Device.Audio.Base
Title:
Audio device implements DRM support as defined in the Windows Driver Kit
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Page 70 of 907
Audio devices must comply with Windows trusted audio paths for digital rights management (DRM).
Hardware that complies with Windows DRM supports DRM level 1300. The audio drivers must not
call the DrmForwardContentToFileObject function.
The DRM requirement does not apply if the underlying device is a Bluetooth audio device.
Design Notes: See the "Digital Rights Management" topic in the Windows Driver Kit.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary for DRM compliance with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0014
Device.Audio.Base.EfficientBufferManagement
Target Feature: Device.Audio.Base
Title:
PCI-based audio device supports efficient audio buffer management
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
The audio device must be able to fully function when the system can provide only single 4K pages of
contiguous memory. In other words, the audio device can require many 4K pages of memory, but it
must not require the largest block of contiguous memory to exceed one 4K page.
The audio device and associated device-specific driver must not introduce unnecessary latency. If
the audio driver adds more than 2 ms of computational latency between buffer transfer and queuing
for rendering, the driver must provide a programmatic method for a latency-sensitive application to
temporarily disable the computation.
Exceptions:
Not Specified
Business Justification:
Page 71 of 907
This requirement ensures audio support in docking and dynamic loading scenarios where memory
may be fragmented with respect to pages. This requirement also helps to ensure that telephony
applications closely resemble the performance of a conventional phone and minimizes the possibility
that audio and video streams will appear out of synch.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0029
Device.Audio.Base.ExposedAudioEndpointsAreFunctional
Target Feature: Device.Audio.Base
Title: Audio device must be functional (capable of capture/render) all the time while the system is
powered on.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Exposed Audio Endpoints in a system must be functional (capable of capture/render) all the time
while the system is powered on. Built-in speakers and microphones must work while the system is
operational.
Exposed audio end points continue to function even during system state changes such as:


while the power source changes from external to battery or vice versa
while the GPU switches from a to b
Exceptions:
Not Specified
Business Justification:
Audio devices needs to remain functional
Scenarios:
Audio works as expected
Success Metric: Not Specified
Page 72 of 907
Enforcement Date:
Comments:
9/17/2008
NEW
Device.Audio.Base.Fidelity
Target Feature: Device.Audio.Base
Title:
Audio solution delivers a minimum fidelity audio experience
Applicable OS Versions:





Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Description:
Description: Audio solution, either integrated or add-on discrete streaming audio device, must meet
the following minimum fidelity audio requirements. Measurements are performed electronically via
externally accessible jacks (not in-air) for all the below defined device types when they exist on the
device/system. Frequency sweep and/or multi-tone test methods may be used when appropriate.
The Device Types in the tables reflect those defined by the Intel HD Audio Spec and the Microsoft HD
Audio Pin Configuration Programming Guidelines.
Device Type
Requirement
Value
Analog Line Output
Jack
THD+N
Dynamic range with
signal present
Magnitude Response
>= 65 dB
>= 80 dB A-weight
Sampling frequency
accuracy
Cross-talk attenuation
Full scale output
voltage
Dynamic range with
signal present during
system activity
Interchannel phase
delay
Analog Speaker
Output Jack (Example:
125mW into 8 Ohm
load)
THD+N
Dynamic range with
signal present
Magnitude Response
Frequency
range at 48KHz
and above
[20 Hz, 20 KHz]
[20 Hz, 20 KHz]
<= +-.25 dB ripple (.5dB peak to
peak delta), 1 dB at upper band
edge, 3dB at lower band edge
0.02%.
[20 Hz, 20 KHz]
>= 50 dB
>= .707 Vrms
[20 Hz, 15 KHz]
>= 80 dBA-weight
[20Hz, 20kHz]
30 degrees or 12.5
microseconds, whichever is
greater
>= 65 dB
>= 80 dB A-weight
[20 Hz, 20 KHz]
<= +-.25 dB ripple (.5dB peak to
[20 Hz, 20 KHz]
Page 73 of 907
[20 Hz, 20 KHz]
[20 Hz, 20 KHz]
Sampling frequency
accuracy
Cross-talk attenuation
Full scale output
voltage
Dynamic range with
signal present during
system activity
Interchannel phase
delay
Analog Headphone
Out Jack
THD+N
Dynamic range with
signal present
Magnitude Response
Sampling frequency
accuracy
Cross-talk attenuation
Full scale output
voltage
Dynamic range with
signal present during
system activity
Interchannel phase
delay
Analog Line In Jack
THD+N
Dynamic range with
signal present
Magnitude Response
Sampling frequency
accuracy
Full scale input
voltage
Device DC offset
Analog Microphone In
Jack
THD+N
Dynamic range with
signal present
Magnitude Response
peak delta), 1dB band edges
0.02%.
>= 50 dB
>= .707 Vrms
[20 Hz, 15 KHz]
>= 80 dB A-weight
[20Hz, 20kHz]
30 degrees or 12.5
microseconds, whichever is
greater
>= 65dB
>= 45 dB at 32 Ohm Load
>= 80 dB A-weight
>= 60 dB at 32 Ohm Load
<= +-.25 dB ripple (.5dB peak to
peak delta), 1 dB at upper band
edge, 3dB at lower band edge
0.02%.
[20 Hz, 20 KHz]
>= 50 dB
[100 Hz, 15
KHz]
(3)
>=120 mVrms at 320 Ohm load
[100 Hz, 20
KHz]
[100 Hz, 20
KHz]
[100 Hz, 20
KHz]
>= 80 dB A-weight
>= 60 dB A-weight at 32 Ohm
Load
30 degrees or 12.5
microseconds, whichever is
greater
>= 65 dB
>= 80 dB A-weight
[100Hz, 20kHz]
<= +-.25 dB ripple (.5dB peak to
peak delta), 1 dB at upper band
edge, 3dB at lower band edge
0.02%.
[20 Hz, 20 KHz]
[100 Hz, 20
KHz]
[20 Hz, 20 KHz]
[20 Hz, 20 KHz]
>= .707 Vrms
within+/-0.15 on a scale from
-1.0 to +1.0
>= 65 dB
>= 70 dB A-weight
<= +-.25 dB ripple (.5dB peak to
peak delta), 1 dB at upper band
Page 74 of 907
[100 Hz, 20
KHz]
[100 Hz, 20
KHz]
[100 Hz, 20
KHz]
Sampling frequency
accuracy
Full scale input
voltage
Device DC offset
edge, 3dB at lower band edge
0.02%.
>= 0.0707 Vrms
within+/-0.15 on a scale from
-1.0 to +1.0
1. For codecs on systems regardless of voltage the full scale input and output full scale voltage
requirement changes to >= 0.707 Vrms. Speaker output expected to be half into 8 Ohm for 3.3V
codecs.
2. Reference level: 1Vrms. Full Scale is defined as a signal that contains samples at the maximum
digital value. .
3. These are two examples. Testing will occur at these two endpoints and anywhere within this
envelope. Smaller output voltages (>=120mVrms) are permitted when required by regulatory and
safety standards.
Design Notes:
For more information on the Audio Fidelity Testing Policy see
http://go.microsoft.com/fwlink/?LinkId=72638.
Exceptions:
Not Specified
Business Justification:
Audio fidelity reaches parity with mainstream consumer electronics.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
September 16, 2008
AUDIO-0006
Device.Audio.Base.FullDuplexOperation
Target Feature: Device.Audio.Base
Title:
Audio subsystem supports full duplex operation
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Page 75 of 907

Windows Server 2012
Description:
Full duplex audio is essential to support emerging communications applications such as IP telephony,
conferencing, and network gaming. These applications require the audio system to play back and
record simultaneously.
At least one audio subsystem in a PC system must support full-duplex operation. Secondary audio
subsystems may be added to the systems that support only half-duplex operation.
Exceptions:
Not Specified
Business Justification:
Full duplex audio is essential to support emerging communications applications such as Internet
Protocol (IP) telephony, conferencing, and network gaming. These applications require the audio
system to play back and record simultaneously. The following requirements ensure that full duplex
operation is available and performance is consistent across implementations.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0024
Device.Audio.Base.HDAudioRemoveDevicePowerState
Target Feature: Device.Audio.Base
Title:
HD Audio Codec Driver Must Not Leave Function Group in D3Cold State Upon Unload
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Description:
By the exit of the IRP handler for IRP_MJ_PNP/IRP_MN_REMOVE_DEVICE, an HD Audio Codec driver
must have
(a) remembered or discovered the current power state of the function group and
Page 76 of 907
(b) if that current function group power state was D3 Cold, the driver must have changed it to a
different power state. The function group power state upon exit is required to be D3.
Exceptions:
Not Specified
Business Justification:
HD Audio devices need to honor specified power states.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
NEW
Device.Audio.Base.IMiniportWaveRTStreamNotification
Target Feature: Device.Audio.Base
Title: WaveRT drivers support pull mode audio streaming technology by implementing the
IMiniportWaveRTStreamNotification interface.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
By supporting this functionality in the driver, future Microsoft Windows operating systems will be
able to employ more efficient techniques for supplying and retrieving data buffers from the audio
device. In turn, this will reduce the overall audio latency on the system.
Design Notes:
IMiniportWaveRTStreamNotification
The IMiniportWaveRTStreamNotification interface augments the IMiniportWaveRTStream interface,
providing additional methods to facilitate DMA driver event notifications. The port driver accesses
this interface by querying the IMiniportWaveRTStream interface (via QueryInterface) that it received
by calling the IMiniportWaveRT::NewStream method. IMiniportWaveRTStreamNotification inherits
from the IUnknown interface.
IMiniportWaveRTStreamNotification is not supported in operating systems earlier than Windows
Vista.
Page 77 of 907
In addition to the methods that IMiniportWaveRTStreamNotification inherits from the IUnknown
interface, IMiniportWaveRTStreamNotification supports the following methods:




IMiniportWaveRTStreamNotification::AllocateBufferWithNotification
IMiniportWaveRTStreamNotification::FreeBufferWithNotification
IMiniportWaveRTStreamNotification::RegisterNotificationEvent
IMiniportWaveRTStreamNotification::UnregisterNotificationEvent
In addition to the above, the driver INF will also need to be modified with the following changes to
support event notifications:
1. Use AddReg directive to reference a new add-registry-section to add endpoint property keys. This
step can be skipped if such a section already exists. The following example adds a new add-registrysection (HDAudio.EPProperties.AddReg) under HdAudModel.PrimarySpeakerTopo:
[HdAudModel.PrimarySpeakerTopo]
AddReg=HDAudio.EPProperties.AddReg
2. Next, create an add-registry-section, if it does not already exist, to add endpoint property keys to
the registry. Example below adds the appropriate property key for the first endpoint declared in this
INF:
[HDAudio.EPProperties.AddReg]
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\0",%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1
3. In the strings section, add the following section for the value of the property keys used in Step 2
above:
PKEY_AudioEndpoint_Association="{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioEndpoint_Supports_EventDriven_Mode="{1DA5D803-D492-4EDD-8C23E0C0FFEE7F0E},7"
Please reference Windows Driver Kit documentation for details on writing an INF file.
More detailed information on Wave Port Driver for Real-Time Audio Streaming can be found in
Windows Hardware Developer Central.
Exceptions:
Not Specified
Business Justification:
This is needed to help restore parity with Windows in regards to audio latency. Applications that are
timing sensitive in regards to audio such as communication applications may find that the latency
increase in later Windows Operating Systems prevent their communication applications from
functioning properly.
Page 78 of 907
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0054
Device.Audio.Base.IndependentInputOutputFormatSelection
Target Feature: Device.Audio.Base
Title:
Audio subsystem supports independent selection of input and output sample formats
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
If the built-in or external audio device includes both input and output capabilities, the audio device
must support independent selection of input and output sample rates and support concurrent
streaming at arbitrarily selected sample rates.
Exceptions:
Not Specified
Business Justification:
Full duplex audio is essential to support emerging communications applications such as Internet
Protocol (IP) telephony, conferencing, and network gaming. These applications require the audio
system to play back and record simultaneously. The following requirements ensure that full duplex
operation is available and performance is consistent across implementations.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0042
Device.Audio.Base.InitiatorTargetBlocktransferSupport
Target Feature: Device.Audio.Base
Title:
PCI-based audio device supports initiator, target, and block transfer
Page 79 of 907
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Full-duplex audio sample transport must be supported by using separate PCI bus-mastering
hardware for playback and capture sample streams.
Design Notes: See PCI Local Bus Specification, Revision 2.3 (PCI2.3) or later, "Bus Master."
Exceptions:
Not Specified
Business Justification:
Helps ensure compatibility with PCI local bus
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0028
Device.Audio.Base.JackConnectorStateDescription
Target Feature: Device.Audio.Base
Title:
Audio drivers support specific properties to describe state of jack/connector
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Audio drivers must support the following properties: KSPROPERTY_JACK_DESCRIPTION and
KSPROPERTY_JACK_DESCRIPTION2.
Page 80 of 907
* For every endpoint exposed by an HD Audio driver, the driver must respond to a
KSPROPERTY_JACK_DESCRIPTION request with a KSJACK_DESCRIPTION structure.
*For every endpoint exposed by an HD Audio driver, the driver must respond to a
KSPROPERTY_JACK_DESCRIPTION2 request with a KSJACK_DESCRIPTION2 structure.
*The structures must be populated to accurately reflect the hardware state.
* Third-party jack-presence-detecting drivers use KSJACK_DESCRIPTION.IsConnected for
KSPROPERTY_JACK_DESCRIPTION and jackdesc2_presence_detect_capability for
KSPROPERTY_JACK_DESCRIPTION2.
Refer to http://msdn.microsoft.com/en-us/library/ff537484(v=VS.85).aspx
Exceptions:
USB audio 1.0
Business Justification:
Jack connector state description helps Windows in correctly routing media to devices.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0077
Device.Audio.Base.JackDetection
Target Feature: Device.Audio.Base
Title:
Audio devices need to support jack detection
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Analog and digital jacks need to support jack presence detection, except for USB Audio 1.0 devices
and S/PDIF. Third-party drivers must advertise this to the OS via
KSJACK_DESCRIPTION2.JackCapabilities and relay jack connection state to the OS via
KSJACK_DESCRIPTION.IsConnected
Page 81 of 907
Exceptions:
Not Specified
Business Justification:
This requirement helps Windows conform to default device heuristics in routing audio streams to
appropriate end points.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
AUDIO-0016
Device.Audio.Base.KSPROPERTYAUDIOMIXLEVELTABLE
Target Feature: Device.Audio.Base
Title: Audio driver that implements KSNODETYPE_SUPERMIX correctly implements the
KSPROPERTY_AUDIO_MIX_LEVEL_TABLE property
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
If a driver implements support forKSNODETYPE_SUPERMIX then that node must correctly support
the KSPROPERTY_AUDIO_MIX_LEVEL_TABLE property whose value is a multiple of decibels.
Design Notes: See the Windows Driver kit, "KSNODETYPE_SUPERMIX." The decibel values are
documented on MSDN.
Exceptions:
Not Specified
Business Justification:
To move the OS and the devices we support into the entertainment space it is important that the
systems running our entertainment OS SKUs behave in a manner familiar to the users. Volume
control on the PC today differs wildly from system to system and this requirement will help create a
more consistent, predictable volume control.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 82 of 907
Enforcement Date:
Comments:
9/17/2008
AUDIO-0039
Device.Audio.Base.KSPROPERTYAUDIOVOLUMELEVEL
Target Feature: Device.Audio.Base
Title: Audio driver that implements KSNODETYPE_VOLUME correctly supports the
KSPROPERTY_AUDIO_VOLUMELEVEL property
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
If a driver implements support for KSNODETYPE_VOLUME, that node must correctly support the
KSPROPERTY_AUDIO_VOLUMELEVEL property whose value is a multiple of decibels.
Design Notes: See the Windows Driver kit, "KSNODETYPE_VOLUME." The decibel values are
documented on MSDN.
Exceptions:
Not Specified
Business Justification:
To move the OS and the devices we support into the entertainment space it is important that the
systems running our entertainment OS SKUs behave in a manner familiar to the users. Volume
control on the PC today differs wildly from system to system and this requirement will help create a
more consistent, predictable volume control.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0038
Device.Audio.Base.KSTopologyCompliance
Target Feature: Device.Audio.Base
Title: Audio Device Driver provides kernel streaming topology according to the documentation in
the Microsoft Windows Driver Kit
Page 83 of 907
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Some important examples (not inclusive of all the driver has to adhere to, see the WDK for full
disclosure):
Check Pin KsDataRange
If a datarange structure (KSDATARANGE structure) has a "Specifier" value
KSDATAFORMAT_SPECIFIER_WAVEFORMATEX, then:
FormatSize must be sizeof(KSDATARANGE_AUDIO).
KSDATARANGE_AUDIO values must have:
SampleFrequency is between 1 Hz and 2,000,000 Hz
BitsPerSample are between 8 and 32 bits.
Check Orphaned Pins
All pins must have at least one internal connection and none can be orphaned.
Node Verifications:
All Nodes Pin I/O Count
For all node types specified in the MSDN, the following is a list of the required number of input and
output connections.
KS Node
KSNODETYPE_MUX
KSNODETYPE_SUM
KSNODETYPE_DEMUX
KSNODETYPE_ACOUSTIC_ECHO_CANCEL
KSNODETYPE_DEV_SPECIFIC
All other nodes
Check Orphaned Nodes
Number of Inputs
>= 1
> =1
1
2
Not Specified
1
Number of Outputs
1
1
>1
2
Not Specified
1
Checks to make sure that all nodes have connections to other nodes and no orphaned nodes are left.
Page 84 of 907
All channel properties, including channels returning Boolean values, such as mute, must include one
MembersHeader, and the MembersCount field must accurately describe the number of channels.
This requirement also applies to mono controls.
Test your device driver with the KS Topology test to ensure compliance with this requirement.
Exceptions:
Not Specified
Business Justification:
This helps ensure driver compatibility with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0052
Device.Audio.Base.NoHiddenStreamRouting
Target Feature: Device.Audio.Base
Title:
Audio device relies on Windows to support various throughput scenarios
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Audio device must not rely on analog circuitry designed to mix audio signals between the various
device inputs and outputs or signals routing from one DAC to multiple output connectors or from
multiple input connectors to one ADC for playback and capture operations in other ways than
defined in the UAA HD Audio Pin Config Guidelines.
The device must be able to rely on the operating system to support various throughput and
monitoring scenarios and provide independent or otherwise pre-defined by Microsoft audio device
implementation guidelines audio connectivity on the PC.
This requirement does not prohibit a codec from having a mixer, it implies that the codec must not
rely on the mixer for I/O.
This requirement does not prohibit hardware from supporting offloading, provided the HW audio
capabilities are exposed in a manner consistent with Windows.
Page 85 of 907
DAC’s and ADC’s must have direct I/O from jacks to the operating system.
Design Notes: The PC streaming audio device should behave like a transparent entity without any
processing, including mixing paths in the analog domain that the operating system is unaware of.
This enables predictability and a uniform audio experience for all Windows users.
Exceptions:
Not Specified
Business Justification:
This helps Windows make appropriate decisions on media stream routing to ensure a predictable
user experience.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
July 13, 2008
AUDIO-0003
Device.Audio.Base.NoUncontrollableStreamRouting
Target Feature: Device.Audio.Base
Title: Audio driver does not perform undiscoverable stream redirection or perform other hidden
stream handling that is unknown and/or uncontrollable by user or the Windows Audio System.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Audio driver does not perform undiscoverable stream redirection or perform other hidden stream
handling that is unknown and/or uncontrollable by user or the Windows Audio System.
Audio driver does not perform hidden stream redirection, routing, switching, splitting, mixing,
muxing to other exposed or hidden logical audio devices, applications or other entities but ensures
the audio stream from the audio system endpoint for a particular logical device is only directed to
that particular logical device that the application is streaming to, as set by the Windows user in the
Windows Sound control panel.
The handling of streams is an application layer feature and must not be performed by audio drivers
in fashions not discoverable to Windows.
Page 86 of 907
This requirement does not apply to hardware processing as described by
KSNODETYPE_AUDIO_ENGINE.
Design Notes: A Windows friendly audio driver exposes the capabilities and peculiarities of the
independent logical audio endpoints the audio device or system audio implementation supports.
The audio driver provides other hardware specific support enabling use of the device on Windows
but the audio driver does not enact policies on the streams coming from the Windows application
layer destined for a selected logical audio endpoint on the device or other devices.
Exceptions:
Not Specified
Business Justification:
The move towards a discoverable audio subsystem empowers Windows applications and Windows
itself to provide flexible and powerful media streaming policies for user/OEM control. This initiative
abstracts the choices of where streams go from the hardware and kernel mode driver code where it
is hidden and uncontrollable by the Windows user in most cases. This requirement will enable a
more powerful, feature rich Windows audio system in the future and also allow more control to the
applications run.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0053
Device.Audio.Base.NoUndiscoverableDevice
Target Feature: Device.Audio.Base
Title: Audio device does not use undiscoverable and/or uncontrollable non-linear audio processing
that is on by default.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Some applications depend on accessing unaltered audio data to provide the intended user
experience. Products must be capable of providing audio data from Windows applications to
listener’s ear, or from user’s mouth to Windows application that is not modified in any way by the
Audio Device in hardware, firmware or 3rd party software. This means that there shall be no
Page 87 of 907
undiscoverable or uncontrollable hardware, firmware or 3rd party software-based AGC, AEC, Beam
Forming, Noise suppression or anything else that significantly alters the audio samples (e.g., nonlinear processing) from/to the device.
Processing of this type is allowable on audio recording or playback streams if a means is provided for
users to disable the processing on their systems, either by exposing the effects as APOs or through
another solution. Once disabled by a user, processing must remain off on that product until a user
turns it back on.
There is an exception for processing that protects system reliability. This may be on by default and
not provide a disable mechanism. Companies that implement reliability effects must ensure the
processing elements are reliable and do not pose compatibility issues with the wide range of
Windows application needs.
Digital effects may default to enabled or disabled on first use.
Exceptions:
Not Specified
Business Justification:
Ensures compatibility with Windows
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0083
Device.Audio.Base.PCMNonPCMForSPDIF
Target Feature: Device.Audio.Base
Title:
Audio device supports S/PDIF output for PCM and non-PCM data streams
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
If S/PDIF output is implemented, such Audio device needs to support both PCM and non-PCM data
streams.
Page 88 of 907
Design Notes: See recommended requirements in the Universal Audio Architecture UAA Hardware
Design Guidelines at http://go.microsoft.com/fwlink/?LinkId=50734.
Exceptions:
Not Specified
Business Justification:
The ability to provide connectivity to AVRs with the prevalent SPDIF protocol support enables key
entertainment scenarios like playing back DVD with compressed multi-channel audio content.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0041
Device.Audio.Base.PowerManagement
Target Feature: Device.Audio.Base
Title:
Audio device complies with related power management specifications
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Audio devices must comply with Audio Device Class Power Management Reference Specification,
Version 1.0, which provides definitions of the OnNow device power states (D0–D3) for these devices.
The specification also covers the device functionality expected in each power state and the possible
wake-up event definitions for the class. The device and driver must implement support for power
state D3. Support for other device power management states is optional.
For implementation details, refer to Audio Device Power Management Reference Specification,
Version 1.0, at http://go.microsoft.com/fwlink/?LinkId=58377.
Exceptions:
Not Specified
Business Justification:
This is needed for compatibility with Windows.
Scenarios:
Not Specified
Page 89 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0026
Device.Audio.Base.ProperUSBDescriptors
Target Feature: Device.Audio.Base
Title:
USB audio device to properly set descriptor to indicate the purpose of device
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Description:
USB audio device must properly set descriptor to indicate the purpose of device according to the
USB spec http://www.usb.org/developers/devclass_docs/termt10.pdf
Exceptions:
Not Specified
Business Justification:
Industry spec conformance
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
NEW
Device.Audio.Base.RealtimeDriversSupportStandardLoopedStreaming
Target Feature: Device.Audio.Base
Title: KS category realtime drivers need to support at least standard looped streaming. Other KS
category audio drivers need to support standard streaming.
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Page 90 of 907




Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
To enable user to take advantage of the most efficient lowest latency path and to play audio
correctly on the windows platform, the windows audio engine requires:
* KS category realtime drivers to support at least standard looped streaming.
* Other KS category audio drivers to support at least standard streaming.
Exceptions:
Not Specified
Business Justification:
Enable low latency audio
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
NEW
Device.Audio.Base.ReportSupportedProperties
Target Feature: Device.Audio.Base
Title:
The audio driver correctly reports all supported properties
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Description:
If the audio device and driver support additional properties, the audio driver must report all
supported properties correctly to optimize speaker configuration.
Design Notes:
Page 91 of 907
If the driver has analog output, the driver exposes a DAC node in its topology. The driver must then
support KSPROPSETID_Audio and KSPROPERTY_AUDIO_CHANNEL_CONFIG on that node through a
filter handle. The driver then correctly reports support for this property (that is, BASIC_SUPPORT call
with KSP_NODE.[node ID of DAC] must succeed) and reports the _GET and _SET capabilities. See the
Windows Driver Kit, "Streaming Devices."
Exceptions:
Not Specified
Business Justification:
The PC in the living room as the Media Center hub remains an important goal to Microsoft. This
requirement will improve the user experience setting up a PC in the living room. Moving the OS into
the home includes attaching it to various speaker setups and the OS needs information to allow the
correct speaker setting to be found.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0033
Device.Audio.Base.RestartWithinASpecifiedDuration
Target Feature: Device.Audio.Base
Title:
Audio device restarts working within a delay of 10 seconds for S1-S3 and 15 seconds for S4.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Audio device restarts working within a delay of 10 seconds for S1-S3 and 15 seconds for S4.
Refer to: http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a923143f3456c/AudPMSpc.rtf
Exceptions:
Not Specified
Business Justification:
User experience in power state changes.
Page 92 of 907
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
NEW
Device.Audio.Base.ResumeLatency
Target Feature: Device.Audio.Base
Title: Audio adapter should have resume latency to running state (D0) less than the specified
values
Applicable OS Versions:




Windows RT
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
When powered down, an audio adapter must be able to resume to the fully powered state
(complete a D0 Power IRP) within the maximum time specified by PortCls.
Using the new IAdapterPowerManagement3 interface, PortCls generates a new D3 exit latency
tolerance and communicates it dynamically to the audio miniport. These tolerances are represented
as PC_EXIT_LATENCY enumeration values as defined below.
PC_EXIT_LATENCY
Maximum Time to Resume to D0
PcExitLatencyInstant
0 ms (Do not power down – will only be sent when device is in D0)
PcExitLatencyFast
35 ms
PcExitLatencyResponsive
300 ms
Exceptions:
Not Specified
Business Justification: To ensure better user experience
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
2/24/2012
Not Specified
Page 93 of 907
Device.Audio.Base.SamplePositionAccuracy
Target Feature: Device.Audio.Base
Title: Audio driver reports render sample position with defined accuracy for stream
synchronization
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Description:
HD Audio drivers must be able to report the current position of the buffer being rendered with an
accuracy of 1/20000th of a second, or with frame accuracy (as defined in the HD Audio specification)
the current position of the buffer being rendered, in relation to the samples given to the codec. This
applies to both the compressed and uncompressed data.
This requirement does not imply that the compressed and uncompressed streams are synchronized.
The requirement covers both types of streams but that is the extent of the interaction between the
stream types.
For USB audio devices, the required accuracy is 1ms for USB Audio 1.0 implementations and
0.125ms for USB Audio 2.0 implementations.
For all other audio devices, the required accuracy is 1ms.
Exceptions:
Not Specified
Business Justification:
Justification: To be able to ensure the most accurate synchronization between audio streams and
between audio and video streams the position information provided by the audio driver must be
accurate. This accuracy will help improve the PC media consumption user experience to the level of
Consumer Electronics which is important as the PC moves into the home entertainment space. This
requirement also helps RTC features like Automatic Echo Cancellation work better and provide an
improved user experience in the business PC market where VOIP
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
7/17/2008
Page 94 of 907
Comments:
AUDIO-0027
Device.Audio.Base.SamplingAccuracy
Target Feature: Device.Audio.Base
Title:
Audio sampling position error needs to be less than 0.02 %
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Audio sampling position error needs to be less than 0.02 % in order to help accurate echo
cancellation when using the device for communication purposes. Sampling rates for capture or
render shall be one of the following: 48kHz, 44.1kHz or 16kHz.
Exceptions:
Not Specified
Business Justification:
Ensuring accuracy of sampling position
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
NEW
Device.Audio.Base.TimeSynchronizedSampleRates
Target Feature: Device.Audio.Base
Title: Audio subsystem supports time-synchronized sample rates if both input and output
capabilities are present
Applicable OS Versions:





Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Page 95 of 907


Windows Server 2008 R2 x64
Windows Server 2012
Description:
If the built-in or external audio device includes input and output capabilities, the timing relationship
between input and output sample rates must remain constant (that is, no drift). For example, if 8
kHz is selected for both input and output sampling rate, audio hardware must ensure that the
sampling rate for input and output is precisely matched.
Further, when input and output sample rates are set to integer ratios, the actual sample rate ratios
must match (that is, no drift). For example, if an 8-kHz input sampling rate and a 32-kHz output
sampling rate are selected, the ratio of actual sampling rates must be precisely 8:32. This
requirement can be accomplished by ensuring that both input and output sampling rates are derived
from the same clock and that sample rate divisors are set correctly.
Design Notes: This requirement helps ensure that AEC and NS algorithms maintain performance and
convergence. This requirement does not apply to inputs and outputs where the input source sets a
clock such as a digital S/PDIF input.
Exceptions:
Not Specified
Business Justification:
Full duplex audio is essential to support emerging communications applications such as Internet
Protocol (IP) telephony, conferencing, and network gaming. These applications require the audio
system to play back and record simultaneously. The following requirements ensure that full duplex
operation is available and performance is consistent across implementations.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0043
Device.Audio.Base.TipRing
Target Feature: Device.Audio.Base
Title:
Audio jacks must use defined tip/ring connections to ensure proper audio channel path.
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Page 96 of 907

Windows Server 2012
Description:
If the system exposes a multi-channel analog logical device, then each analog output must have
independent DAC resource.
The audio jacks must use defined tip/ring connections to ensure proper audio channel path.
Audio line in
Left line in
Tip of connector
Right line in
Ring of connector
Audio line out (front left and right)
Left front out
Tip of connector
Right front out
Ring of connector
Microphone in (mono)
Microphone in
Tip of connector
4V Bias
Ring of connector
Microphone in (stereo)
Left Mic in
Tip of connector
Right Mic in
Ring of connector
Side surround left and right out
Left surround
Tip of connector
Right surround
Ring of connector
Rear surround left and right out
Left back
Tip of connector
Right back
Ring of connector
Center speaker & LFE (subwoofer) out
Front center out
Tip of connector
LFE (subwoofer) out
Ring of connector
Design Notes: See the Intel HD Audio Specification, Revision 1.0, and Microsoft HD Audio Pin
Configuration Programming Guidelines.
See recommended requirements in the Universal Audio Architecture UAA Hardware Design
Guidelines at http://go.microsoft.com/fwlink/?LinkId=50734.
Exceptions:
Not Specified
Business Justification:
Enables uniform and predictable audio connectivity experience based on standardized audio
connectors.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
July 17, 2008
AUDIO-0002
Device.Audio.Base.TwoDMAEnginesAndConnections
Target Feature: Device.Audio.Base
Title: Audio device that supports digital output has at least two independent DMA engines and a
separate physical connection for digital output using one of the available DMA engines
Applicable OS Versions:
Page 97 of 907







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
The audio controller that supports digital output must have two independent DMA engines, one
that can be used for wave output and the other to make it possible to support AC-3 over S/PDIF at
the same time. The digital audio output capability is supported through a separate physical
connector identified for digital audio output and used only for digital audio output.
Given physical limitations, PC system may have limited input and/or output streams. Secondary HD
audio controller in such systems may implement fewer DMA engines.
Design Notes: With support for two independent DMA engines, a different signal can be streamed to
each connector simultaneously. For example, sending a DVD player application's Dolby Digital
stream to the S/PDIF connector while simultaneously sending a voice conversation to the analog
connectors. The S/PDIF port needs to be represented as its own audio "device" separate from the
analog outputs. Therefore, it will have its own policy configuration, including the preferred data
format for a specific signal.
Exceptions:
Not Specified
Business Justification:
Justification: Ease of use, better user experience for eHome Media Center type SKUs that deal with
digital output (typically AC-3 data from DVDs to home receiver systems).
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0031
Device.Audio.Base.VoiceCommunicationUAA
Target Feature: Device.Audio.Base
Title: Voice Communication devices must be UAA compliant audio devices with an appropriate
communication centric form factor exposed to the operating system through available mechanisms
Applicable OS Versions:


Windows 8 Client x86
Windows 8 Client x64
Page 98 of 907





Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Voice communication devices must expose themselves to the operating system as Universal Audio
Architecture (UAA)-compliant audio devices. The devices must include an appropriate
communication-centric form factor, such as a headset or handset, that Windows can recognize and
support.
Webcams that have a microphone expose a microphone form factor device by using USB descriptors
according to the USB Audio 1.0 specification.
Aggregate USB audio devices (that is, audio devices that have input and output on the same device)
expose themselves to Windows as handset or headset device types by using USB descriptors
according to the USB Audio 1.0 specification.
For integrated and PCI audio devices that have analog jacks, the jacks are exposed accurately by
using the pin configuration registers and driver topology. The driver topology uses relevant
KSNODETYPE descriptors.
There are two options to identify devices as communication-class devices for audio testing with
Windows.

Audio endpoint devices of certain KSNODETYPE descriptors are automatically treated as
communication devices for testing purposes. Custom drivers should map to one of these
KSNODETYPEs for the device to be recognized as a communication-class device. The
following list is a full list of communication-class KSNODETYPE descriptors:
KSNODETYPE_MICROPHONE
KSNODETYPE_DESKTOP_MICROPHONE
KSNODETYPE_PERSONAL_MICROPHONE
KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE
KSNODETYPE_MICROPHONE_ARRAY
KSNODETYPE_PROCESSING_MICROPHONE_ARRAY
KSNODETYPE_COMMUNICATION_SPEAKER
KSNODETYPE_HANDSET
KSNODETYPE_HEADSET
KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION
Page 99 of 907
KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE
KSNODETYPE_ECHO_CANCELLING_SPEAKERPHONE
KSNODETYPE_PHONE_LINE
KSNODETYPE_TELEPHONE
KSNODETYPE_DOWN_LINE_PHONE
Microsoft class drivers map device types to these KSODETYPE descriptors based on information from
device hardware or firmware. For example, the Microsoft USB Audio class driver directly maps the
USB Audio terminal types that are defined in tables 2-2, 2-4, and 2-5 of the Universal Serial Bus
Device Class Definition for Terminal Types, Revision 1.0, March, 1998 to the corresponding
KSNODETYPE descriptors above, with three exceptions that do not clearly imply a communication
function. These exceptions are the following:
Terminal Type
Code
I/O Description
Input Undefined
0x0200 I
Input terminal, undefined type
Bi-directional Undefined
0x0400 I/O Bi-directional terminal, undefined type
Telephony Undefined
0x0500 I/O Telephony terminal, undefined type
To see the Universal Serial Bus Device Class Definition for Terminal Types, Revision 1.0, March, 1998,
visit the following website:
http://www.usb.org/developers/devclass_docs/termt10.pdf
Communication-class USB audio device manufacturers must use one of the mapped terminal types
to be tested against communication class requirements and to be used correctly in Windows.
Other drivers may choose different mapping criteria. As long as they map to a KSNODETYPE
descriptor that is listed above, the drivers will be considered communication-class during testing. For
information on expressing KSNODETYPE descriptors in a WDM driver, see the following website:
http://msdn.microsoft.com/en-us/library/ms790325.aspx

KSNODETYPE mappings are the preferred solution. However, if these mappings are not
sufficient, it is possible to declare a given device as communication-class by adding the .inf
driver. To use the .inf method, follow these steps:
1. Use the AddReg directive to reference a new add-registry section to add endpoint property keys.
This step can be skipped if such a section already exists. The following example adds a new
Endpoint.AddReg add-registry section under the
USBAudio.MyDevice.Interfacesection/method/other element:
[USBAudio.MyDevice.Interface]
AddReg=Endpoint.AddReg
2. Next, create an add-registry section, if it does not already exist, to add endpoint property keys to
the registry. The following example adds the appropriate property key for the first capture endpoint
Page 100 of 907
that is declared to be a communication device. The capture endpoint is declared in this INF method
for the KSNODETYPE_ANY node:
[Endpoint.AddReg]
HKR,"EP\\0",%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,"EP\\0",%PKEY_Endpoint_EndpointRoleAffinity%,0x00010001,0x00000204
Note that there are three possible valid values for this key, based on whether the device is a render
device, a capture device, or both:

0x00000104 A render device of the associated KSNODETYPE descriptor
would be tested as a communication device.

0x00000204 A capture device of the associated KSNODETYPE descriptor
would be tested as a communication device.

0x00000304 A both render and capture device of the associated
KSNODETYPE descriptor would be tested as a communication device.
3. In the strings section, add the following section for the value of the property keys that are used in
step 2:
PKEY_AudioEndpoint_Association="{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_Endpoint_EndpointRoleAffinity = "{b3f8fa53-0004-438e-9003-51a46e139bfc},13"
For more information about writing an INF file, see the Windows Driver Kit documentation.
Exceptions:
Not Specified
Business Justification:
Ensures compatibility with Windows
Scenarios:
Scenario It is very easy for me to use my computer for Internet voice communication with my family
and colleagues. My computer’s audio devices tell Windows about their role, and my VOIP application
can automatically find the right device for the job without any input from me. When I use my
computer for voice communication with my family or colleagues, I can easily understand them and
they can easily understand me. I can take and place my calls regardless of other audio activity on my
computer. With my computer’s audio solution, I have a quality calling experience comparable to
today’s wired telephones or speaker phones.
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0081
Page 101 of 907
Device.Audio.Base.VolumeControlsIsLinear
Target Feature: Device.Audio.Base
Title:
Audio driver volume controls are linear
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Signal response (as measured by electrical or digital signal level) changes in linearity with the volume
control within 3% tolerance. For example: a volume slider change of 10dB should result in an
measured volume change within 10dB + or - 0.3dB
Exceptions:
Not Specified
Business Justification:
This helps audio applications manage echo cancellation and also help provide a consistent audio user
experience.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
NEW
Device.Audio.Base.VolumeGranularity
Target Feature: Device.Audio.Base
Title: Audio solution that implements topology volume nodes uses a resolution equal to or better
than 1.5 dB
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Page 102 of 907

Windows Server 2012
Description:
Topology volume nodes must have a resolution equal to or better than 1.5dB and implement driver
support for volume level as defined in the Windows Driver Kit.
Design Notes: See the Windows Driver Kit, "KSPROPERTY_AUDIO_VOLUMELEVEL."
Exceptions:
Not Specified
Business Justification:
Volume behavior on the PC should behave like Consumer Electronics devices to enable an easier
transition into the entertainment space. Innovative OS features like AGC (Automatic Gain Control)
are supported more easily with this requirement in place.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0037
Device.Audio.Base.WAVEFORMATEXTENSIBLESupport
Target Feature: Device.Audio.Base
Title:
Audio device driver supports WAVEFORMATEXTENSIBLE
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
The audio device driver must support the WAVEFORMATEXTENSIBLE format.
Design Notes: Due to the audio system design in Windows and the availability of a Local Effect (LFX)
insert in the audio engine we need to ensure consistency and simplification for audio drivers and the
format container that they should expect.
Exceptions:
Not Specified
Business Justification:
Page 103 of 907
Ensures consistency and simplification for audio drivers
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0047
Device.Audio.Base.WaveRTConformance
Target Feature: Device.Audio.Base
Title:
Audio device is designed to be WaveRT-port-friendly
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
A UAA HD Audio-compatible implementation meets this requirement automatically. To be
considered WaveRT port friendly, the audio subsystem must support the following:




Cyclic DMA engine with a scatter-gather list.
Position register that is separate from other hardware registers (can be a copy).
Ability to split samples between pages.
Ability to loop on buffers without software intervention.
This requirement does not apply to external or internal USB audio, Bluetooth, or 1394 audio devices.
Design Notes:
See "A Wave Port Driver for Real-Time Audio Streaming" at
http://go.microsoft.com/fwlink/?LinkId=40502.
Exceptions:
Not Specified
Business Justification:
This improves reliability of audio drivers by avoiding kernel mode audio processing.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 104 of 907
Enforcement Date:
Comments:
July 17, 2008
AUDIO-0010
Device.Audio.Base.WaveRTImplementation
Target Feature: Device.Audio.Base
Title:
Audio device driver is based on the Windows WaveRT miniport WDM driver model
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Integrated or discrete audio device driver must be based on the Microsoft Windows WaveRT
miniport WDM driver model. Requirement details are defined in the white paper titled "A Wave Port
Driver for Real-Time Audio Streaming."
The legacy portsWaveCyclic or WavePCI are not used to support the audio device on Windows.
For device technologies such as USB Audio 1.0 based devices where the audio driver model is not
specifically called out, any WDM audio driver model is allowed.
If the audio processing is offloaded to hardware, it is acceptable to use the WaveCyclic driver model.
See the white paper titled "A Wave Port Driver for Real-Time Audio Streaming."
Exceptions:
Not Specified
Business Justification:
Glitch Resilient OS features combined with simple and effective WaveRT drivers running on UAA
compliant hardware creates the best possible media playback and recording experience possible on
Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2009
AUDIO-0001
Page 105 of 907
Device.Audio.Base.ZeroGlitch
Target Feature: Device.Audio.Base
Title:
Audio devices do not glitch during multiple simultaneous streaming
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Audio device can support 12 simultaneous streams that all make it to the jack with zero glitches both
in audio software and offload hardware during such simultaneous streaming. Systems must pass this
requirement with audio effects enabled, if that is the default configuration for the product.
Exceptions:
Not Specified
Business Justification:
Ensures good audio experience for the end user when using multiple audio streams
Scenarios:
Ensures compatibility with Windows.
Success Metric: Not Specified
Enforcement Date:
Comments:
9/16/2011
NEW
Device.Audio.Bluetooth
Description:
This audio device uses the Bluetooth Audio Driver.
Related Requirements:






Device.Audio.Bluetooth.AtleastOneProfileSupport
Device.Audio.Bluetooth.AutomaticReconnectAttempt
Device.Audio.Bluetooth.ConnectDisconnectBluetooth
Device.Audio.Bluetooth.DriverReqs
Device.Audio.Bluetooth.HandsFreeCallControl
Device.Audio.Bluetooth.HCIDisconnect
Page 106 of 907

Device.Audio.Bluetooth.MajorMinorClassID
Device.Audio.Bluetooth.AtleastOneProfileSupport
Target Feature: Device.Audio.Bluetooth
Title:
Bluetooth Audio Device needs to support at least one of the below profiles.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
The Bluetooth Audio Device must be Bluetooth SIG compliant in at least one of the following
profiles:

A2DP profile as defined in the “Advanced Audio Distribution Profile version 1.2”
(A2DP_SPEC_V12) Bluetooth SIG specification.

Hands-Free as defined in the “Hands-Free Version 1.5” (HFP 1.5_SPEC_V10) Bluetooth SIG
specification.

AVRCP as defined in the “Audio/Video Remote Control Profile Version 1.3”
(AVRCP_SPEC_V13) Bluetooth SIG specification.
Exceptions:
Not Specified
Business Justification:
Scenarios:


Bluetooth SIG compliance allows for the display and usage of the Bluetooth icon and name.
This is important for consumer device branding recognition.
Assured compatibility with OS supplied components that rely on Bluetooth SIGdefined
functionality
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0060
Page 107 of 907
Device.Audio.Bluetooth.AutomaticReconnectAttempt
Target Feature: Device.Audio.Bluetooth
Title: Bluetooth audio devices paired with a PC will automatically attempt to reconnect to the PC
after they are powered up or come back into range.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
The reconnection method must follow the appropriate connection procedures for connection to an
Audio Gateway as outlined in the Bluetooth Sig specifications for:
1. Hands-Free Profile
2. A2DP Profile
3. AVRCP Profile
Exceptions:
Not Specified
Business Justification:
Scenarios:


After powering up a BT Audio device that is within range of the PC it is currently paired with,
the BT Audio device will become available for use without any additional button presses on
the device or the PC.
After coming back into range of the PC, audio starts streaming back to the BT Audio device
without any additional button presses being made on the device or the PC.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0058
Device.Audio.Bluetooth.ConnectDisconnectBluetooth
Target Feature: Device.Audio.Bluetooth
Page 108 of 907
Title: Bluetooth audio devices support the properties required for Sound Control Panel to control
the connection and disconnection of Bluetooth audio devices.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
Bluetooth audio devices support the properties required for Sound Control Panel to control their
connection and disconnection.
KSPROPSETID_BtAudio needs to support both:
* KSPROPERTY_ONESHOT_DISCONNECT
* KSPROPERTY_ONESHOT_RECONNECT
More info at http://msdn.microsoft.com/en-us/library/ff537446(VS.85).aspx
Exceptions:
Not Specified
Business Justification:
Enable good user experience with Bluetooth audio devices.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
NEW
Device.Audio.Bluetooth.DriverReqs
Target Feature: Device.Audio.Bluetooth
Title:
Bluetooth Audio Device Driver Requirements
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Page 109 of 907



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
1. Bluetooth SIG Qualification
The Bluetooth Audio driver must pass the necessary Bluetooth SIG Qualification tests required by
the Bluetooth SIG for the profiles listed in the “Bluetooth Profiles” section above.
2. HID Call Control
The Bluetooth Audio driver must map the Hands-free call control information to the appropriate HID
Call Control messages as defined in the “Windows 7 HID Call Control” specification.
3. Volume Change Notification
If volume change notifications are received from the hands-free profile that indicate the volume
level of the Bluetooth audio device has changed, the driver must inform the OS of the volume
change, consistent with Section 4.28 of the Bluetooth audio Hands-Free specification,” HFP
1.5_SPEC_V10.”
Design Notes:
Bluetooth Profiles and SIG Qualification
The Bluetooth Audio Profile documentation is maintained by the Bluetooth SIG. The Bluetooth SIG
Qualification is owned and defined by the Bluetooth SIG. Qualification is a necessary pre-condition
of the necessary intellectual property license for the Bluetooth wireless technology. Detailed
information can be found on the Bluetooth SIG’s website at http://www.bluetooth.org.
Volume Change Notification
The KSEVENTSETID_AudioControlChange is used by the Bluetooth audio driver to notify the OS that
the Bluetooth audio device volume level has changed. Not all Bluetooth Hands-free devices will
notify the driver of volume changes made by the user. For those that do, the Bluetooth audio driver
must use this event to notify the OS of the change. Note that this is not to be used for AVRCP volume
notifications as those volume change notifications are handled by the OS. Additional information on
KSEVENTSETID_AudioControlChange can be found at http://msdn.microsoft.com
Exceptions:
Not Specified
Business Justification:
The requirements listed here are necessary to provide support for the basic audio functionality
included in Windows for Bluetooth audio devices. This functionality has been implemented in the
Windows Bluetooth audio class driver and it is important that 3rd party Bluetooth audio drivers
comply with required functionality such that the basic Windows audio features function properly.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 110 of 907
Enforcement Date:
Comments:
6/1/2009
AUDIO-0087
Device.Audio.Bluetooth.HandsFreeCallControl
Target Feature: Device.Audio.Bluetooth
Title: Bluetooth audio devices that utilize the Hands Free profile call control platform will comply
with this requirement.
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
The document entitled, “Call Control Platform API/DDI” details the usage and implementation of this
functionality. This document is available on http://msdn.microsoft.com.
Design Notes: This requirement applies to 3rd parties who create Hands-Free device drivers and opt
to use the Bluetooth Call Control platform API/DDI.
Exceptions:
Not Specified
Business Justification:
Current HID design for call control is difficult to implement and non-standardized. With the new call
control platform in Windows 8, it becomes significantly easier to allow an application to
communicate with the call control buttons on Bluetooth devices, and vice-versa. Developers who
use this new API/DDI will save time.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.Audio.Bluetooth.HCIDisconnect
Target Feature: Device.Audio.Bluetooth
Title:
Bluetooth Audio Devices must complete an HCIDisconnect before powering down
Applicable OS Versions:


Windows 8 Client x86
Windows 8 Client x64
Page 111 of 907





Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows Server 2012
Description:
This step is required to allow for timely notification to the system that the device is no longer
available. This is needed in order to reroute audio to an alternate audio sink seamlessly when the
Bluetooth audio device is turned off providing for a good end user experience.
Exceptions:
Not Specified
Business Justification:
This is needed in order for our stream routing mechanism to function in a timely manner. Scenario
User is listening to music on desktop speakers. They turn on their BT Headphones. Music is
automatically routed to the BT headphones. They then turn off their BT headphones. Music is
automatically routed 'in a timer manner' back to the desktop speakers.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0061
Device.Audio.Bluetooth.MajorMinorClassID
Target Feature: Device.Audio.Bluetooth
Title: Bluetooth audio devices to expose Major/Minor Class of Device identifier and accurately
reflect form factor/primary usage.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Bluetooth audio devices must expose the proper Major and Minor Class of Device identifier. The
values chosen must accurately reflect the form factor and primary usage of the device.
Page 112 of 907
Please refer to the following Bluetooth specifications from the Bluetooth Special Interest Group
website:
For A2DP devices, class of device ID is defined in Section 5.3 "SDP Interoperability Requirements" of
the Advanced Audio Distribution Profile Specification “A2DP_SPEC_V12” document.
For Hands-Free devices, class of device ID is defined in Section 5.5.1 "Class of Device" of the HandsFree Profile Specification version 1.5 in the "HFP 1.5_SPEC_V10" document.
Exceptions:
Not Specified
Business Justification:
This is needed for compatibility with Windows.
Scenarios:
Scenarios: · Windows Communication applications are easily able to find my device by querying for
Communication devices. · Windows is properly able to rank my device so that stream routing can
send audio to it in a predictable and logical manner. · Windows displays the proper Icons for my BT
Audio Device allowing for easy identification in the Audio Control Panel.
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0057
Device.Audio.HardwareAudioProcessing
Description:
HardwareAudioProcessing
Related Requirements:



Device.Audio.HardwareAudioProcessing.AudioHardwareOffloading
Device.Audio.HardwareAudioProcessing.ETWEvent
Device.Audio.HardwareAudioProcessing.IMiniport
Device.Audio.HardwareAudioProcessing.AudioHardwareOffloading
Target Feature: Device.Audio.HardwareAudioProcessing
Title:
Hardware that supports offloaded audio render processing meets this requirement
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Page 113 of 907

Windows Server 2012
Description:
If a hardware solution supports offloaded audio render processing, the driver must expose a KS
filter and a single KSNODETYPE_AUDIO_ENGINE node with appropriate pin factories connected.
If a hardware solution supports the offloading of audio render processing, mixing, or decoding, the
driver must expose a KS filter. For each rendering path through that filter that supports hardware
offloading the driver must expose a single KSNODETYPE_AUDIO_ENGINE node, connecting directly
to only the following pin factories:

two KS sink pin factories

a single KS source pin factory for reference stream support
If a driver exposes a KSNODETYPE_AUDIO_ENGINE node, the driver and hardware must support
base-level functionality.
If a driver exposes a KSNODETYPE_AUDIO_ENGINE node, the driver and hardware must support the
following capabilities:

Audio mixer with at least 3 simultaneous inputs (2 offload and 1 host process)

Volume and mute capabilities both pre- and post-mixing

Metering reporting (support for querying per-stream peak values, both pre & post-mix)

For stream metering (pre-mixing), metering levels should be reported after
the LFX and before volume control

For endpoint metering (post-mixing), metering levels should be reported:

Before volume control and GFX, when the GFX is an encoder

After the GFX and before volume control, when the GFX is not an
encoder

Reference stream (support for sending the audio stream post-mix back to the Windows
audio stack)

The reference stream provided should be the final output to the audio device, or, if encoding
is taking place, just prior to encoding.
If a driver exposes a KSNODETYPE_AUDIO_ENGINE node, the driver must support
KSPROPSETID_AudioEngine with certain properties.
If a driver exposes a KSNODETYPE_AUDIO_ENGINE node, the driver must support
KSPROPSETID_AudioEngine with the following properties:

KSPROPERTY_AUDIOENGINE_LFXENABLE
Page 114 of 907

KSPROPERTY_AUDIOENGINE_GFXENABLE

KSPROPERTY_AUDIOENGINE_MIXFORMAT

KSPROPERTY_AUDIOENGINE_DEVICEFORMAT

KSPROPERTY_AUDIOENGINE_SUPPORTEDDEVICEFORMATS

KSPROPERTY_AUDIOENGINE_DESCRIPTOR

KSPROPERTY_AUDIOENGINE_WAVERT_CURRENT_WRITE_POSITION

KSPROPERTY_AUDIOENGINE_BUFFER_SIZE_RANGE

KSPROPERTY_AUDIOENGINE_LOOPBACK_PROTECTION

KSPROPERTY_AUDIOENGINE_VOLUMELEVEL

KSPROPERTY_AUDIO_VOLUMELEVEL

KSPROPERTY_AUDIO_MUTE

KSPROPERTY_AUDIO_PEAKMETER2

KSPROPERTY_AUDIO_PRESENTATION_POSITION
If a driver exposes a KSNODETYPE_AUDIO_ENGINE node, the driver must expose certain pin
factories.
If a driver exposes a KSNODETYPE_AUDIO_ENGINE node, the driver must expose the following pin
factories:

Host process pin factory


Offload pin factory


Must support only a single instance
Must support at least two instances
Loopback pin factory

Must support at least a single instance
In addition, the following must be met:

Loopback pins must:

Have a “Possible Global Instances” of at least 1

Support at least 1 instance regardless of what else is going on in the system
Page 115 of 907


To enable scenarios like cross-fade, offload-capable endpoints must support 1 loopback pin
instance + 1 host pin instance + each of the following in isolation, assuming no other offload
endpoints are being used at the time:

Any required PCM format + Any required PCM format (the same, or different)

Any required PCM format + Any required MP3 format

Any required MP3 format + Any required MP3 format

Any required PCM format + Any required mono or stereo AAC format

Any required MP3 format + Any required mono or stereo AAC format

Any required mono or stereo AAC format + Any required mono or stereo AAC format
The loopback pin must support

The HW mix format

The device format (which can be publically queried from the endpoint property
store)
If a hardware solution supports offloaded audio render processing, the same functionality
provided in hardware (e.g., processing, effects, etc.) must be available in software as well.
In order to provide a consistent user experience and prevent confusion when a user enables or
configures functionality that exists in only hardware or only software, the capabilities provided must
be equal in both hardware and software.
If a driver exposes a KSNODETYPE_AUDIO_ENGINE node, the driver must support streaming
specific PCM formats.
Description:
If a driver exposes a KSNODETYPE_AUDIO_ENGINE node, the driver must support streaming the
following PCM formats on the offload pins:

Sampling rates:

8 kHz

11.025 kHz

16 kHz

22.050 kHz

32 kHz

44.1 kHz

48 kHz
Page 116 of 907

88.2 kHz

96 kHz

176.4 kHz

192 kHz

Bit Depths:

8-bit

16-bit

24-bit

Channel configurations of 1.0, 2.0,2.1, 3.1, 4.0, 5.0 and 5.1
If hardware supports offloaded audio render processing, the steady-state latency for real-time
PCM audio must be less than 20 ms.
If hardware supports offloaded audio render processing, the steady-state latency (as measured
between the render KS endpoint and the capture KS endpoint on the same device with all processing
disabled and the smallest supported buffer sizes being used) must be less than 20 ms.
If a hardware solution supports offloaded audio render processing, the startup latency must be
less than 80 ms for compressed formats and 15ms for PCM.
If hardware supports offloaded audio render processing, the startup latency (as defined as the time
between just before KSCreatePin and the audio play position beginning to advance) must be less
than 80 ms for compressed formats and 15ms for PCM.
If a hardware solution supports offloaded audio render processing, the hardware must support
certain buffer sizes.
If a hardware solution supports offloaded audio render processing, the hardware must support
buffer sizes:

As large as (or larger than) 1 second

As small as (or smaller than) 10 milliseconds
Times above assume an audio format of 2 channels, 48 kHz, 16-bit PCM.
If a hardware solution supports offloaded audio render processing, the pause or stop latency must
be less than 10ms.
If a hardware solution supports offloaded audio render processing, the pause or stop latency (as
measured between a pause/stop command and the audio pausing/stopping) must be less than
10ms.
Page 117 of 907
The CPU consumption by an audio driver must be less than 5% and memory usage must be less
than 100MB.
An audio driver must not consume more than 5% of the total CPU processing available and must not
consume more than 100MB of system RAM.
Systems that support connected standby must support certain codecs and processing capabilities.
In order to ensure a high-quality user experience on systems that support connected standby where
the in-box Windows codecs may be unavailable, the follow codecs and processing functionality are
required:

MP3 decoder

all MPEG formats except VBR

Decode requirement is limited to mono and stereo formats; decoder must
be able to accept multichannel MP3 content, but is only required to decode
the stereo content
AAC decoder
Channel configurations:






Mono
Stereo
3.0
4.0 (L, R, C, Rear)
5.0
5.1
Sample rates:
All AAC sample rates
Bit rates:
All bit rates
Profile levels:






0x28 AAC L1
0x29 AAC L2
0x2A AAC L4
0x2B AAC L5
0x2C High Efficiency AAC Profile L2
0x30 High Efficiency AAC v2 Profile L2
Payload types:
Page 118 of 907


0 Raw
1 ADTS
Audio Object types:



2 AAC LC
5 SBR
29 PS
Sample rate converter
All decoding and processing functionality provided must be exposed via support for the
corresponding KS properties via the Portcls WaveRT driver.
Exceptions:
Not Specified
Business Justification:
Help preserve compatibility with windows while conserving battery life on systems that support
hardware offload
Scenarios:
This helps compatibility with Windows.
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2011
NEW
Device.Audio.HardwareAudioProcessing.ETWEvent
Target Feature: Device.Audio.HardwareAudioProcessing
Title: If a hardware solution supports offloaded audio render processing, then the driver must
raise an ETW event to report glitches detected by the hardware audio engine.
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
The audio driver needs to raise an Event Tracing for Windows (ETW) event to report glitches
detected by the HW Audio Engine. This event should at least include the reason of the glitching and
the DMA buffer information.
Page 119 of 907
The following events are defined for the miniport to reports events through Portcls interface
callbacks.
typedef enum
{
eMINIPORT_IHV_DEFINED = 0,
eMINIPORT_BUFFER_COMPLETE,
eMINIPORT_PIN_STATE,
eMINIPORT_GET_STREAM_POS,
eMINIPORT_SET_WAVERT_BUFFER_WRITE_POS,
eMINIPORT_GET_PRESENTATION_POS,
eMINIPORT_PROGRAM_DMA,
eMINIPORT_GLITCH_REPORT
} ePcMiniportEngineEvent;
Event type
IHV specific
event types
(defined and
used by
IHVs)
Buffer
complete
Parameter Parameter 2
1
Defined
Defined and used by IHVs
and used
by IHVs
Current
linear
buffer
position
Pin State
Current
linear
buffer
position
Get stream
Current
position
linear
buffer
position
Set WaveRt Current
buffer write linear
position
buffer
position
Get
Current
Presentation linear
Position
buffer
position
Parameter 3
Defined and used by IHVs
Parameter
4
Defined and
used by
IHVs
Current
Data length completed
WaveRtBufferWritePosition
0
Current
0->KS_STOP
WaveRtBufferWritePosition 1->KS_ACQUIRE
2->KS_PAUSE
3->KS_RUN
Current
0
WaveRtBufferWritePosition
0
0
Current
Target
0
WaveRtBufferWritePosition WaveRtBufferWritePosition
received from portcls
received from portcls
Current
Presentation position
WaveRtBufferWritePosition
Page 120 of 907
0
Program
DMA
Glitch
detection
Exceptions:
Current
linear
buffer
position
Current
linear
buffer
position
Current
Starting WaveRt buffer
WaveRtBufferWritePosition offset
Data length
Current
1:WaveRT buffer under run
WaveRtBufferWritePosition 2:decoder errors
3: receive the same wavert
buffer write pos two in a
row
When it's 3,
the
offending
write
position
Not Specified
Business Justification:
This helps deliver a good user experience with Windows.
Scenarios:
Ensures compatibility with Windows.
Success Metric: Not Specified
Enforcement Date:
Comments:
8/8/2011
Not Specified
Device.Audio.HardwareAudioProcessing.IMiniport
Target Feature: Device.Audio.HardwareAudioProcessing
Title: If a hardware solution supports offloaded audio render processing, the driver must
implement IMiniportAudioEngineNode and IMiniportStreamAudioEngineNode
Applicable OS Versions:




Windows Server 2012
Windows 8 Client x64
Windows 8 Client x86
Windows RT
Description:
IMiniportAudioEngineNode contains a list of methods related to the offload KS properties targeting
the audio engine node via KS filter handle. A miniport driver's WaveRT miniport class needs to
inherit not only from IMiniportWaveRT interface, it also needs to inherit IMiniportAudioEngineNode
interface and implement all the defined methods.
IMiniportStreamAudioEngineNode contains a list of methods related to the offload KS properties
targeting the audio engine node via pin instance handle. A miniport driver's WaveRT miniport class
needs to inherit not only from IMiniportWaveRTStreamNotification interface, it also needs to inherit
IMiniportStreamAudioEngineNode interface and implement all the defined methods.
Page 121 of 907
Exceptions:
Not Specified
Business Justification:
This helps ensure a good user experience with Windows.
Scenarios:
Ensure compatibility with Windows.
Success Metric: Not Specified
Enforcement Date:
Comments:
8/8/2011
Not Specified
Device.Audio.HDAudio
Description:
This audio device uses the HD Audio Driver.
Related Requirements:














Device.Audio.HDAudio.2AudioChannelsForHDMIorDisplayPort
Device.Audio.HDAudio.AnalogJackDetection
Device.Audio.HDAudio.DefaultAssociationNotZero
Device.Audio.HDAudio.DigitalJackDetection
Device.Audio.HDAudio.HDAudioCodecAdditionalReqs
Device.Audio.HDAudio.HDAudioSpecCompliance
Device.Audio.HDAudio.HDMIDCN
Device.Audio.HDAudio.HDMIKSPROPERTYJACKSINKINFO
Device.Audio.HDAudio.INFHasDeviceID
Device.Audio.HDAudio.LowPowerDCN
Device.Audio.HDAudio.OneCodecPortOneConnector
Device.Audio.HDAudio.PinConfigPortConnectivity
Device.Audio.HDAudio.PnPCodecDeviceID
Device.Audio.HDAudio.UniqueSequenceNumbers
Device.Audio.HDAudio.2AudioChannelsForHDMIorDisplayPort
Target Feature: Device.Audio.HDAudio
Title: Display adapter or chipset with HDMI audio or DisplayPort audio capabilities must
implement two channel audio support that is compliant with the HD Audio specification
Applicable OS Versions:


Windows 8 Client x86
Windows 8 Client x64
Page 122 of 907





Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
A display subsystem on a platform that does not support connected standby but supports HDMI
audio or DisplayPort audio capabilities must implement a minimum of two channel audio support
compliant with HD Audio specification.
The minimum requirement is to use an HD Audio compliant solution exposing an SPDIF Output with
a static format support of Stereo PCM, 16 bit depth with sampling rate of 44.1kHz and 48kHz.
HDMI endpoints do not have to be based on HD Audio if they are a part of Systems that support
connected standby.
Additional information on how to expose an SPDIF Output in an HD Audio compliant
controller/codec configuration can be found in the Intel HD Audio specification.
Expose the logical independent HDMI Audio or DisplayPort audio device as outlined below to be
exposed as an HDMI Audio device in Windows:
Intel HMDI Audio HD Audio Spec ECR:
Pin complex.PinCaps.HdmiCapable == 1,
AND PinConfig.DefDevice = DigitalOtherOut (0x5)
General/Geometric location irrelevant here
or
Intel HD Audio 1.0 method:
Pin config general location is internal (1)
AND geometric location is “Special1” (0x8)
AND PinConfig.DefDevice = DigitalOtherOut (0x5)
Pincaps.HdmiCapable is irrelevant here.
Also, see the UAA Hardware Design Guidelines available at
http://go.microsoft.com/fwlink/?linkid=50734.
Exceptions:
Not Specified
Business Justification:
Enables HDMI Audio playback functionality on Windows using Windows Audio class drivers.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
6/1/2009
Page 123 of 907
Comments:
AUDIO-0049
Device.Audio.HDAudio.AnalogJackDetection
Target Feature: Device.Audio.HDAudio
Title:
HD Audio solution supports jack-presence detection for analog jacks
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
The HD Audio codec and the system board must implement HD Audio-compliant jack-presence
detection for analog jacks. Presence detection implies that the codec with required system
components (jack connector and jack detection circuit) must be able to detect the presence of jack
insertion into and jack removal from the input/output connectors that the codec is using. When this
occurs an unsolicited response is sent so that software can be notified without constantly polling the
device. Implementation of unsolicited response support for jack detection events is required for
Windows although it may be worded as optional in the HD Audio specification.
This requirement is unrelated to the feature of automatic sensing of what the peripheral might be.
Sensing by using impedance matching is not required.
This requirement specifically means that the codec implements presence detection on each exposed
pin that is connected to a system connecter (jack) and that the system board implements an audio
jack detection circuit (HD Audio Specification section 7.4.2) external to the codec for each jack on
the system. This requirement does not apply to device types defined in the HD Audio codec's pin
configuration register defaults as a Line Connector device using an RCA type physical connector.
See the Microsoft UAA HD Audio Pin Configuration Programming Guidelines white paper for
additional clarifications on the specified jack connectors that require jack detection.
http://www.microsoft.com/whdc/device/audio/PinConfig.mspx
Exceptions:
Not Specified
Business Justification:
To enable the ease of use value of HD Audio we need to be able to detect when the user connects an
audio peripheral.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 124 of 907
Enforcement Date:
Comments:
7/17/2008
AUDIO-0017
Device.Audio.HDAudio.CopyBitPolarityClarification
Target Feature: Device.Audio.HDAudio
Title: HD Audio devices that expose a digital output must meet HD audio design change
notification "Copy Bit Clarification"
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows Server 2012
Windows RT
Description:
Audio devices that expose a digital output must meet HD audio design change notification "Copy Bit
Clarification
Refer to http://download.intel.com/design/chipsets/hdaudio/HDA041-A_DCN__Copy_Bit_Polarity_Clarification_rev1p0.pdf
Exceptions:
Not Specified
Business Justification:
This is needed for class driver compatibility and to correctly play copy protected content.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
NEW
Device.Audio.HDAudio.DefaultAssociationNotZero
Target Feature: Device.Audio.HDAudio
Title: Values in the Default Association field of the HD Audio codec pin configuration register are
not set to zero (reserved value)
Page 125 of 907
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
The value zero is reserved and must never be used as a default association value.
Exceptions:
Not Specified
Business Justification:
This ensures compatibility with HD audio specification for Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0021
Device.Audio.HDAudio.DigitalJackDetection
Target Feature: Device.Audio.HDAudio
Title:
HD Audio solution supports jack-presence detection for digital jacks
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
The HD Audio codec and the system board must implement HD Audio-compliant jack-presence
detection for digital jacks. Presence detection implies that the codec with required system
components (jack connector and jack detection circuit) must be able to detect the presence of jack
Page 126 of 907
insertion into and jack removal from the input/output connectors that the codec is using except for
S/PDIF jacks. When this occurs an unsolicited response is sent so that software can be notified
without constantly polling the device. Implementation of unsolicited response support for jack
detection events is required for Windows although it may be worded as optional in the HD Audio
specification.
This requirement is unrelated to the feature of automatic sensing of what the peripheral might be.
Exceptions:
Not Specified
Business Justification:
To enable the ease of use value of HD Audio we need to be able to detect when the user connects an
audio peripheral.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
NEW
Device.Audio.HDAudio.HDAudioCodecAdditionalReqs
Target Feature: Device.Audio.HDAudio
Title: HD Audio codec supports additional requirements not specified in the Intel High Definition
Audio specification
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Description:
To be UAA compliant, an HD Audio codec must implement the following features, which are not
necessarily required by Intel High Definition Audio Specification:

Speaker compensation is the only valid scenario for audio signal processing of an audio
stream by a codec, and then it is valid only if the speakers are hardwired to the pin complex
that contains the processing node (such as integrated laptop speakers). This requirement
does not apply to decryption of protected audio streams.
Page 127 of 907

When all of an HDAudio codec's widgets are configured in the benign processing state, the
codec performs no nonlinear or time-variant processing on the audio streams that pass
through it.

Software must be able to set all processing nodes to the benign processing state, and the
codec must function according to UAA baseline requirements while in this state.

An HDAudio codec must be accessible only through the HDAudio bus controller. The codec
must not expose registers or other hardware mechanisms that are accessible through either
memory or I/O address space. This requirement does not encompass HDMI or DisplayPort.
For HDMI or DisplayPort, please refer to the HD audio HDMI DCN.

Modem and audio functionality must not be combined. Although the same piece of silicon
can house both modem and audio devices, the functions must be separate devices and must
not share any software or hardware resources (such as ADCs or DACs).

When the HD Audio link is in a running state (HD Audio controller is in D0), UAA-compliant
HD Audio codecs must respond to commands even when powered down in all required
device power-management states. In effect, the digital section of the codec must remain
powered.

Codecs must respond to a verb even if addressed at a nonexistent widget or if the verb itself
is invalid.

Function group nodes must have node IDs in the range 0 to 127. This restriction does not
apply to node IDs for widget nodes.

In a system with one or more HDAudio codecs, the system BIOS must initialize the
Configuration Default Register for each codec pin widget based on the system
configuration/implementation of the HD Audio codec while considering the Microsoft Pin
Configuration Programming Guidelines so that the UAA HDAudio function class driver's
topology parser can create a functional device topology for the codec. The default data in
the HD Audio codec pin configuration registers must not misrepresent the hardware
capabilities, and the Configuration Default Registers must not be null (all zeros).

A function group in an HDAudio codec must expose a nonzero subsystem ID. The BIOS
overwrites the subsystem ID if necessary. If the BIOS cannot program the subsystem ID or if
it does so incorrectly, the hardware must supply a default, vendor-specific subsystem ID.
Exceptions:
Not Specified
Business Justification:
This requirement is part of several others that aim to ensure HW compliance with the Windows UAA
HD Audio class driver. This is important for partners to take full advantage of the class driver.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 128 of 907
Enforcement Date:
Comments:
9/16/2008
AUDIO-0016
Device.Audio.HDAudio.HDAudioSpecCompliance
Target Feature: Device.Audio.HDAudio
Title:
HD Audio codec for audio complies with the Intel High Definition Audio specification
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
If the codec is for an audio implementation, it must be implemented according to Intel High
Definition Audio Specification, Revision 1.0, and updated when commercially possible to comply
with HD Audio specification DCRs.
Exceptions:
Not Specified
Business Justification:
This requirement is part of several others that aim to ensure HW compliance with the Windows UAA
HD Audio class driver. This is important for partners to take full advantage of the class driver.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0015
Device.Audio.HDAudio.HDMIDCN
Target Feature: Device.Audio.HDAudio
Title: If hardware supports multi-channel HDMI or DisplayPort audio consistent with the method
defined by HD Audio, then the hardware must comply with the HD Audio HDMI Design Change
Notifications (DCN).
Applicable OS Versions:
Page 129 of 907







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
If hardware supports multi-channel HDMI or DisplayPort audio consistent with the method defined
by HD Audio, then the hardware must comply with the HD Audio HDMI Design Change Notifications
(DCN).
Design Notes: If hardware supports HDMI or DisplayPort audio and implements any of the verbs
listed below, the hardware must comply with the following HD Audio DCNs:
HDA034-A2: HDMI Content Protection and Multi-Channel Support
HDA039-A: HDMI/ELD Memory Structure
HDA036-A: DisplayPort Support and HDMI Miscellaneous Corrections
If hardware supports HDMI or DisplayPort audio, implements any of the verbs listed below and
supports the transmission of high bit-rate (HBR) formats, the hardware must comply with the HD
Audio DCN HDA035-A: HDMI High Bit Rate Support.
Verbs:
F2Fh (Get HDMI ELD Data)
F2Dh (Get Converter Channel Count)
72Dh (Set Converter Channel Count)
F2Eh (Get HDMI Data Island Packet – Size Info)
72Eh (Set HDMI Data Island Packet – Size Info)
F30h (Get HDMI Data Island Packet– Index)
730h (Set HDMI Data Island Packet – Index)
F31h (Get HDMI Data Island Packet – Data)
731h (Set HDMI Data Island Packet – Data)
F32h (Get HDMI Data Island Packet– Transmit-Control)
732h (Set HDMI Data Island Packet – Transmit-3Control)
F33h (Get Content Protection Control)
Page 130 of 907
733h (Set Content Protection Control)
F34h (Get Converter Channel to HDMI Slot Mapping)
Exceptions:
Not Specified
Business Justification:
This ensures compatibility of multi-channel audio devices with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0078
Device.Audio.HDAudio.HDMIKSPROPERTYJACKSINKINFO
Target Feature: Device.Audio.HDAudio
Title: Audio drivers using HD audio specification and exposing HDMI or DisplayPort endpoint
support the KSPROPERTY_JACK_SINK_INFO property
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Audio drivers that expose HDMI or DisplayPort endpoints must support the
KSPROPERTY_JACK_SINK_INFO property.
Design Notes: For every endpoint exposed by an audio driver that supports HDMI or DisplayPort
audio, the driver must respond to a KSPROPERTY_JACK_SINK_INFO request with a
KSJACK_SINK_INFORMATION structure. The structure shall be correctly populated.
Exceptions:
Not Specified
Business Justification:
Exposing KSPROPERTY_JACK_SINK_INFO property helps Windows provide more meaningful info to
end users.
Scenarios:
Not Specified
Page 131 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0079
Device.Audio.HDAudio.INFHasDeviceID
Target Feature: Device.Audio.HDAudio
Title: INF file for HD Audio codec includes properly formatted device ID string for each supported
codec device
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Vendors that supply custom HD Audio function drivers must include an INF file that follows
guidelines for device identification strings that are defined in Plug and Play Guidelines for High
Definition Audio Devices, "INF Files for HD Audio Codecs."
Design Notes: See Guidelines at http://www.microsoft.com/whdc/device/audio/HD-aud_PnP.mspx.
Exceptions:
Not Specified
Business Justification:
This helps ensure device compatibility with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0019
Device.Audio.HDAudio.LowPowerDCN
Target Feature: Device.Audio.HDAudio
Title: If HD Audio codec supports HD Audio Low-Power DCN then it needs to implements the LowPower specification correctly in hardware, firmware and 3rd party software (driver)
Applicable OS Versions:
Page 132 of 907







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
An HD audio Low-Power Design Change Notification (DCN)compatible HD Audio 1.0 based codec
implements Low-Power capabilities according to the Low-Power specification and Microsoft UAA
Hardware Design Guidelines.
Design Notes: See the RAND licensed Intel HD Audio specification, the HD Audio Low-Power DCN
amendment to that specification and the Microsoft UAA Hardware Design Guidelines
Exceptions:
Not Specified
Business Justification:
This requirement translates into battery life improvements on laptops
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0062
Device.Audio.HDAudio.OneCodecPortOneConnector
Target Feature: Device.Audio.HDAudio
Title:
A single HD Audio codec port is used for a single connector
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Page 133 of 907
Each HD Audio codec port connects to one and only one audio source, destination, or jack. For
compatibility with the UAA class driver do not double-up on input or output ports in ways that
cannot be exposed to the class driver through the information in the pin configuration registers.
Designs that use GPIOs under control of third-party function drivers must default to an appropriate
hardware configuration when the UAA class driver is loaded.
Exceptions:

Combination jacks (headphone/S/PDIF) are allowed if the digital output is exposed as a
separate, independent always on device using the HD Audio pin configuration register values
and the analog section of the jack supports jack presence detection.

Combination jacks that have both a speaker and a microphone are also acceptable provided
the connector supports microphone and speaker jack presence detection.

There is another exception to this requirement with regards to an audio device pin that
feeds two different connectors intended for SPDIF protocol content. In the case where a
system or device exposes an RCA jack (Co-ax) and an optical output for the SPDIF protocol
stream from one codec pin this is permitted only if the audio driver exposes the pin as
outlined in the design note section below

It is also acceptable to build a system that has two headphone jacks fed by the same HD
Audio pin.
Design Notes:
An array of jack descriptions can also be used to show that a pair of jacks is equivalent. The following
example would indicate to the user that the yellow RCA jack and the black “digital optical” jack will
carry the same signal:
KSJACK_DESCRIPTION ar_SPDIF_Jacks[] =
{
// jack 1
{
(SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT), // ChannelMapping (L,R)
RGB(255,255,0), // Color (yellow)
eConnTypeRCA, // ConnectionType (RCA)
eGeoLocRear, // GeoLocation
eGenLocPrimaryBox, // PortConnection
TRUE // IsConnected
},
Page 134 of 907
// jack 2
{
(SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT), // (L,R)
RGB(0,0,0), // (black)
eConnTypeOptical, // (optical)
eGeoLocRear,
eGenLocPrimaryBox,
TRUE
}
};
Clarification: This exception has nothing to do with HDMI Audio, it only covers SPDIF on two
physically different SPDIF connectors and this exception does NOT allow HDMI Audio outputs to
share a codec pin with SPDIF. That is still prohibited.
Exceptions:
Not Specified
Business Justification:
To enable a base level experience with the Microsoft UAA HD Audio class driver the system design
and use of output connections must be predictably tied to one codec port. This enables the ideal
user experience through separate independent devices assigned to device roles.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
July 17, 2008
AUDIO-0011
Device.Audio.HDAudio.PinConfigPortConnectivity
Target Feature: Device.Audio.HDAudio
Title: Pin configuration register for an HD Audio codec has specific settings for port connectivity
field depending on implementation
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Page 135 of 907



Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
A pin widget's port connectivity value of 0x01 (No Connection) is valid only when a system in which
the HD Audio codec resides has no jack or integrated device attached to the pin widget. A port
connectivity setting of 0x02 (10b) should be used only in those cases where a trace on a circuit board
directly connects the codec and an integrated device such as a speaker amplifier or microphone. A
port connectivity setting of 0x03 (011b) is specifically disallowed. Each pin widget must connect to a
single audio endpoint.
Exceptions:
Not Specified
Business Justification:
This requirement ensures the Microsoft UAA HD Audio class driver can create logical devices for
Windows users based on the information gleaned from HW and firmware only.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
AUDIO-0020
Device.Audio.HDAudio.PnPCodecDeviceID
Target Feature: Device.Audio.HDAudio
Title:
HD Audio codec follows Plug and Play requirements for codec device identification
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Description:
HD Audio codecs must comply with the Plug and Play requirements for proper identification that are
described in Plug and Play Guidelines for High Definition Audio Devices, "HD Audio Codec."
Design Notes: See Guidelines at http://www.microsoft.com/whdc/device/audio/HD-aud_PnP.mspx.
Page 136 of 907
Exceptions:
Not Specified
Business Justification:
ensure plug and play
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
7/17/2008
audio-0018
Device.Audio.HDAudio.UniqueSequenceNumbers
Target Feature: Device.Audio.HDAudio
Title: HD Audio Codec Pin configuration register defaults: Sequence numbers within the same
default association are unique
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
In the data configured by the BIOS or in the default values from the codec manufacturer, the
sequence numbers within the pin configuration register’s default association must be unique within
the same association except for association 0xf, in which all instances should support Sequence ==0.
Design Notes: See Pin Configuration Guidelines for High Definition Audio Devices, at
http://go.microsoft.com/fwlink/?LinkId=58572.
Exceptions:
Not Specified
Business Justification:
This is an essential requirement enabling the Microsoft UAA HD Audio class driver to identify the
capabilities of the HD Audio codec and expose logical devices based on that information. Without
proper pin config data the class driver is not able to expose any usable devices to the Windows user.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 137 of 907
Enforcement Date:
Comments:
7/17/2008
AUDIO-0022
Device.Audio.UAACompliance
Description:
This audio device uses HD Audio, Bluetooth, or USB Audio Drivers
Related Requirements:


Device.Audio.UAACompliance.TestUsingBluetoothClassDriver
Device.Audio.UAACompliance.UAA
Device.Audio.UAACompliance.TestUsingBluetoothClassDriver
Target Feature: Device.Audio.UAACompliance
Title:
Bluetooth devices tested using Bluetooth class driver
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Bluetooth devices (e.g., headset, speakers) need to use Windows Bluetooth Audio Class drivers for
certification.
Exceptions:
Not Specified
Business Justification:
Help preserve compatibility with windows
Scenarios:
This helps compatibility with Windows.
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2011
NEW
Page 138 of 907
Device.Audio.UAACompliance.UAA
Target Feature: Device.Audio.UAACompliance
Title: Audio device is compliant with one of the appropriate technology specifications supported
by the UAA initiative
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
An audio device must comply with the appropriate standard as supported by the Microsoft
Universal Audio Architecture Initiative. The supported standards are USB Audio, IEEE 1394 Audio,
Bluetooth Audio and High Definition Audio. The relevant Windows audio class driver loads, runs, and
passes functionality tests on the implementation. This includes meeting minimum performance
requirements as defined in the Microsoft UAA Hardware Design Guidelines.
This requirement does not apply to systems that support connected standby or devices that support
USB Audio 2.0.
Design Notes: See "Universal Audio Architecture" at http://go.microsoft.com/fwlink/?LinkId=40631.
See "USB Audio Devices and Windows" at http://go.microsoft.com/fwlink/?LinkId=40632.
Exceptions:
Not Specified
Business Justification:
This helps ensure compatibility with Windows universal audio architecture.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
September 17, 2008
AUDIO-0009
Device.Audio.USB
Description:
This audio device uses the USB Audio Driver.
Related Requirements:
Page 139 of 907




Device.Audio.USB.HIDCommunications
Device.Audio.USB.HIDControls
Device.Audio.USB.MicArray
Device.Audio.USB.USB
Device.Audio.USB.HIDCommunications
Target Feature: Device.Audio.USB
Title: Audio capable and video capable and audio/video capable USB communication devices
implement HID controls according to USB HID Specifications
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
Communication devices that implement a USB HID interface must be compliant with the USB Device
Class Definition for Human Interface Devices (HID), Version 1.1, and USB Usage Tables for HID Power
Devices, Version 1.12.
Devices may not use Reserved usages from any Standard Usage Page.
Scenario
It is very easy for me to use my PC for internet voice communication with my family and colleagues
because my PCs audio devices tell Windows about their role and my VOIP application can
automatically find the right device for the job without any input from me.
When I use my PC for voice communication with my family or colleagues I can easily understand
them and they can easily understand me. I can take and place my calls regardless of other audio
activity on my PC. With my PCs audio solution I have a quality calling experience comparable to
todays wired telephones and/or speakerphones.
Design Notes: Design and Implementation Note See the Windows Driver Kit, "HID and Windows."
Exceptions:
Not Specified
Business Justification:
The business benefits of this new device category include strengthening the Windows Logo through
increased visibility of the logo itself (on more retail packages in more stores) and by adding another
Page 140 of 907
set of validated experiences within the Windows Logo ecosystem the logo will mean Great
Experiences to more people in more situations.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
AUDIO-0082
Device.Audio.USB.HIDControls
Target Feature: Device.Audio.USB
Title: USB audio device uses USB HID audio controls to keep the operating system informed of
user interactions with the device
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
USB audio devices must use USB HID specification-compliant HID to control basic functions. If
volume adjustment controls are implemented on the USB audio device, it must declare itself as a
consumer control device (usage 0x01), as defined in Consumer Page (page 0x0C) in the USB Usage
Tables for HID Power Devices, Release 1.1, and in Windows support for HID-based audio controls.
Design Notes: See "HID Audio Controls and Windows" at
http://go.microsoft.com/fwlink/?LinkId=40491.
Exceptions:
Not Specified
Business Justification:
Without knowledge of volume/mute settings on the device the OS cannot make intelligent policy
decisions that enable more predictable and better fidelity user experiences with Windows
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/17/2008
AUDIO-0044
Page 141 of 907
Device.Audio.USB.MicArray
Target Feature: Device.Audio.USB
Title: Standalone USB Audio based microphone array device complies with the Microsoft USB
Audio 1.0 design guidelines and Microsoft Microphone Array Design Guidelines
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
An externally connected USB based microphone array device must comply with the UAA-supported
technology standard, must comply with the USB Device Class Definition for Audio Devices 1.0, and
must be implemented according to the guidelines in "Microphone Array Support in Windows Vista."
The device must report itself and its capabilities according to the design guidelines in the Microsoft
USB Audio Microphone Array Design Guidelines.
Exceptions:
Not Specified
Business Justification:
This requirement aims to capture the significant investments we have made in Microphone Array
processing technology (beam forming, noise reduction, AEC, etc.) in Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
September 17, 2008
AUDIO-0008
Device.Audio.USB.USB
Target Feature: Device.Audio.USB
Title:
USB Audio Device follows UAA USB Audio Design Guidelines
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x64
Page 142 of 907




Windows 7 Client x86
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
A USB audio-based audio device in a stand-alone external form factor or in an AVR or in other
permutations follows the Microsoft UAA USB Audio Design Guidelines.
Design Notes: See Microsoft UAA USB Audio Design Guidelines at
http://go.microsoft.com/fwlink/?LinkId=50734.
Exceptions:
Not Specified
Business Justification:
To maintain the choice within the UAA initiative it is necessary to have 1394 audio devices
implemented according to the Microsoft UAA 1394 audio design guidelines.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
July 17, 2008
AUDIO-0005
Device.BusController.Bluetooth.Base
Description:
Bluetooth Controller - Generic radio tests
Related Requirements:










Device.BusController.Bluetooth.Base.4LeSpecification
Device.BusController.Bluetooth.Base.LeStateCombinations
Device.BusController.Bluetooth.Base.LeWhiteList
Device.BusController.Bluetooth.Base.MicrosoftBluetoothStack
Device.BusController.Bluetooth.Base.OnOffStateControllableViaSoftware
Device.BusController.Bluetooth.Base.Scatternet
Device.BusController.Bluetooth.Base.ScoDataTransportLayer
Device.BusController.Bluetooth.Base.SimultaneousBrEdrAndLeTraffic
Device.BusController.Bluetooth.Base.SpecificInformationParameters
Device.BusController.Bluetooth.Base.SupportsBluetooth21AndEdr
Device.BusController.Bluetooth.Base.4LeSpecification
Target Feature: Device.BusController.Bluetooth.Base
Page 143 of 907
Title:
Bluetooth controllers must support the Bluetooth 4.0 specification requirements
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows RT
Description:
The Bluetooth controller must comply with the Basic Rate (BR) and Low Energy (LE) Combined Core
Configuration Controller Parts and Host/Controller Interface (HCI) Core Configuration requirements
outlined in the Compliance Bluetooth Version 4.0 specifications.
Exceptions:
Not Specified
Business Justification:
To support standards.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
BUSPORT-8002
Device.BusController.Bluetooth.Base.LeStateCombinations
Target Feature: Device.BusController.Bluetooth.Base
Title:
Bluetooth controllers must support a minimum set of LE state combinations.
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows RT
Description:
The Bluetooth controller must allow the spec LE state combinations (as allowed in section [Vol 6]
Part B, Section 1.1.1 of the Bluetooth version 4.0 spec):
Only the following states are not required to be supported:
0x0000000000800000 Active Scanning State and Initiating State combination supported.
0x0000000004000000 Passive Scanning state and Slave Role combination supported.
0x0000000008000000 Active Scanning state and Slave Role combination supported.
Page 144 of 907
Exceptions:
Not Specified
Business Justification:
This ensures Bluetooth controllers provide a good user experience across BR/EDR and LE.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
New
Device.BusController.Bluetooth.Base.LeWhiteList
Target Feature: Device.BusController.Bluetooth.Base
Title:
Bluetooth controllers must support a minimum LE white list size of 25 entries.
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows RT
Description:
The Bluetooth controller must support a minimum of 25 entries in its white list for remote Low
Energy (LE) devices.
Exceptions:
Not Specified
Business Justification:
This ensures that Windows machines are able to save power by only processing incoming data from
known devices.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
BUSPORT-8001
Device.BusController.Bluetooth.Base.MicrosoftBluetoothStack
Target Feature: Device.BusController.Bluetooth.Base
Title:
Must test using Microsoft's Bluetooth stack
Applicable OS Versions:

Windows 8 Client x64
Page 145 of 907


Windows 8 Client x86
Windows RT
Description:
The Bluetooth controllers must be tested with Microsoft's Bluetooth stack when submitting for
hardware certification.
Exceptions:
Not Specified
Business Justification:
This ensures Bluetooth controllers can work well with the inbox Microsoft Bluetooth stack.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
New
Device.BusController.Bluetooth.Base.OnOffStateControllableViaSoftware
Target Feature: Device.BusController.Bluetooth.Base
Title:
Bluetooth controllers’ On/Off state must be controllable via software
Applicable OS Versions:


Windows 8 Client x64
Windows 8 Client x86
Description:
Bluetooth controllers’ On/Off state shall be controllable via software as described in Bluetooth
Software Radio Switch. The Off state is defined, at a minimum, as disabling the antenna component
of the Bluetooth module so there can be no transmission/reception. There must not be any
hardware-only switches to control power to the Bluetooth radio.
The radio must maintain on/off state across sleep and reboot.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
BUSPORT-8005
Page 146 of 907
Device.BusController.Bluetooth.Base.Scatternet
Target Feature: Device.BusController.Bluetooth.Base
Title:
Bluetooth host controller supports Bluetooth scatternet
Applicable OS Versions:





Windows 8 Client x64
Windows 8 Client x86
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Description:
The Bluetooth host controller must support at least two concurrent piconets (also known as a
scatternet). The host controller must also be able to allow the host to join a device that is
requesting a connection to the existing piconet when the local radio is the master of that piconet.
This requirement is described in the Specification of the Bluetooth System, Version 2.1 + Enhanced
Data Rate (EDR) (Baseband Specification), Section 8.6.6.
Design Notes:
The scatternet support should follow the enhanced scatternet support errata that are defined by the
Bluetooth Special Interest Group (SIG).
Exceptions:
Not Specified
Business Justification:
To ensure a good Windows experience when using multiple Bluetooth devices.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
BUSPORT-0021
Device.BusController.Bluetooth.Base.ScoDataTransportLayer
Target Feature: Device.BusController.Bluetooth.Base
Title: Bluetooth host controllers support the SCO data transport layer as specified in the Bluetooth
2.1+EDR specifications
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows 7 Client x64
Page 147 of 907


Windows 7 Client x86
Windows RT
Description:
The Bluetooth host controller must comply with the Synchronous Connection Oriented (SCO)-USB
requirements that are outlined in the Specification of the Bluetooth System, Version 2.1 + Enhanced
Data Rate (EDR), Part A, Section 3.5.
Exceptions:
Not Specified
Business Justification:
This ensures voice audio scenarios work with Windows.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
BUSPORT-0023
Device.BusController.Bluetooth.Base.SimultaneousBrEdrAndLeTraffic
Target Feature: Device.BusController.Bluetooth.Base
Title:
Bluetooth controllers must support simultaneous BR/EDR and LE traffic.
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows RT
Description:
Bluetooth controllers must allow the simultaneous use of both Basic Rate (BR)/Enhanced Data Rate
(EDR) and Low Energy (LE) radios.
Exceptions:
Not Specified
Business Justification:
This ensures a good Windows user experience across BR/EDR and LE device scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
BUSPORT-8004
Page 148 of 907
Device.BusController.Bluetooth.Base.SpecificInformationParameters
Target Feature: Device.BusController.Bluetooth.Base
Title: Bluetooth host controller implements specific Informational parameters to provide accurate
information about the host controller's capabilities
Applicable OS Versions:





Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
The manufacturer fixes the informational parameters, which provide valuable information about the
Bluetooth device and the capabilities of the host controller. Bluetooth host controllers must
implement the HCl_Read_Local_Version_Information command and
HCI_Read_Local_Supported_Features command as described in the Specification of the Bluetooth
System, Version2.1 + Enhanced Data Rate (EDR), Part E, Section 7.4. Required support includes the
mechanism for reporting the supported version and features.
Exceptions:
Not Specified
Business Justification:
To ensure reliability.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
BUSPORT-0018
Device.BusController.Bluetooth.Base.SupportsBluetooth21AndEdr
Target Feature: Device.BusController.Bluetooth.Base
Title:
Bluetooth controllers must support the Bluetooth 2.1+EDR specification requirements
Applicable OS Versions:


Windows 7 Client x64
Windows 7 Client x86
Description:
The Bluetooth host controller must comply with the requirements that are outlined in the
Specification of the Bluetooth System Version 2.1 + Enhanced Data Rate (EDR).
Page 149 of 907
Exceptions:
Not Specified
Business Justification:
To ensure standards compliance.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2009
BUSPORT-0026
Device.BusController.Bluetooth.NonUSB
Description:
Bluetooth Controller - NonUSB connected radios
Related Requirements:


Device.BusController.Bluetooth.NonUSB.Performance
Device.BusController.Bluetooth.NonUSB.ScoSupport
Device.BusController.Bluetooth.NonUSB.Performance
Target Feature: Device.BusController.Bluetooth.NonUSB
Title:
Non-USB Bluetooth controllers must achieve at least a throughput of 700kbps
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows RT
Description:
Non-USB Bluetooth controllers must achieve at least a throughput of 700 kbps at the RFCOMM
layer.
Exceptions:
Not Specified
Business Justification:
This ensures a good Windows user experience with non-USB Bluetooth controllers.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Windows 8 RC
Page 150 of 907
Comments:
BUSPORT-8002
Device.BusController.Bluetooth.NonUSB.ScoSupport
Target Feature: Device.BusController.Bluetooth.NonUSB
Title:
Non-USB connected Bluetooth controllers use sideband channel for SCO
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows RT
Description:
In order to ensure a high quality audio experience All non-USB connected Bluetooth controllers must
use a sideband channel for SCO (e.g., SCO over an I2S/PCM interface)
Exceptions:
Not Specified
Business Justification:
This ensures a good Windows audio user experience with non-USB Bluetooth controllers.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
New
Device.BusController.NearFieldProximity
Description:
Near Field Proximity is a set of short range wireless technologies to enable communication between
a personal computer and a device.
Related Requirements:







Device.BusController.NearFieldProximity.NFCCertification
Device.BusController.NearFieldProximity.ProviderImplementation
Device.BusController.NearFieldProximity.ProximityReliability
Device.BusController.NearFieldProximity.RangeOfActuation
Device.BusController.NearFieldProximity.SessionEstablishmentPerformance
Device.BusController.NearFieldProximity.TaptoSetupScenario
Device.BusController.NearFieldProximity.TapToUseScenarios
Page 151 of 907
Device.BusController.NearFieldProximity.NFCCertification
Target Feature: Device.BusController.NearFieldProximity
Title:
NFC Implementations must receive NFC certification
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
An NFP provider that implements air interface specifications incorporated by NFC Forum by
reference as approved specifications, whose intended use therewith is to support higher-layer NFC
Forum specifications and related scenarios, must receive Certification from the NFC Forum, inclusive
of:


Wave 1 compliance
SNEP compliance
Exceptions:
None
Business Justification:
Obtaining certification from the NFC forum ensures proper NFC behavior.
Scenarios:
This ensures proper NFC behavior.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2010
Connect-0091 Reworded
Device.BusController.NearFieldProximity.ProviderImplementation
Target Feature: Device.BusController.NearFieldProximity
Title:
Device proximity adheres to the Proximity Provider model
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
Page 152 of 907
Any technology that implements the GUID_DEVINTERFACE_PROXIMITYPROVIDER device driver
interface specified in the ‘Windows 8 Near Field Proximity Implementation Specification’ document
is defined as an NFP provider and must meet all the design and implementation requirements laid
out within the spec as well as all other applicable NFP certification requirements. The spec can be
found at:
http://go.microsoft.com/fwlink/?LinkId=237135
Exceptions:
None
Business Justification:
Ensures well behaved providers.
Scenarios:
Enables all device proximity scenarios.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.BusController.NearFieldProximity.ProximityReliability
Target Feature: Device.BusController.NearFieldProximity
Title:
Proximity provider meets session reliability requirements
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
An NFP provider must support performant completion of Windows scenarios.
Within a period of 2.5 minutes the devices must be able to establish 95 successful sessions out of
100 attempts.
1.
2.
3.
4.
5.
The test scenario consists of: Provide two machines to carry out the test with a test app.
Tap the two machines together.
Validate that a session is established between the two devices within one second.
Repeat from step 2.
Attempt this 100 times
Exceptions:
Page 153 of 907
None
Business Justification:
Allows users to have confidence with proximity feature and ensures reliability.
Scenarios:
Two devices are within proximity of each other 100 consecutive times and sessions can be
established at least 95 times.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.BusController.NearFieldProximity.RangeOfActuation
Target Feature: Device.BusController.NearFieldProximity
Title:
Proximity technology meets range of actuation
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
An NFP provider must support an effective operating volume to enable users to successfully use NFP
technology with Windows in 95 times out of 100 attempts for all tap and do scenarios. Refer to the
most current version of the ‘Windows 8 Near Field Proximity Implementation Specification’
document for detailed placement guidance, as well as acceptable, minimum, and maximum values
for the required effective operating volume. The spec can be found at:
http://go.microsoft.com/fwlink/?LinkId=237135
Exceptions:
None
Business Justification:
Ensures connections will only be established in a small range rather than larger ones (such as
Bluetooth or wireless). Confines the range so that the appropriate technology is tested._
Scenarios:
When tapping two devices together, a connection cannot be established if the touch point of the
host device is greater than 10cm away from the other touch point.
Page 154 of 907
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.BusController.NearFieldProximity.SessionEstablishmentPerformance
Target Feature: Device.BusController.NearFieldProximity
Title:
Proximity technology establishes a session in 0.5 second
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
An NFP provider must support the creation of sessions within 0.5 seconds from the point of being
detected within the effective operating volume. As a point of information, the baseline expected
performance in this test for NFC is as follows:



Two apps attempt to establish sessions.
During the session establishment, the total data transferred at the air interface inclusive of
NDEF framing should be no more than 2 x 16kb, so a total of 32kbits transferred
bidirectionally.
The expected worst-case transfer rate for NFC is 106kbps, so the total time required at the
air interface should be
32kb/106kbps, so 0.3 seconds of time.
The remaining 0.2 seconds of time is for buffering and latency in the busses and stacks.
Exceptions:
None
Business Justification:
Ensures a timely connection for proximity aware applications.
Scenarios:
When tapping two devices together with 12 proximity aware applications using sessions, sessions
must be established within 0.5 second.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Not Specified
Page 155 of 907
Device.BusController.NearFieldProximity.TaptoSetupScenario
Target Feature: Device.BusController.NearFieldProximity
Title:
Provider must support the handling of the tap and setup scenario
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
An NFP provider must unwrap the out-of-band pairing information from the transmission format so
that only the out-of-band pairing information is presented to Windows. Detailed guidance and
requirements are further defined in the most current version of the ‘Windows 8 Near Field Proximity
Implementation Specification’ document. The spec can be found at:
http://go.microsoft.com/fwlink/?LinkId=237135
Exceptions:
None.
Business Justification:
Allows users to have confidence with proximity feature and ensures reliability.
Scenarios:
Enables support for tap to setup.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.BusController.NearFieldProximity.TapToUseScenarios
Target Feature: Device.BusController.NearFieldProximity
Title:
Provider must support the handling of the tap and use scenarios
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
Page 156 of 907
An NFP provider must support the end-to-end NFP use cases of tap and use, tap and launch, tap and
share, tap and acquire, and tap and receive. Details are further defined in the most current version
of the ‘Windows 8 Near Field Proximity Implementation Specification’ document. The spec can be
found at:
http://go.microsoft.com/fwlink/?LinkId=237135
Exceptions:
None.
Business Justification:
Allows users to have confidence with proximity feature and ensures reliability.
Scenarios:
Support tap to use, launch, share and acquire.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.BusController.SdioController
Description:
Not Specified
Related Requirements:


Device.BusController.SdioController.ComplyWithIndustrySpec
Device.BusController.SdioController.WdfKmdfDriver
Device.BusController.SdioController.ComplyWithIndustrySpec
Target Feature: Device.BusController.SdioController
Title:
SDIO Controller Complies with industry Standard
Applicable OS Versions:









Windows Server 2008 x86
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2008 x64
Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Page 157 of 907
Description:
Secure Digital I/O (SDIO) host controllers must comply with PCI 2.3 or later requirements for that
interface. For PCI configuration registers and interface information, see the SD Host Controller
Specification, Version 1.0, Appendix A.
Exceptions:
Not Specified
Business Justification:
To support SDIO scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2007
Taken from Busport-0011
Device.BusController.SdioController.WdfKmdfDriver
Target Feature: Device.BusController.SdioController
Title:
SDIO Controller driver must be a WDF KMDF Implementation
Applicable OS Versions:








Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
The SDIO Controller driver must be written using the Windows Driver Framework (WDF) Kernel
Mode Driver Framework for the driver’s implementation.
Exceptions:
Not Specified
Business Justification:
To support SDIO scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
6/1/2007
Page 158 of 907
Comments:
Taken from Busport-0011
Device.BusController.UsbController
Description:
Requirements that apply to USB Controllers
Related Requirements:

















Device.BusController.UsbController.ImplementAtLeastOneXhciSpcStructForUSB2
Device.BusController.UsbController.MaintainDeviceStateOnResumeS1andS3
Device.BusController.UsbController.MustResumeWithoutForcedReset
Device.BusController.UsbController.PreserveDeviceStateAfterDisableEnable
Device.BusController.UsbController.SpecificationCompliance
Device.BusController.UsbController.SuperSpeedConnectorsSupportHighFullLow
Device.BusController.UsbController.SupportSelectiveSuspend
Device.BusController.UsbController.TestedUsingMicrosoftUsbStack
Device.BusController.UsbController.UsbifCertification
Device.BusController.UsbController.XhciAc64Bit
Device.BusController.UsbController.XhciAddInCardsMapPortsConsistently
Device.BusController.UsbController.XhciAddInCardsReportInternalDevices
Device.BusController.UsbController.XhciSupportDebuggingOnAllExposedPorts
Device.BusController.UsbController.XhciSupportMsiMsixInterrupts
Device.BusController.UsbController.XhciSupportsMinimum31Streams
Device.BusController.UsbController.XhciSupportsRuntimePowerManagement
Device.BusController.UsbController.XhciVersionCompliant
Device.BusController.UsbController.ImplementAtLeastOneXhciSpcStructForUSB2
Target Feature: Device.BusController.UsbController
Title: xHCI Controllers implement at least one xHCI Supported Protocol Capability structure for
USB 2.0
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Page 159 of 907
Extensible Host Controller Interface (xHCI) controllers implement at least one xHCI Supported
Protocol Capability structure for USB 2.0 as described in section 7.2 of the xHCI Specification.
This affects backward compatibility with USB 2.0.
Exceptions:
Not Specified
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
12/1/2010
Busport-0047
Device.BusController.UsbController.MaintainDeviceStateOnResumeS1andS3
Target Feature: Device.BusController.UsbController
Title:
USB host controller maintains device state on resume from S1 or S3
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
For the host controller to maintain the device state, the USB host controller must not issue a USB
bus reset on a system sleep state transition from S3 to S0 or from S1 to S0.
USB host controllers that are integrated or embedded into the south bridge chipset must decouple
the USB bus reset from the PCI bus reset to reduce resume time. Resume operations from S1 or S3
must not generate USB bus resets. A USB bus reset is a reset signal that is sent over the USB bus to
USB devices that are connected to the USB host controller.
Systems that have a USB keyboard attached are allowed to perform USB bus resets to unlock the
system by using a password when the system resumes from S3.
For security purposes, the BIOS in a mobile system is allowed to issue a USB bus reset if the system is
attached to a docking station that has a hard disk drive (HDD) that is password-locked on first
resume.
Page 160 of 907
A reset of the HDD password is allowed whether or not the mobile system is docked. The following
scenarios are allowed:

Undocked systems with a password-enabled HDD

Docked systems with a password-enabled HDD

Addition or removal of an HDD
If the docking station does not have a native HDD or the docking station does not have a password,
the BIOS must not issue a USB bus reset.
It is acceptable to allow the controller to lose power in S3 when the system is on battery power.
Design Notes: See the Enhanced Host Controller Interface Specification for Universal Serial Bus,
Revision 1.0, Appendix A.
This requirement does not apply to Systems that Support Connected Standby.
Exceptions:
Not Specified
Business Justification:
This requirement reduces resume time and maintains the device state on resume from S3.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2007
Busport-0017
Device.BusController.UsbController.MustResumeWithoutForcedReset
Target Feature: Device.BusController.UsbController
Title: All USB host controllers work properly upon resume from sleep, hibernation or restart
without a forced reset.
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Page 161 of 907
All USB host controllers work properly upon resume from sleep, hibernation or restart without a
forced reset of the USB host controller
Design Notes:
A reset of the entire USB Host Controller results in significantly increased time that it takes for all
USB devices to become available after system resume since there could be only one device at
address 0 at a time, this enumeration has to be serialized for all USB devices on the bus. We have
also seen that resetting the host controller can lead to an illegal SE1 signal state on some host
controllers, which in turn can cause some USB devices to hang or drop off the bus. Moreover,
devices cannot maintain any private state across sleep resume as that state will be lost on reset.
Exceptions:
Not Specified
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2010
Taken from Connect-0126, which referenced devices and controllers
Device.BusController.UsbController.PreserveDeviceStateAfterDisableEnable
Target Feature: Device.BusController.UsbController
Title:
USB controller preserves device states after a disable and re-enable
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
If a USB controller is disabled and then re-enabled, all devices that were attached to the controller
before the USB controller was disabled are required to be present after the USB controller is reenabled.
Exceptions:
Not Specified
Business Justification:
Page 162 of 907
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2009
Bussport-0032
Device.BusController.UsbController.SpecificationCompliance
Target Feature: Device.BusController.UsbController
Title: USB host controller that supports USB functionality complies with the appropriate
specification
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Host controllers that provide USB 1.1 functionality but don’t provide USB 2.0 or USB 3.0 functionality
must comply with either the Open Host Controller Interface (OHCI) Specification for USB or the
Universal Host Controller Interface (UHCI) Design Guide, Revision 1.1. Host controllers that provide
USB 2.0 functionality but don’t provide USB 3.0 functionality must comply with the Enhanced Host
Controller Interface Specification (EHCI) for Universal Serial Bus 2.0. EHCI host controllers must
comply with the Enhanced Host Controller Interface Specification for Universal Serial Bus, Revision
1.0 or later.
Exceptions:
Not Specified
Business Justification:
To support USB functionality.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Busport-0013
Page 163 of 907
Device.BusController.UsbController.SuperSpeedConnectorsSupportHighFullLow
Target Feature: Device.BusController.UsbController
Title:
Exposed Super Speed capable connectors support high, full and low speed USB devices
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Extensible Host Controller Interface (xHCI) controllers are backward-compatible with high-speed,
full-speed, and low-speed USB devices. “Backward compatible” means that all USB devices
enumerate and function at their intended speeds.
This requirement ensures that low-, full-, and high-speed devices continue to work when xHCI
controllers become more prevalent in systems.
Design Notes: Integrated rate-matching (TT) hubs can be used to achieve this backward
compatibility.
Exceptions:
Not Specified
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
12/1/2010
Busport-0043
Device.BusController.UsbController.SupportSelectiveSuspend
Target Feature: Device.BusController.UsbController
Title:
USB Host Controller supports selective suspend
Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Page 164 of 907




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
A USB host controller can selectively suspend devices that support the selective suspend feature.
Exceptions:
Not Specified
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2009
Busport-0031
Device.BusController.UsbController.TestedUsingMicrosoftUsbStack
Target Feature: Device.BusController.UsbController
Title:
xHCI Controllers must be tested with Microsoft's xHCI Stack installed
Applicable OS Versions:






Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
Extensible Host Controller Interface (xHCI) Controllers must be tested with Microsoft’s xHCI stack
installed and enabled on a Windows system.
Note: During USB-IF self-testing a specific USB Test Stack is installed for testing purposes, this is
expected and acceptable.
Exceptions:
Not Specified
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Page 165 of 907
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
New
Device.BusController.UsbController.UsbifCertification
Target Feature: Device.BusController.UsbController
Title:
USB Host Controller is USB IF certified
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Starting June 1, 2011, USB host controllers must pass USB Implementers Forum (IF) testing.
For details see the following link:
http://msdn.microsoft.com/en-us/windows/hardware/gg463175.aspx
Note: Since USB-IF is currently not certifying controllers for Windows on ARM systems, the Windows
controllers for ARM-based devices are exempt from needing to get full USB-IF certification. Instead,
the controllers are expected to pass all Windows Hardware Certification tests which include
eventing, loop back and registers tests that get run as part of USB-IF certification.
Exceptions:
Systems that Support Connected Standby may pass a subset of USB-IF tests instead of being USB-IF
certified, since USB-IF does not certify Systems that Support Connected Standby.
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
Busport-0034: Added exception for SOC implementations
Page 166 of 907
Device.BusController.UsbController.XhciAc64Bit
Target Feature: Device.BusController.UsbController
Title:
xHCI Controllers set the AC64 bit in the HCCPARAMS register to 1
Applicable OS Versions:






Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
xHCI Controllers set the AC64 bit in the HCCPARAMS register to 1 as described in Section 5.3.6 of the
xHCI specification.
Therefore the controller must support:

64-bit addressing, described in section 5.3.6, and

64-bit register access, described in section 5.1.
Design notes:
Checking for AC64 to be set is a simple register check in the compliance driver.
To test 64-bit addressing, we will need to require the WLK user’s client system to have at least 6GB
of RAM. The test will use MmAllocateContiguousMemorySpecifyCache to get physical memory
above 4GB. It will validate in some way that the controller can access this memory area.
The test will try writing one or more registers using a 64-bit register access and reading back using
64-bit register access to confirm that registers are updated correctly. An example of a reasonable
register to test is: “Event Ring Segment Table Base Address Register (ERSTBA)” (section 5.3.2.3.2).
If AC64 is not set, there is nothing to test.
Exceptions:
This Requirement does NOT apply to Systems that Support Connected Standby.
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
12/1/2010
Page 167 of 907
Comments:
Busport-0045: Does not apply to SOC Implementations
Device.BusController.UsbController.XhciAddInCardsMapPortsConsistently
Target Feature: Device.BusController.UsbController
Title:
xHCI add in cards must map USB 3.0 and USB 2.0 ports consistently
Applicable OS Versions:






Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
Consistent USB 2.0 and USB 3.0 port mapping is required to help the operating system to effectively
manage the ports.
Note: This requirement only applies to add-in cards because port mapping for integrated xHCI
controllers should be performed via Advanced Configuration and Power Interface (ACPI). For more
information, see the SYSFUND 226 requirement.
For Extensible Host Controller Interface (xHCI) add-in cards (where “add-in card” is defined as a card
that is not integrated onto the motherboard), the complexity of this requirement varies significantly
depending on whether the add-in card contains any internal (integrated or embedded) hubs.
If there are no internal hubs, then the port numbering must correlate as given in xHCI v1.x
Specification. That is, the first USB 3.0 port must be connected to the same connector as the first 2.0
port, the second with the second, and so on. For example, if the USB 2.0 ports are numbered 1 and
2, and the USB 3.0 ports are numbered 3 and 4, ports 1 and 3 must map to the same connector, and
ports 2 and 4 must map to the same connector. For more information, see the xHCI v1.x
Specification, sections 4.24.2.1 and 4.24.2.2. If the host does not have any internal hubs, then the
remaining text of this requirement can be ignored.
However, if there are internal hubs (either integrated or embedded), then the requirement is more
involved. Note that strictly speaking, XHCI specification does not allow such hubs for add-in cards
because the port mapping information cannot be communicated to the software via ACPI. But
through this requirement, we are allowing such hubs and defining the required port mapping.
However, this mechanism has some limitations and it does not allow arbitrary configurations that
are allowed for integrated controllers when described by ACPI.
For add-in cards, xHCI host controllers may implement “integrated hubs” and/or “embedded hubs”
as defined in xHCI specification sections 4.24.2.1 and 4.24.2.2. Embedded hubs need not be limited
to being on the system board. However, the following limitations apply:
Page 168 of 907

Embedded hubs of add-in cards must be USB 3.0 hubs (this limitation is unique to the
scenario of this requirement and not part of the xHCI specification).

An add-in card may have at most one integrated hub.

If an add-in card has an integrated hub, it must have only one USB2 protocol port on the
root hub. This port is the port connected to the integrated hub.

An add-in xHCI card that implements an integrated hub must set the Integrated Hub
Implemented (IHI) bit in the USB 2.0 xHCI Supported Protocol Capability structure to “1” for
the root hub port connected to an integrated hub (refer to section 7.2.2.1.3.2 of the xHCI
specification).

All integrated or embedded hubs must be marked non-removable in their parent ports.
The implementation of integrated hubs determines the External Ports of the controller. External
Ports are a concept defined in section 4.24.2 of the xHCI specification to order ports so that they can
be mapped to connectors. In all cases, let there be n USB2 protocol External Ports numbered 1 to n,
and m USB3 protocol External Ports numbered n+1 to n+m.
External Port numbers are assigned to meet the following properties (not defined in the xHCI
specification). Note that integrated hubs must be USB 2.0 hubs.

If the xHCI implements an integrated hub, then n, the number of USB2 protocol External
Ports, equals the number of downstream facing ports on the integrated hub.

Otherwise, n equals the number of downstream facing USB2 protocol ports on the root hub.

m, the number of USB3 protocol External Ports, equals the number of downstream facing
USB3 protocol ports on the root hub.

Assign External Port numbers such that External Ports 1 through n are USB2 protocol ports
and External Ports n+1 through n+m are USB3 protocol external ports, and the ordering
ports within each protocol is preserved.
If embedded hub(s) are not present: The USB2 protocol External Ports and USB3 protocol External
Ports must be mapped to connectors using the “default” mapping described in section 4.24.2.2 of
the xHCI specification under the heading “When an Embedded hub is not implemented”.
If embedded hub(s) are present: The embedded hubs must be USB 3.0 hubs. First determine the
connector mapping as it would be without any embedded hubs, using the default mapping from
section 4.24.2.2 of the xHCI specification. For each embedded hub, both upstream ports must be
connected to the same connector. The embedded hubs’ downstream ports map to new connectors
in the same way as the ports of a non-embedded USB 3.0 hub.
Non-exposed connectors: Devices embedded in the host controller must be marked non-removable
in their parent ports. If, according to the connector mapping above, a non-removable peripheral
device’s connector is shared with a second port, the second port must not be connected or
Page 169 of 907
connectable to any device. On the other hand, any connector whose port(s) are all marked as
removable is considered to be an exposed connector, i.e. it must be physically connectable.
Note that if there is no ACPI information, a root hub cannot have both an embedded USB2 device
and an integrated USB2 hub; instead, the embedded device must be attached to the integrated hub.
Exceptions:
This Requirement does NOT apply to Systems that Support Connected Standby
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
12/1/2010
Comments:
Busport-0048: Extensive Re-Write to provide more details and clarification; does NOT apply to SOC
Implementations
Device.BusController.UsbController.XhciAddInCardsReportInternalDevices
Target Feature: Device.BusController.UsbController
Title:
xHCI controller add in cards correctly report internally attached devices
Applicable OS Versions:






Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
Extensible Host Controller Interface (xHCI) controllers must indicate internally attached devices by
setting the device removable (DR) bit in the PORTSC register to “1” for every port that has an
internally attached device. This applies to controllers that do not have ACPI information. For more
information, see section 5.4.8 of the xHCI Specification.

This requirement will prevent the operating system from flagging non-removable devices as
removable.

Add-in cards are defined as host controllers that are not integrated onto the motherboard.
Page 170 of 907
Design Notes:
Note: This requirement only applies to add-in cards because port mapping for integrated xHCI
controllers should be performed via Advanced Configuration and Power Interface (ACPI).
Exceptions:
Not Specified
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
12/1/2010
Comments:
Busport-0046: Added clarification that this applies to controllers that don’t have ACPI Info and added
design notes.
Device.BusController.UsbController.XhciSupportDebuggingOnAllExposedPorts
Target Feature: Device.BusController.UsbController
Title:
xHCI Controllers support USB debugging on all exposed ports
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
Extensible Host Controller Interface (xHCI) host controllers are debug-capable on all ports. Ports that
have embedded non-removable devices attached do not need to report debug capability.

USB debugging is defined in section 7.6 of the xHCI specification.

This requirement does not apply to add-in card host controllers.
This requirement is effective as of June 2012.
Exceptions:
Not Specified
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Page 171 of 907
Enforcement Date:
Comments:
6/1/2012
Busport-0042
Device.BusController.UsbController.XhciSupportMsiMsixInterrupts
Target Feature: Device.BusController.UsbController
Title:
xHCI Controllers support MSI and/or MSI-X interrupts
Applicable OS Versions:






Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
Extensible Host Controller Interface (xHCI) controllers support Message Signaled Interrupts (MSI)
and MSI-X interrupts as defined in section 6.8 of the PCI Local Bus Specification, revision 3.0 and
section 5.2.6 of the xHCI Specification.
Exceptions:
This Requirement does NOT apply to Systems that Support Connected Standby
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
12/1/2010
Comments:
Busport-0044: Does NOT apply to SOC Implementations
Device.BusController.UsbController.XhciSupportsMinimum31Streams
Target Feature: Device.BusController.UsbController
Title:
xHCI controller must support at least 31 primary streams per endpoint
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Page 172 of 907

Windows RT
Description:
Refer to the eXtensible Host Controller Interface specification, section 4.12.2.
This requirement is for the MaxPSASize in the HCCPARAMS to be set to 4 at the minimum to enable
ultimate data transfer rate with UAS devices.
Storage devices based on the USB Attached SCSI Protocol (UASP) will utilize streams to achieve
faster data transfer rates. To enable the best experience with these devices, every xHCI controller
will need to support at least 31 primary streams.
Exceptions:
Not Specified
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
New
Device.BusController.UsbController.XhciSupportsRuntimePowerManagement
Target Feature: Device.BusController.UsbController
Title: USB xHCI host controllers support runtime power management including, if implemented,
runtime wake
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
All USB xHCI host controllers must support runtime power management, as required by the
eXtensible Host Controller Interface specification, version 1.0, Section 4.15.
Runtime is defined as the system working state (S0), including the Connected Standby sub-state of
S0 if the controller is tested on a system that supports Connected Standby.
Power management of the host controller encompasses software-initiated idle power down
(controller low power state such as D3), software-initiated power up, and, optionally, hardwareinitiated wake signaling.
Page 173 of 907
If the xHCI controller is reported to support runtime wake signaling, it must be able to wake itself
successfully upon any of the following events:
A) Any port detecting device wake signaling, or
B) Any port detecting connect, disconnect, or overcurrent, when the corresponding PORTSC Wake
on Xxx bit is set to '1'.
For more details, see Section 4.15 of the xHCI specification.
To report whether the controller supports runtime wake signaling:
- For add-in controllers, the controller's PCI configuration space must accurately report whether the
controller is capable of waking up via PME. Note: reporting that the controller supports waking up
via PME implies that the controller can both successfully perform PCI wake at runtime, and
successfully wake the system from a system low power state, in accordance with the appropriate PCI
specification.
- For integrated controllers, the ACPI _S0W object must report whether the controller is capable of
runtime wake signaling.
Exceptions:
Not Specified
Business Justification: USB Power Management is critical to battery life.
Scenarios:
Power Management
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows 8 RTM
Not Specified
Device.BusController.UsbController.XhciVersionCompliant
Target Feature: Device.BusController.UsbController
Title:
USB 3.0 controllers are XHCI version compliant
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Page 174 of 907
Description:
Effective June 1, 2012, USB 3.0 controllers must comply with the Extensible Host Controller Interface
(xHCI) Specification version 1.0. and any USB-IF Errata that are released by the USB-IF.
Exceptions:
Not Specified
Business Justification:
To support USB Controller functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
6/1/2012
Comments:
Busport-0041: Added "and any USB-IF Errata that are released by the USB-IF." to the end of the
requirement.
Device.Connectivity.BluetoothDevices
Description:
Devices which connect to the PC via Bluetooth
Related Requirements:










Device.Connectivity.BluetoothDevices.BluetoothDeviceIdProfileVer12
Device.Connectivity.BluetoothDevices.BluetoothDeviceIdProfileVer13
Device.Connectivity.BluetoothDevices.BluetoothHidLimitedDiscoverableMode
Device.Connectivity.BluetoothDevices.BluetoothUSBPlugandPlay
Device.Connectivity.BluetoothDevices.ComplementarySubsystemList
Device.Connectivity.BluetoothDevices.FunctionAfterSystemSuspendCycle
Device.Connectivity.BluetoothDevices.HidInitiatedReconnect
Device.Connectivity.BluetoothDevices.KeyboardsSupportPasskeyAuthentication
Device.Connectivity.BluetoothDevices.RespondToServiceDiscoveryRequests
Device.Connectivity.BluetoothDevices.SupportBluetooth21
Device.Connectivity.BluetoothDevices.BluetoothDeviceIdProfileVer12
Target Feature: Device.Connectivity.BluetoothDevices
Title:
Devices which support Bluetooth must implement the DeviceID profile, version 1.2
Applicable OS Versions:


Windows 7 Client x64
Windows 7 Client x86
Page 175 of 907
Description:
The Bluetooth system defines a Service Discovery Protocol (SDP). Bluetooth PC peripherals must
support SDP as described in Specification of the Bluetooth System, Version2.1+EDR, Part B. The Plug
and Play information is a single record that gives the devices VID/PID.
Exceptions:
Not Specified
Business Justification:
This allows for unique identification of the remote device type.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
CONNECT-0006
Device.Connectivity.BluetoothDevices.BluetoothDeviceIdProfileVer13
Target Feature: Device.Connectivity.BluetoothDevices
Title: Devices which support Bluetooth must implement the Device ID (DI) profile version 1.3 or
Device Information Service (DIS), as applicable
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
Bluetooth PC peripherals must include the Device ID record as specified in the Device ID profile,
version 1.3, for BR/EDR Bluetooth or the Device Information Service (DIS), version 1.1, Bluetooth LE.
Exceptions:
Not Specified
Business Justification:
This allows for unique identification of the remote device type.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
CONNECT-8002
Device.Connectivity.BluetoothDevices.BluetoothHidLimitedDiscoverableMode
Target Feature: Device.Connectivity.BluetoothDevices
Page 176 of 907
Title:
Bluetooth HID devices must be discoverable only in Limited Discoverable Mode.
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows RT
Description:
Bluetooth HID devices must be discoverable only in Limited Discoverable Mode.
Exceptions:
Not Specified
Business Justification:
This allows Bluetooth HID devices to be prioritized when discovering devices.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Not Specified
CONNECT-8001
Device.Connectivity.BluetoothDevices.BluetoothUSBPlugandPlay
Target Feature: Device.Connectivity.BluetoothDevices
Title:
Bluetooth wireless technology device supports Plug and Play on the applicable bus
Applicable OS Versions:





Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
USB must comply with Specification of the Bluetooth System, Version 1.1 or later, "Part H:2, USB
Transport Layer."
Exceptions:
Not Specified
Business Justification:
To comply with standards.
Scenarios:
Not Specified
Page 177 of 907
Success Metric: Pass/Fail
Enforcement Date:
Comments:
June 1, 2006
CONNECT-0001
Device.Connectivity.BluetoothDevices.ComplementarySubsystemList
Target Feature: Device.Connectivity.BluetoothDevices
Title: Bluetooth wireless technology subsystem end product lists Windows operating system in its
complementary subsystem list
Applicable OS Versions:





Windows 8 Client x64
Windows 8 Client x86
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Description:
The Bluetooth subsystem end product must list the Windows operating system in the
complementary subsystem list as described in Bluetooth Qualification Program Reference
Document, Version 2.1, Section6.1, "Bluetooth Subsystems."
Exceptions:
Not Specified
Business Justification:
This fulfills a Bluetooth Qualification requirement.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
CONNECT-0008
Device.Connectivity.BluetoothDevices.FunctionAfterSystemSuspendCycle
Target Feature: Device.Connectivity.BluetoothDevices
Title:
cycle
Bluetooth device appears and continues to function properly after a system suspend resume
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows 7 Client x64
Page 178 of 907


Windows 7 Client x86
Windows RT
Description:
Bluetooth devices which are present before any system sleep state are present upon wake from that
sleep state.
Exceptions:
Not Specified
Business Justification:
To verify that Bluetooth devices work properly after suspend/resume cycles.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Not Specified
CONNECT-0129
Device.Connectivity.BluetoothDevices.HidInitiatedReconnect
Target Feature: Device.Connectivity.BluetoothDevices
Title:
HID Devices which support Bluetooth support HID-initiated re-connect
Applicable OS Versions:





Windows 8 Client x86
Windows 7 Client x64
Windows 7 Client x86
Windows 8 Client x64
Windows RT
Description:
The HIDReconnectInitiate attribute (defined in Bluetooth HID Profile, 1.0, Section7.11.5,
HIDReconnectInitiate) must be enabled. To automatically reconnect to the host if the connection is
dropped, the device must enter page mode.
Exceptions:
Not Specified
Business Justification:
This ensures the HID device will attempt to connect back to the Windows system if there is an
unexpected disconnect.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Page 179 of 907
Enforcement Date:
Comments:
9/5/2008
CONNECT-0011
Device.Connectivity.BluetoothDevices.KeyboardsSupportPasskeyAuthentication
Target Feature: Device.Connectivity.BluetoothDevices
Title: Bluetooth Keyboards which implement Secure Simplified Pairing must support the Passkey
authentication method
Applicable OS Versions:





Windows 8 Client x64
Windows 8 Client x86
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Description:
Keyboards which implement Secure Simplified Pairing must support the Passkey authentication
method.
Exceptions:
Not Specified
Business Justification:
This requirement ensures the security of user data being passed to the Windows system.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2009
CONNECT-0097
Device.Connectivity.BluetoothDevices.RespondToServiceDiscoveryRequests
Target Feature: Device.Connectivity.BluetoothDevices
Title: Bluetooth Devices respond to Service Discovery requests before requiring authentication
and while in inquiry scan state.
Applicable OS Versions:





Windows 8 Client x64
Windows 8 Client x86
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Page 180 of 907
Description:
Service discovery must be completed before requiring authentication.
Bluetooth PC peripherals must support Security Specification as described in Specification of the
Bluetooth System, Version2.1+EDR, Part H.
Exceptions:
Not Specified
Business Justification:
This is a Bluetooth requirement.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
CONNECT-0007
Device.Connectivity.BluetoothDevices.SupportBluetooth21
Target Feature: Device.Connectivity.BluetoothDevices
Title:
Devices which support Bluetooth must implement the Bluetooth 2.1 requirements
Applicable OS Versions:


Windows 7 Client x86
Windows 7 Client x64
Description:
The Bluetooth devices must comply with the Bluetooth 2.1 + EDR requirements outlined in
Bluetooth Version 2.1 + EDR specifications.
Exceptions:
Not Specified
Business Justification:
This ensures Windows users can take advantage of Bluetooth 2.1 features.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2012
CONNECT-0096
Device.Connectivity.NearFieldProximity
Description:
Page 181 of 907
Near Field Proximity is a set of short range wireless technologies to enable communication between
a personal computer and a device.
Related Requirements:





Device.Connectivity.NearFieldProximity.DeviceNFCCertification
Device.Connectivity.NearFieldProximity.DeviceRangeOfActuation
Device.Connectivity.NearFieldProximity.DeviceTapToSetup
Device.Connectivity.NearFieldProximity.NfcForumTag
Device.Connectivity.NearFieldProximity.TouchMark
Device.Connectivity.NearFieldProximity.DeviceNFCCertification
Target Feature: Device.Connectivity.NearFieldProximity
Title:
NFC Implementations must receive NFC certification
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
An NFP provider that implements air interface specifications incorporated by NFC Forum by
reference as approved specifications, whose intended use therewith is to support higher-layer NFC
Forum specifications and related scenarios, must receive Certification from the NFC Forum, inclusive
of:
:


Wave 1 compliance
SNEP compliance
Exceptions:
None.
Business Justification:
Obtaining certification from the NFC forum ensures proper NFC behavior.
Scenarios:
This ensures proper NFC behavior.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
None
Page 182 of 907
Device.Connectivity.NearFieldProximity.DeviceRangeOfActuation
Target Feature: Device.Connectivity.NearFieldProximity
Title:
Proximity technology meets range of actuation
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
A device that implements NFP technology must support an effective operating volume to enable
users to successfully use NFP technology with Windows in 95 times out of 100 attempts for all tap
and do scenarios. Refer to the most current version of the ‘Windows 8 Near Field Proximity
Implementation Specification’ document for detailed placement guidance, as well as acceptable,
minimum, and maximum values for the required effective operating volume. The spec can be found
at:
http://go.microsoft.com/fwlink/?LinkId=237135
Exceptions:
None
Business Justification:
Ensures connections will only be established in a small range rather than larger ones (such as
Bluetooth or wireless). Confines the range so that the appropriate technology is tested.
Scenarios:
When tapping two devices together, a connection must be established at a range at least to 4 cm
and cannot be established at a range greater than 10 cm away from the local device with respect to
the remote device.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.Connectivity.NearFieldProximity.DeviceTapToSetup
Target Feature: Device.Connectivity.NearFieldProximity
Title:
Proximity device supports tap and setup
Applicable OS Versions:


Windows 8 Client x86
Windows 8 Client x64
Page 183 of 907

Windows RT
Description:
A device that supports pairing with Windows using NFP technology must implement the tap and
setup scenario defined in more detail in the most current version of the ‘Windows 8 Near Field
Proximity Implementation Specification’ document. The spec can be found at:
http://go.microsoft.com/fwlink/?LinkId=237135
Exceptions:
None
Business Justification:
Allows users to have confidence with proximity feature and ensures reliability.
Scenarios:
Enables common scenarios for proximity devices.
Success Metric: Pass/Fail above
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.Connectivity.NearFieldProximity.NfcForumTag
Target Feature: Device.Connectivity.NearFieldProximity
Title:
Tap and setup with passive devices
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
A device that uses only an NFC Forum tag as the NFP technology must adhere to the NFC Forum
NDEF specification.
Exceptions:
Not Specified
Business Justification:
Ensures proper NFC behavior.
Scenarios:
Provider implementing NFC
Page 184 of 907
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.Connectivity.NearFieldProximity.TouchMark
Target Feature: Device.Connectivity.NearFieldProximity
Title: If using NFC as a proximity technology, then there must be a Microsoft Windows defined
touch mark on the device.
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
To help users locate and use the proximity technology, the use of a visual mark is required by, and is
only permitted for, NFC NFP providers (those NFP providers that implement air interface
specifications incorporated by the NFC Forum by reference as approved specifications). Refer to the
most current version of the ‘Windows 8 Near Field Proximity Implementation Specification’
document for placement guidance and mark usage requirements. The spec can be found at:
http://go.microsoft.com/fwlink/?LinkId=237135
Exceptions:
Not Specified
Business Justification:
Users will know where to tap devices together
Scenarios:
Users want to have a proximity experience and need to know where to tap devices together.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.Connectivity.Network.PnPX
Description:
Root for former "Rally" technologies
Related Requirements:

Device.Connectivity.Network.PnPX.PnPX
Page 185 of 907
Device.Connectivity.Network.PnPX.PnPX
Target Feature: Device.Connectivity.Network.PnPX
Title:
A network-enabled device must implement PnP-X and comply with the PnP-X specification
Applicable OS Versions:




Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Windows 8 Client x64
Description:
A network-enabled device must comply with the Plug and Play Extensions (PnP-X) specification.
Examples of network-enabled devices are network media players (digital media receiver
[DMR]/digital media player [DMP]/networked media device [NMD]), network-attached storage
(NAS)/digital media server (DMS), and 802.11 digital picture frames (DPFs).
To take advantage of PnP-X, the device manufacturer must support one of the inbox function
discovery providers (Web Service Dynamic Discovery [WS-Discovery] and Simple Service Discovery
Protocol [SSDP]) and provide the PnP-X metadata extensions in the Devices Profile for Web Services
(DPWS) or a UPnP device.
If a device implements both UPnP and web services (such as DPWS), it must either use the same
universally unique identifier (UUID) for the UPnP root device and the Web Services Endpoint
Reference Address or use the ContainerID PnP-X tag in both transports with the same ContainerID
value in both transports.
This requirement is focused on network-attached (IP-connected) devices. As such, computerattached network cards (for example, USB-to-Ethernet dongles) are exempt from this requirement.
Design Notes:
For implementation details, see the PnP-X: Plug and Play Extensions for Windows Specification at
http://go.microsoft.com/fwlink/?LinkID=123172.
For more information, see the "Vertical Pairing" white paper at
http://www.microsoft.com/whdc/connect/rally/WiFiVerticalPair.mspx. This white paper also
describes updates to PnP-X, such as the new namespace introduced for Windows 7.
Additional information and sample scan be found in the Windows Rally Development Kit at
http://go.microsoft.com/fwlink/?LinkId=109368.
Discovery describes how Windows determines that a device is present. For physically connected
devices, discovery occurs through Peripheral Component Interconnect (PCI), USB, and other physical
bus enumerators. For network-connected devices (NCDs), Windows uses network communication
Page 186 of 907
protocols to discover the presence of a device. Under Windows, PnP-X allows network-connected
devices to be discovered and installed on a client computer as if they were physically connected.
Although this requirement is marked "I" (If-Implemented), refer to the appropriate device class
requirements to determine whether it is required for a specific device category.
Exceptions:
This requirement is focused on network-attached (IP-connected) devices. As such, computerattached network cards (for example, USB-to-Ethernet dongles) are exempt from this requirement.
Business Justification:
NCDs must be as easy to use as bus-connected devices. PnP-X enables this ease of use. And, it
identifies the PC as the best place to manage the increasing number of NCDs in the home. In
addition, when an NCD uses PnP-X, it can take full advantage of the Windows Update infrastructure.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
CONNECT-0100
Device.Connectivity.Network.VerticalPairing
Description:
Root for former "Rally" technologies
Related Requirements:


Device.Connectivity.Network.VerticalPairing.VerticalPairing
Device.Connectivity.Network.VerticalPairing.WCN
Device.Connectivity.Network.VerticalPairing.VerticalPairing
Target Feature: Device.Connectivity.Network.VerticalPairing
Title:
Network-attached devices must implement vertical pairing
Applicable OS Versions:





Windows 8 Client x86
Windows 8 Client x64
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Page 187 of 907
Devices must implement the Wi-Fi based Plug and Play Extensions (PnP-X) devices that adhere to
vertical-pairing principles as outlined by the "Installing Wi-Fi Devices Using Rally Vertical Pairing"
white paper at http://www.microsoft.com/whdc/connect/rally/WiFiVerticalPair.mspx.
Exceptions:
Not Specified
Business Justification:
The intention is to ensure that such as device properly identifies the PnP-X device's universally
unique identifier (UUID) and protocol during the Wireless Provisioning Services (WPS)/Wi-Fi
provisioning stage through the Microsoft vertical-pairing WPS vendor extensions, as outlined by the
white paper.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.Connectivity.Network.VerticalPairing.WCN
Target Feature: Device.Connectivity.Network.VerticalPairing
Title: An 802.11 network-enabled device that operates as a station (STA) must implement WCNNET and meet basic 802.11 requirements
Applicable OS Versions:




Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Windows 8 Client x64
Description:
A 802.11 network-enabled device that operates as a station (STA) must meet the following
requirements:

The device must implement WCN-NET and comply with the specification.

The device must implement WCN-NET vertical-pairing extensions and indicate whether it
supports a PnP-X transport protocol. If the device supports a PnP-X transport protocol, it
must ensure correct universally unique identifier (UUID) alignment.

If WCN-UFD is implemented, it must comply with the specification.

If the device has a display that capable of showing a four-digit or eight-digit number, it must
support displaying a dynamic Windows Connect Now (WCN) PIN without user intervention.
The PIN must be displayed for a minimum of two minutes after the device receives a
Page 188 of 907
Wireless Provisioning Services (WPS) M2D message with the value of "Windows" in the WPS
Model Name attribute.

If the device does not have a display that is capable of showing a four-digit or eight-digit
number, it must provide a physical label affixed to the device that includes the eight-digit
PIN and clearly labels the PIN value as a PIN (for example, PIN: 12345670).

The device must be certified by the Wi-Fi Alliance, including Wi-Fi certification, Wi-Fi
Protected Access 2 (WPA2) certification, and Wi-Fi Protected Setup certification.
Design Notes:
For implementation details, see the WCN-NET specification at
http://go.microsoft.com/fwlink/?LinkId=109371 and the WCN-UFD specification at
http://go.microsoft.com/fwlink/?LinkId=109372.
For more information, see the "Installing Wi-Fi Devices Using Rally Vertical Pairing" white paper at
http://www.microsoft.com/whdc/connect/rally/WiFiVerticalPair.mspx.
Additional information can be found at http://go.microsoft.com/fwlink/?LinkId=109373 and
http://go.microsoft.com/fwlink/?LinkId=109368.
WCN-NET is required. WCN-UFD is optional and is supported in Windows for backward compatibility
with devices that are designed to support WCN functionality for Windows XP with Service Pack 2.
A device uses WCN-NET vertical-pairing extensions to indicate that its supports PnP-X. The device
must provide a single UUID that is provided in both the WCN-NET exchange and the UPnP™/Web
Services for Devices (WSD) device file or provide the UPnP/WSD device UUID in the TransportUUID
attribute of the WCN-NET vertical-pairing extension. The UUID that is provided in UPnP or WSD must
be in lowercase (decimal digits can also be used).
For WSD implementations, the WSD UUID is provided as the endpoint reference address and must
be of the form urn:uuid:. For UPnP implementations, the UPnP UUID is provided as the root device
UUID.
Exceptions:
Not Specified
Business Justification:
Devices that employ the previously mentioned specification will be easy for an end user to add to a
wireless network.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
CONNECT-0099
Page 189 of 907
Device.Connectivity.PciConnected
Description:
Not Specified
Related Requirements:








Device.Connectivity.PciConnected.64BitPrefetchableBar
Device.Connectivity.PciConnected.ConfigurationSpaceCorrectlyPopulated
Device.Connectivity.PciConnected.ExpressCardImplementsSerialNumber
Device.Connectivity.PciConnected.InterruptDisableBit
Device.Connectivity.PciConnected.MsiOrMsixSupport
Device.Connectivity.PciConnected.PciAndPcixDevicesArePciCompliant
Device.Connectivity.PciConnected.PCIExpress
Device.Connectivity.PciConnected.SubsystemIdsRequired
Device.Connectivity.PciConnected.64BitPrefetchableBar
Target Feature: Device.Connectivity.PciConnected
Title: PCI-X and PCI Express devices that use prefetchable memory BARs, implement 64-bit
prefetchable memory base address registers (BARs)
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows Server 2012
Windows Vista Client x86
Windows Vista Client x64
Description:
Devices that sit on the PCI-X or PCI Express bus and use prefetchable memory BARs must implement
64-bit prefetchable memory BARs on x64-based systems.
Design Notes:
See Firmware Allocation of PCI Device Resources in Windows
http://msdn.microsoft.com/en-us/windows/hardware/gg462986
If the device supports 64-bit prefetchable memory BARs, Windows attempts to assign a region above
4 GB. In a PCI bridge, Windows ignores boot configuration for an entire device path emanating from
the bridge in whose scope this method is defined. For the bridge and devices below it to be assigned
Page 190 of 907
a region above 4 GB, all devices in the path must support 64-bit prefetchable BARs. If this is not true,
the rebalance code runs and moves all resource assignments below 4 GB, because the goal is to start
as many devices as possible.
Refer to PCI local bus specifications revision 3.0, section 6.2.5 for information on Base Address
Registers (BAR), and section 3.1.2 for information on the characteristics of prefetchable memory.
Exceptions:
Not Specified
Business Justification:
To relieve memory resource constraints below 4GB on 64-bit systems, devices should support 64-bit
prefetchable memory capabilities.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2007
CONNECT-0038
Device.Connectivity.PciConnected.ConfigurationSpaceCorrectlyPopulated
Target Feature: Device.Connectivity.PciConnected
Title:
Configuration space for PCI device is correctly populated
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Vista Client x86
Windows Vista Client x64
Description:
PCI2.3 describes the configuration space that the system uses to identify and configure each device
that is attached to the bus. The configuration space is made up of a header region and a devicedependent region. Each configuration space must have a 64-byte header at offset0. All the device
registers that the device circuit uses for initialization, configuration, and catastrophic error handling
must fit within the space between byte 64 and byte 255.
Page 191 of 907
All other registers that the device uses during normal operation must be located in normal I/O or
memory space. Unimplemented registers or reads to reserved registers must finish normally and
return zero. Writes to reserved registers must finish normally, and the data must be discarded.
All registers that the device requires at interrupt time must be in I/O or memory space.
Exceptions:
Not Specified
Business Justification:
To support PCI scenarios.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
CONNECT-0033
Device.Connectivity.PciConnected.ExpressCardImplementsSerialNumber
Target Feature: Device.Connectivity.PciConnected
Title: A single ExpressCard module that supports both USB and PCI Express interfaces implements
a common serial number
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Vista Client x86
Windows Vista Client x64
Description:
An ExpressCard module that supports both USB and PCI Express interfaces on a single module must
implement the common serial number as described in the PCI ExpressCard Electromechanical
Specification.
This is the only method that Windows will use to determine the relationship of USB and PCI Express
on one module.
Exceptions:
Not Specified
Page 192 of 907
Business Justification:
This is the ONLY method the OS will use to determine the relationship of the two buses on one
module.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
CONNECT-0017
Device.Connectivity.PciConnected.InterruptDisableBit
Target Feature: Device.Connectivity.PciConnected
Title:
PCI and PCI-X devices, that are PCI 2.3 compliant, support the interrupt-disable bit
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Vista Client x86
Windows Vista Client x64
Description:
All PCI and PCI-X devices that claim support for PCI Local Bus Specification Revision 2.3 or later, must
support the interrupt-disable bit.
Design Notes: See PCI Local Bus Specification, Revision2.3, Section6.2.2.
Exceptions:
Not Specified
Business Justification:
To support standards for the support of interrupt disable bit.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
INPUT-0037
Page 193 of 907
Device.Connectivity.PciConnected.MsiOrMsixSupport
Target Feature: Device.Connectivity.PciConnected
Title: PCI device that reports PCI-X capability in the PCI configuration space and that generates
interrupts may support MSI or MSI-X but is not required to do so
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows Server 2012
Windows Vista Client x86
Windows Vista Client x64
Description:
As part of the PCI Conventional Specification 2.2 or later, PCI-X Addendum, Section 3.2, all PCI-X
devices that generate interrupts must support message-signaled interrupts.
For MSI implementation, MSI capabilities must be implemented in the configuration space.
For MSI-X implementation, MSI-X capabilities must be implemented in the configuration space.
However, because PCI-X is being replaced by PCI Express and many existing implementations do not
support MSI or MSI-X, this requirement will not be applicable if either the MSI or MSI-X
implementations are not part of the design.
Any device that claims to support MSI or MSI-X must support message-signaled interrupts or will fail
the relevant WDK tests.
Design Notes:
Message Signaled Interrupt for PCI-X device is required by industry standard specification. However,
see above.
Exceptions:
Not Specified
Business Justification:
To support PCI scenarios.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 194 of 907
Enforcement Date:
Comments:
6/1/2006
CONNECT-0042
Device.Connectivity.PciConnected.PciAndPcixDevicesArePciCompliant
Target Feature: Device.Connectivity.PciConnected
Title:
PCI and PCI-X devices, at a minimum, are PCI 2.1 compliant
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Windows Vista Client x86
Windows Vista Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
All PCI and PCI-X devices must comply with the PCI Local Bus Specification, Revision 2.1 or later. This
requirement applies to devices on X86, IA64 and x64 systems.
Design Notes:
See PCI Local Bus Specification, Revision 2.1 or later.
Exceptions:
Not Specified
Business Justification:
To support PCI scenarios.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2007
Connect-0069
Device.Connectivity.PciConnected.PCIExpress
Target Feature: Device.Connectivity.PciConnected
Title:
PCI Express requirement
Applicable OS Versions:
Page 195 of 907










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows Server 2012
Windows Vista Client x86
Windows Vista Client x64
Description:
1. Device driver for PCI Express device does not modify VC Enable settings:
The device driver must not modify the "VC Enable" bit (PCI Express Base Specification, Version1.0a,
Section7.11.7, VC Resource Control Register: bit 31) for any of the device’s extended (non-VC0)
virtual channel or channels.
2. PCI Express link active state L1 exit latency does not exceed 64 µS:
A PCI Express link, between root complex and device or bridge, cannot have an active state L1 exit
latency of more than 64 microseconds on systems unless the link is associated with a PCI Express
cable; that is, a value of 111b cannot be reported in the link capabilities register field 17:15. See PCIe
Express Base Specification, Revision 1.0a, Section 7.8.6.
3. PCI Express hot-plug port that supports firmware-controlled hot plug uses the _OSC control
method for enable and disable:
All PCI Express hot-plug ports that support firmware-controlled hot-plugs must support the_OSC
control method for enabling and disabling firmware-controlled hot-plug as described in the PCI
Firmware Specification Version 3.0. See PCI Express Base Specification, Revision 1.1, Section 6.7.4.
4. PCI Express component implements a single device number on its primary interface:
Every PCI Express component (that is, physical device) is restricted to implementing a single device
number on its primary interface (upstream port), but it may implement up to eight independent
functions within that device number. See PCI Express Base Specification, Revision1.1 (or later),
Section 7.3.1.
5. PCI Express device implements support for MSI or MSI-X:
MSI support, which is optional for PCI 2.1, PCI 2.2, and PCI 2.3 devices, is required for PCI Express
devices. This capability can be either implemented as MSI or MSI-X. See PCI Express Base
Specification, Revision1.0a, Section 6.1.
6. PCI Express root complex supports the enhanced (memory-mapped) configuration space access
mechanism:
Page 196 of 907
The root complex must support the enhanced configuration space access mechanism as defined in
PCI Express Base Specification, Revision 1.1 (or later), Section 7.9.
7. PCI Express device that can interrupt supports the interrupt disable bit:
If an interrupt is implemented, PCI Express devices must support the interrupt disable functionality
described in PCI Local Bus Specification, Revision2.3. This bit disables the device or function from
asserting INTx. A value of 0 enables the assertion of its INTx signal. A value of 1 disables the assertion
of its INTx signal. This bit’s state upon reset is 0
Exceptions:
Not Specified
Business Justification:





Windows doesn’t support non-VC0 virtual channels.
Standardized HW equals stable code. If we have multiple HW implementations then there
are more code paths to consider. Some requirements are for functionality that will help the
system become more reliable. This includes “Interrupt Disable Functionality”, “Devices that
map their internal registers into I/O space”, “Infinite Flow Control (FC) units” etc.
Standardized HW equals stable code. If we have multiple HW implementations then there
are more code paths to consider. Some requirements are for functionality that will help the
system become more reliable. This includes “Interrupt Disable Functionality”, “Devices that
map their internal registers into I/O space”, “Infinite Flow Control (FC) units” etc.
Standardized HW equals stable code. If we have multiple HW implementations then there
are more code paths to consider. Some requirements are for functionality that will help the
system become more reliable. This includes “Interrupt Disable Functionality”, “Devices that
map their internal registers into I/O space”, “Infinite Flow Control (FC) units” etc.
Standardized HW equals stable code. If we have multiple HW implementations then there
are more code paths to consider.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
CONNECT-0034
Device.Connectivity.PciConnected.SubsystemIdsRequired
Target Feature: Device.Connectivity.PciConnected
Title:
Device IDs include PCI subsystem IDs
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Page 197 of 907






Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows Server 2012
Windows Vista Client x86
Windows Vista Client x64
Description:
The SID and SVID fields must comply with the SID requirement in PCI Local Bus Specification 2.3 and
the implementation details in "PCI Device Subsystem IDs and Windows."
AMR devices and MR devices on the system board are not exempt from the requirement for SID and
SVID.
SVID is not required for PCIe to PCI/PCI-X bridges.
Design Notes:
See "PCI Device Subsystem IDs and Windows" at http://msdn.microsoft.com/enus/windows/hardware/gg463287.aspx.
Exceptions:
Not Specified
Business Justification:
To support PCI scenarios.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
CONNECT-0032
Device.Connectivity.UsbDevices
Description:
Applies to all devices connected via USB including USB Hubs. Does not apply to USB Controllers
Related Requirements:







Device.Connectivity.UsbDevices.Addressing
Device.Connectivity.UsbDevices.AlternateDriver
Device.Connectivity.UsbDevices.CompliesWithChap9
Device.Connectivity.UsbDevices.DebugCompliesWithDebugSpec
Device.Connectivity.UsbDevices.DebugCompliesWithDebugSpecUSB3
Device.Connectivity.UsbDevices.DeviceAttachLessThan100ms
Device.Connectivity.UsbDevices.EsdRecovery
Page 198 of 907























Device.Connectivity.UsbDevices.FunctionSuspendSelectiveSuspend
Device.Connectivity.UsbDevices.InstallViaUniquePnpIdentifier
Device.Connectivity.UsbDevices.IsochronousDeviceAndDriver
Device.Connectivity.UsbDevices.MsOsContainerId
Device.Connectivity.UsbDevices.MustBeFunctionalAfterResume
Device.Connectivity.UsbDevices.MustEnumerateOnEhciAndXhci
Device.Connectivity.UsbDevices.MustNotDisconnectDuringSuspend
Device.Connectivity.UsbDevices.MustResumeWithoutForcedReset
Device.Connectivity.UsbDevices.MustSignalAttachWithin500ms
Device.Connectivity.UsbDevices.MustSupportSuspend
Device.Connectivity.UsbDevices.PeripheralOperatesInFunctionMode
Device.Connectivity.UsbDevices.PortMove500ms
Device.Connectivity.UsbDevices.RespondAllStringRequests
Device.Connectivity.UsbDevices.ResponsesLimitedByWlengthField
Device.Connectivity.UsbDevices.SerialNumbers
Device.Connectivity.UsbDevices.SerialNumbersUseValidCharacters
Device.Connectivity.UsbDevices.SuperSpeedOnConnectViaUsb3Port
Device.Connectivity.UsbDevices.TestedUsingMicrosoftUsbStack
Device.Connectivity.UsbDevices.Usb3CompatibleWithDownLevel
Device.Connectivity.UsbDevices.UsbifCertification
Device.Connectivity.UsbDevices.UseUsbClassOnlyForControllerOrHub
Device.Connectivity.UsbDevices.WirelessUsbObtainsWusbLogoFromUsbif
Device.Connectivity.UsbDevices.WirelessUsbWiMediaAlliace
Device.Connectivity.UsbDevices.Addressing
Target Feature: Device.Connectivity.UsbDevices
Title:
USB device can be configured to any USB address
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
To ensure that the devices function at all device address ranges, USB devices must be able to be
configured to any USB address that the host provides. The device must enumerate and function
Page 199 of 907
correctly at any address ranging from 1 to 127. See USB Specification, Revision 2.0 or later,
Sections9.1.1.4 and 9.4.6.
Justification:
Reduces resume time and maintains device state on resume from S3.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Connect-0052
Device.Connectivity.UsbDevices.AlternateDriver
Target Feature: Device.Connectivity.UsbDevices
Title:
USB devices should allow the Operating System to load an alternate driver on device
Applicable OS Versions:






Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Devices must retain basic USB functionality after a driver re-enumeration occurs. For example, a
driver that redirects I/O to alternate paths requires re-enumeration. A common way to perform USB
redirection is to issue an IOCTL_USB_CYCLE_PORT report on the target driver to trigger reenumeration of the physical device.
Justification:
When a virtual PC needs to connect to a physical USB device, the virtual PC loads a driver that is
called an "Alternate Driver". This event triggers re-enumeration. After re-enumeration occurs many
times, the physical device can no longer function. This requirement attempts to address this
problem.
Exceptions:
Page 200 of 907
This Requirement does NOT apply to Systems that Support Connected Standby
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Not Specified
Connect-0123: Does NOT apply to SOC Implementations
Device.Connectivity.UsbDevices.CompliesWithChap9
Target Feature: Device.Connectivity.UsbDevices
Title:
USB device complies with implementation details from the USB specification
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Any devices that are connected externally or internally to a USB port must be tested as USB devices.
That is, the devices provide the capabilities of one or more functions, a hub to the host, or both, as
described in USB Specification, Revision 2.0 or later, Chapters 9 and 11. Therefore, these
requirements apply to any device that is connected to a USB port: the USB specification and any
related USB device class specification, and the Windows Hardware Certification program
requirements for USB and the related device class.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Connect-0044
Page 201 of 907
Device.Connectivity.UsbDevices.DebugCompliesWithDebugSpec
Target Feature: Device.Connectivity.UsbDevices
Title:
USB debug device complies with USB2 Debug Device Specification
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Description:
USB devices designed for debug purposes over USB 2.0 must comply with USB2 Debug Device
Functional Specification, which includes details on the device framework, commands, and additional
operational requirements.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
CONNECT-0063
Device.Connectivity.UsbDevices.DebugCompliesWithDebugSpecUSB3
Target Feature: Device.Connectivity.UsbDevices
Title:
USB 3.0 debug cables comply with USB 3.0 specification
Applicable OS Versions:







Windows Server 2012
Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Page 202 of 907
Description:
USB cables designed for USB 3.0 host debugging must comply with the Universal Serial Bus 3.0
Specification, section 5.5.2.
Exceptions:
Not Specified
Business Justification:
To provide a reliable debugging experience.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
June 30, 2012
CONNECT-8063
Device.Connectivity.UsbDevices.DeviceAttachLessThan100ms
Target Feature: Device.Connectivity.UsbDevices
Title:
USB device that signals device-attach responds after at least 100 ms
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
When the USB device has signaled device-attach, the operating system provides a debounce interval
of 100ms. The device must respond at the end of that interval. This is described in USB Specification,
Revision2.0, Section 7.1.7.3. This requirement ensures that the electrical and mechanical
connections are stable before the attached device is reset.
Justification:
Some devices after a few iterations of going into s3 fail to show up on the device tree
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Page 203 of 907
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Connect-0104
Device.Connectivity.UsbDevices.EsdRecovery
Target Feature: Device.Connectivity.UsbDevices
Title:
USB device does not trigger ESD recovery on USB hubs
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Devices must not trigger ESD recovery when connected to a USB hub. Triggering ESD causes fail-safe
code to be executed in the hub driver and negatively affects the functionality of other devices
attached to the hub. This is described in USB Specification, Revision 2.0 or later, Sections 7.2.3.
Justification:
Triggering ESD causes fail safe code to be executed in the hub driver and will impact the functionality
of other devices attached to the hub.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Connect-0053
Device.Connectivity.UsbDevices.FunctionSuspendSelectiveSuspend
Target Feature: Device.Connectivity.UsbDevices
Title:
USB 3.0 devices correctly implement Function Suspend and Selective Suspend
Page 204 of 907
Applicable OS Versions:







Windows Server 2012
Windows 8 Client x64
Windows 8 Client x86
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Description:
Any function that is in a suspend state before a device is selectively suspended remains in the
function suspend state when the device is resumed from the selective suspend state. Devices must
not place all device functions in the function suspend state. Devices must report the selective
suspend state.
SuperSpeed devices ignore the DEVICE_REMOTE_WAKEUP feature selector.
When all functions of a SuperSpeed device are in the function suspend state and the
PORT_U2_TIMEOUT field is programmed to 0xFF, the device initiates U2 after 10 milliseconds (ms)
of link inactivity. For more information, see section 9.2 of the USB 3.0 Specification.
Devices that are resumed from the selective suspend state retain a minimum set of device state
information as specified in section 9.2.5.2 of the USB 3.0 Specification.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios. Function suspend is a new feature in USB
3.0. This requirement helps to clear up some of the confusion around how this feature will function.
Because this new feature is very important for power savings, we plan more thorough testing in the
Windows Hardware Certification Kit (HCK).
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
12/1/2010
CONNECT-0131
Device.Connectivity.UsbDevices.InstallViaUniquePnpIdentifier
Target Feature: Device.Connectivity.UsbDevices
Title: Third-party drivers for USB devices install through a unique PnP identifier match or a
compatible ID match when allowed
Applicable OS Versions:
Page 205 of 907







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
All Universal Serial Bus (USB) devices must have VID and PID sections in the PnP Device ID string.
Third-party USB function drivers must not install through a compatible ID match, unless specifically
permitted for a particular technology. The list of devices drivers that can be installed using a
compatible ID match (Class, SubClass, Prot) is the following:
WirelessUSB Cable Association Driver (CLASS_EF&SUBCLASS_03&PROT_01)
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2008
CONNECT-0082
Device.Connectivity.UsbDevices.IsochronousDeviceAndDriver
Target Feature: Device.Connectivity.UsbDevices
Title:
Isochronous USB device and driver requirement
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
1. ISO USB device and driver provide multiple alternate settings to support maximum flexibility of
hardware interface options:
Page 206 of 907
If any alternate setting consumes isochronous bandwidth, devices and drivers must provide multiple
alternate settings for each interface.
2. USB device and driver do not use isochronous bandwidth for alternate setting 0:
Devices and drivers must not use isochronous bandwidth for alternate setting 0. Devices must
consume bandwidth only when they are in use.
3.USB isochronous full-speed or high-speed device that uses more than 50 percent of USB bus
bandwidth provides alternate settings:
If a USB isochronous full-speed or high-speed device uses more than 50 percent of USB bus
bandwidth, it must provide alternative settings that allow the device to switch to a setting that uses
less than 50 percent of the bus bandwidth and operate as a device of that particular class (ex. if it is
a camera then it must continue to stream video), even though it may be in a lower quality mode.
Devices with attached host controllers are exempt from this requirement.
4. USB device with interfaces containing isochronous endpoints has at least one alternative
interface for low bandwidth scenarios:
USB device must provide at least one alternative interface for low bandwidth as described in USB
Specification, Revision 2.0 or later, Section 9.6.5.
Design Notes:
See section 9.6.5 in the Universal Serial Bus Specification, Revision 2.0.
If two or more devices are connected that use more than 50 percent of the bus bandwidth and do
not provide alternate settings, only one of the devices works at a time.
See USB Specification, Revision 2.0or later, Sections 5.6 and 5.7.
Justification: Alternate settings are at the interface descriptor level, specifying different amounts of
bandwidth a device requests the host controller to reserve for it. Imagine a conference camera with
settings like 50% ,30%, 20%. It starts by asking the host if 50% is available and whether the host can
reserve it. If not, then the host chooses the next alternate setting till they have a mutual agreement.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
CONNECT-0048
Page 207 of 907
Device.Connectivity.UsbDevices.MsOsContainerId
Target Feature: Device.Connectivity.UsbDevices
Title:
USB devices which implement the MS OS Container ID descriptor implement it correctly
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
If a multifunction USB device implements the Microsoft® operating system ContainerID descriptor,
the device does this in the Microsoft operating system feature descriptor.
The Microsoft operating system ContainerID descriptor allows Windows® to correctly detect
multifunction devices. The descriptor provides a way for all the device nodes to appear as one
physical object in the Devices and Printers user interface (UI).
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2010
CONNECT-0120
Device.Connectivity.UsbDevices.MustBeFunctionalAfterResume
Target Feature: Device.Connectivity.UsbDevices
Title:
Attached USB devices must be functional after resuming from system power states.
Applicable OS Versions:





Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Page 208 of 907


Windows Server 2012
Windows RT
Description:
Devices not entering a timely ready state will be marked code 10 or other by the system. Certain
classes of devices do not properly respond to system events, such as resume, and require upper
driver or expect precise boot timings in order to function properly. Device also must be able to
function without a port reset upon resume but also remain functional if a reset does occur.
A device must be in the attached state (USB Specification 2.0, section 9.1) to be configured and
device must be in the configured state before its functions maybe used (aka, the device is useable).
This is per the USB spec 2.0 as in section 9.1 and 9.2.6.2. “After a port is reset or resumed, the USB
System Software is expected to provide a “recovery” interval of 10 ms before the device attached to
the port is expected to respond to data transfers. The device may ignore any data transfers during
the recovery interval.”
Clarification:
Devices must be functional after resuming from system power states whether a port reset is issued
or not.
Justification:
Devices not entering a timely ready state will be marked code 10 or other by system. Certain classes
of devices do not have sufficient resources to handle system events, such as resume, and require
upper driver or expect precise boot timings in order to function properly.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2009
Connect-0109
Device.Connectivity.UsbDevices.MustEnumerateOnEhciAndXhci
Target Feature: Device.Connectivity.UsbDevices
Title: All USB devices must enumerate and operate on EHCI and xHCI controllers as well as
downstream of full speed, high speed, and SuperSpeed USB hubs
Applicable OS Versions:

Windows 8 Client x86
Page 209 of 907






Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Windows Server 2012
Description:
All USB devices must enumerate and operate as a user would expect on Enhanced Host Controller
Interface (EHCI) controllers and Extensible Host Controller Interface (xHCI) controllers. All USB
devices must also operate as a user would expect downstream of a full-speed, high-speed or
SuperSpeed hub.
The following scenarios will be covered in this requirement:

EHCI + device under test (DUT)

EHCI + high-speed hub + full-speed hub + DUT

EHCI + high-speed hub + DUT

xHCI + DUT

xHCI + SuperSpeed hub + DUT

xHCI + High speed hub + DUT
When selecting a system with xHCI controllers for testing this requirement, note that some of these
hubs may already be integrated into the controller chipset or embedded into the system that is
under testing. External physical ports must be checked for their exact routing to the xHCI controller
to test the correct scenario.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
Connect-0139
Device.Connectivity.UsbDevices.MustNotDisconnectDuringSuspend
Target Feature: Device.Connectivity.UsbDevices
Page 210 of 907
Title: USB devices must not disconnect from the upstream port while going to or resuming from
selective suspend.
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
USB devices must not disconnect from the upstream port during the selective suspend process.
To test this requirement, we will cause the device to go into the selective suspend state and then
resume the device. During this process, we will observe the port status bits of the upstream port and
verify that the device does not disconnect during this time. We will repeat this process several times.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
CONNECT-0142
Device.Connectivity.UsbDevices.MustResumeWithoutForcedReset
Target Feature: Device.Connectivity.UsbDevices
Title: All USB devices work properly upon resume from sleep, hibernation or restart without a
forced reset of the USB host controller
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows 7 Client x86
Windows 7 Client x64
Windows RT
Windows Server 2008 R2 x64
Page 211 of 907
Description:
All USB devices work properly upon resume from sleep, hibernation or restart without a forced reset
of the USB host controller
Design Notes:
Registry key ForceHCResetOnResume documented at the KB below is not needed for devices to
function properly upon resume in Windows 7.
http://support.microsoft.com/kb/928631
Note that a known set of currently existing devices do require a forced reset upon resume, these
devices should be covered in a list kept by the OS which will reset these devices upon resume. The
goal of this requirement is to ensure that this list of devices which need a reset to appear after
resume does not grow and that devices can properly handle sleep state transitions without being
reset.
A reset of the entire USB Host Controller results in significantly increased time that it takes for all
USB devices to become available after system resume since there could be only one device at
address 0 at a time, this enumeration has to be serialized for all USB devices on the bus. We have
also seen that resetting the host controller can lead to an illegal SE1 signal state on some host
controllers, which in turn can cause some USB devices to hang or drop off the bus. Moreover,
devices cannot maintain any private state across sleep resume as that state will be lost on reset.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
6/1/2010
Comments:
Connect-0126: Removed Host controller from requirement title and body. created a
new requirement specifically for the Host Controller.
Device.Connectivity.UsbDevices.MustSignalAttachWithin500ms
Target Feature: Device.Connectivity.UsbDevices
Title:
Devices must signal attach within 500 ms after the system resumes.
Applicable OS Versions:




Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Page 212 of 907



Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
After the system resumes from sleep, the hub driver will fetch the status of the port to which the
device is connected. If the device does not show as connected, the hub driver will wait 500
milliseconds (ms) before the hub driver queries the port status again. If the device appears as
connected within that time, the hub will not need to re-enumerate the device for Plug and Play,
which will result in a better user experience. This requirement already exists for bus-powered
devices in the USB specification. The requirement will now also apply to self-powered devices.
Justification:
Some devices take a long time to be discoverable by the operating system. This requirement does
not try to enforce the device being back from sleep from a functional point of view. A certain
amount of time is necessary to know if the device remains on the bus.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2011
Connect-0140
Device.Connectivity.UsbDevices.MustSupportSuspend
Target Feature: Device.Connectivity.UsbDevices
Title:
All Bus powered USB devices support USB Suspend after periods of inactivity
Applicable OS Versions:







Windows Server 2012
Windows 8 Client x64
Windows 8 Client x86
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Description:
Page 213 of 907
Bus powered devices can go into the Suspend state from any powered state. They begin the
transition to the Suspend state after they see a constant Idle state on their upstream facing bus lines
for more than 3.0 ms. The device must actually be suspended, drawing only suspend current from
the bus after no more than 10 ms of bus inactivity on all its ports, as described in the USB
Specification, Revision 2.0, Sections 7.1.7.6, 6 9.1.1.6 and 9.2.6.2
Justification:
Existing requirement - required based on industry foundation, standards
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
CONNECT-0094
Device.Connectivity.UsbDevices.PeripheralOperatesInFunctionMode
Target Feature: Device.Connectivity.UsbDevices
Title:
USB peripheral operates in function mode when connected to a computer host controller
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
When connected to a system’s host controller, a USB peripheral must operate as a USB function
only. A function is a USB device that provides additional capabilities to the host controller. This is
described in USB Specification, Revision 2.0 or later, Section 4
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios according to the USB Specification.
Page 214 of 907
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Connect-0056
Device.Connectivity.UsbDevices.PortMove500ms
Target Feature: Device.Connectivity.UsbDevices
Title: If the software enables the SuperSpeed and then resets the 2.0 port, device should correctly
move over
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
In a USB 3.0 hub, two downstream ports, a USB 2.0 port and a SuperSpeed port, share the same
connector. The USB 3.0 Specification says that if a device is currently connected on the USB 2.0 port,
the device should try to reconnect at the SuperSpeed port when software resets the port.
This situation has two relevant time intervals: The time that is necessary for the device to disconnect
from the USB 2.0 port, and the total time that is necessary for the device to reconnect on the
SuperSpeed port.
The time between the time that the reset starts and the time that the device starts RxDetect on USB
3.0 can be up to 1 millisecond (ms). RxDetect can take up to 16 ms in the worst case. The time
between the time that RxDetect succeeds and the time that RxDetect signals a disconnect on USB
2.0 can be up to 1 ms. Therefore, the total time from the start of the reset to disconnect signaling
can be up to 18 ms. Accounting for the polling interval of the hub, the total comes to 50 ms.
Next, the time between the time that RxDetect succeeds and the time that the device enters U0 can
be up to 300 ms. With an extra margin for hub control transfers and other delays, the total comes to
500 ms.
To test this requirement, we will first disable the SuperSpeed termination, then re-enable
SuperSpeed termination after some time, and then reset the USB 2.0 port. After these actions occur,
the software will wait for a port status change notification on the USB 2.0 port and the SuperSpeed
port. We will verify that the USB 2.0 port shows a status change that indicates that the device
Page 215 of 907
disconnected from the USB 2.0 port and that the SuperSpeed port then shows a status change that
indicates that the device connected on the SuperSpeed port.
For more information, see Figure 9-1 in section 9.1.1 of the USB 3.0 Specification.
Exceptions:
This Requirement does NOT apply to Systems that Support Connected Standby
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
6/1/2011
Comments:
Connect-0135: does NOT apply to SOC Implementations
Device.Connectivity.UsbDevices.RespondAllStringRequests
Target Feature: Device.Connectivity.UsbDevices
Title:
USB device responds to all string requests that the host sends to indexes
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
USB devices must respond accordingly to string requests that the host sends. Devices must stall if no
string is stored at the index being queried or if a request error exists. Devices must not reset
themselves or stop functioning. This is described in USB Specification, Revision 2.0 or later, Section
9.6.
Exceptions:
Not Specified
Business Justification:
Page 216 of 907
To support USB connectivity functionality and scenarios according to the USB Specification and
prevent abnormal behavior due discrepancies between the indexes being queried and the presence
of information stored.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Connect-0054
Device.Connectivity.UsbDevices.ResponsesLimitedByWlengthField
Target Feature: Device.Connectivity.UsbDevices
Title:
USB device responses to host requests are limited in size by the wLength field
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
All USB device requests contain a wLength field. Responses by the USB device to host requests must
be of size <= wLength field of the device request as defined in the USB Specification, Revision1.1 or
later, Section 9.3.5.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios according to the USB Spec and prevent
potential buffer over runs and security issues if the devices respond with more data than expected
or illegal data.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Connect-0059
Device.Connectivity.UsbDevices.SerialNumbers
Target Feature: Device.Connectivity.UsbDevices
Page 217 of 907
Title: USB serial numbers are implemented for specific device classes and are unique across
specific device models
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
USB serial numbers must be implemented for the following device classes:
Bluetooth (Class Code 0xE0, SubClass 0x01, Protocol 0x01)
Communication device class (Class Code 0x02)
Mass storage (Class Code 0x08)
Scanning/imaging (Class Code 0x06)
Printing (Class Code 0x07)
Host Wire Adapters and Device Wire Adapters (Class Code 0xE0, subclass 02)
USB serial numbers are optional for all other device classes. Additionally, if serial numbers are
implemented on the devices model, all devices of the same model must have unique serial numbers.
Design Notes:
For more information on USB device class details, see "Defined 1.0 Class Codes" at
http://go.microsoft.com/fwlink/?LinkId=40497.
For more information on implementation of serial numbers, see USB Specification, Revision 2.0 or
later, Section 9.6.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios. Having duplicate serial numbers detriments
the end user experience -- serial numbers should identify devices uniquely. If two devices with the
same serial number are connected to a system, Windows will treat one of them as if it didn’t have a
serial number. Properly-implemented serial numbers improve the Windows user experience as
described below.
Justification for requiring serial numbers for certain device classes:
Page 218 of 907
We don’t mandate serial numbers everywhere because of cost. Serial numbers improve the user
experience with any USB device in general with Windows, because they allow Windows to keep
track of devices no matter what USB port they are plugged into. When the user plugs in a device
without a serial number to a new USB port, the device is setup as if it has never been seen before (a
process that takes several seconds and notifies the user). Devices with serial numbers are
enumerated faster, if the same device has been connected to the system on a different port before.
Another benefit of being able to keep track of devices via serial number is that per-device data, such
as user-visible settings and internal driver data, can stick to the device even when the device is
plugged into a new port. The classes called out in this requirement have device parameters that
shouldn’t change when moved from port to port. Hence the devices must have a serial number.
Without serial numbers the user would see the following behavior when plugging a device into a
new port: Bluetooth radios would lose all LINKS with their devices and all devices downstream of
Bluetooth would need to be re-detected and re-bonded. Modems would lose their connectoids.
Mass storage devices would lose their drive letter and performance settings. Printers would lose
their print queue characteristics and connections, leaving a dangling orphaned device in printer
control panel. Devices that don’t generally move around (like keyboards and mice) don’t need the
extra expense of serial numbers, so they aren’t on the list.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Connect-0045
Device.Connectivity.UsbDevices.SerialNumbersUseValidCharacters
Target Feature: Device.Connectivity.UsbDevices
Title:
USB device that implements manufacturer-defined serial numbers contains valid characters
Applicable OS Versions:







Windows Server 2012
Windows 8 Client x64
Windows 8 Client x86
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Description:
A USB serial number must be a string that contains a manufacturer-determined ID composed of valid
characters. Valid characters are defined in the Windows Driver Kit, "USB_DEVICE_DESCRIPTOR."
Justification:
Page 219 of 907
Devices with invalid serial numbers force drivers to remove these invalid characters when reporting
the info to PNP. Doing so may cause two devices with different serial numbers (the numbers
different via an invalid char) to be reported to PNP as having the same serial number.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
CONNECT-0062
Device.Connectivity.UsbDevices.SuperSpeedOnConnectViaUsb3Port
Target Feature: Device.Connectivity.UsbDevices
Title: If upstream SuperSpeed termination is on, devices must always connect on the USB 3.0 port
and never connect on the USB 2.0 port
Applicable OS Versions:







Windows Server 2012
Windows 8 Client x64
Windows 8 Client x86
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows RT
Description:
In a USB 3.0 hub, two downstream ports, a USB 2.0 port and a SuperSpeed port, share the same
connector. When a SuperSpeed (that is, non-hub) device is plugged into such a connector, the device
must always connect on the SuperSpeed port. The device must never connect on the USB 2.0 port.
To test this requirement, the software will verify that the USB 3.0 port status bits show a connected
device and that the USB 2.0 port status bits do not show a connected device.
For a definition of “connect” , see section 2 of the USB 3.0 Specification under connected.
Exceptions:
This requirement does NOT apply to Systems that Support Connected Standby
Business Justification:
Page 220 of 907
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
CONNECT-0141: does NOT apply to SOC Implementations
Device.Connectivity.UsbDevices.TestedUsingMicrosoftUsbStack
Target Feature: Device.Connectivity.UsbDevices
Title:
USB Devices must be tested with Microsoft's xHCI Stack installed
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
All USB Devices (Low, Full, High and Super Speed devices) must be tested with Microsoft’s Extensible
Host Controller Interface (xHCI) Stack installed and enabled on a Windows system.
Note: During USB-IF self-testing a specific USB Test Stack is installed for testing purposes, this is
expected and acceptable.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
New
Device.Connectivity.UsbDevices.Usb3CompatibleWithDownLevel
Target Feature: Device.Connectivity.UsbDevices
Title:
USB 3.0 devices are backwards compatible with down level controllers and hubs
Applicable OS Versions:

Windows 7 Client x86
Page 221 of 907






Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
USB 3.0 devices both enumerate and function on USB 2.0 controllers. USB 3.0 devices also need to
enumerate and function when USB 3.0 devices are connected to a full-speed hub or to a high-speed
hub, according to section 5.3.1.1 of the USB 2.0 specification. “Function” means to operate as a user
would expect a device of that class to operate.
Design Notes:
USB 3.0 devices must be able to do the following:

Reset successfully at high and full speeds.

Respond successfully to standard requests at high and full speeds for device and
configuration descriptors. Standard requests are set_address, set_configuration, and
get_descriptor.

Return appropriate information.
USB 3.0 devices must also be able to function at a minimum level, although USB 3.0 devices will not
operate at super speed. For example, a USB 3.0 mass storage device must be able to transfer files at
full speed mode as well as at super speed mode. Although data transfer is much slower at the lower
speed, data transfer is still possible.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2010
CONNECT-0130
Device.Connectivity.UsbDevices.UsbifCertification
Target Feature: Device.Connectivity.UsbDevices
Title:
USB IF Tests are passing or device is USB IF certified
Applicable OS Versions:
Page 222 of 907







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Effective June 1, 2011, USB devices must pass USB Implementers Forum (IF) tests or be USB-IF
certified.
See white paper on Windows Logo Kit USB-IF Testing
at http://www.microsoft.com/whdc/connect/usb/wlk-usb-if-testing.mspx
Justification:
This is an existing requirement that is based on industry specifications.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
Connect-0093
Device.Connectivity.UsbDevices.UseUsbClassOnlyForControllerOrHub
Target Feature: Device.Connectivity.UsbDevices
Title: Third-party INF files include the class “USB” only if the device is a USB host controller, a root,
or an external hub
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Page 223 of 907
Description:
Class USB is often used incorrectly for devices that do not have a predefined class. For example, a
USB mouse uses class HID, whereas a USB smartcard uses class smartcard reader. Class USB is
reserved for host controllers and root or external USB hubs. If the vendor has a device that has no
Windows-defined class but uses USB as the bus, it must define its own class or class GUID. The setup
class associated with the type of USB device, not with the bus type, must be used. The setup class
"USB" (ClassGuid = {36fc9e60-c465-11cf-8056-444553540000}) is reserved for USB host controllers
and root or external USB hubs. It must not be used for other device categories.
Design Notes:
Microsoft provides system-defined setup classes for most device types. System-defined setup class
GUIDs are defined in the Windows Driver Kit, "Devguid.h."
If you choose the wrong class, the device appears in an incorrect location in Device Manager and in
the Windows Vista UI. Using this class incorrectly may cause the device driver to fail hardware
compatibility testing.
For a list of Windows class GUIDs, see the Windows Driver Kit, "System-Supplied Device Setup
Classes" at http://msdn.microsoft.com/en-us/library/ff553419(VS.85).aspx.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios. Better end user experience in UI and device
manager. Incorrect co-installers aren't accidentally run on this device.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
CONNECT-0058
Device.Connectivity.UsbDevices.WirelessUsbObtainsWusbLogoFromUsbif
Target Feature: Device.Connectivity.UsbDevices
Title:
Wireless USB device or host obtains Certified Wireless USB logo from the USB-IF
Applicable OS Versions:






Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Page 224 of 907

Windows RT
Description:
Description:
All Wireless USB devices must get a Certified Wireless USB Logo from the USB-IF.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2009
CONNECT-0105
Device.Connectivity.UsbDevices.WirelessUsbWiMediaAlliace
Target Feature: Device.Connectivity.UsbDevices
Title:
Certified Wireless USB device or host passes all required WiMedia Alliance compliance tests.
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Wireless USB device must pass WiMedia Alliance radio compliance tests.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
6/1/2009
Page 225 of 907
Comments:
CONNECT-0081
Device.Connectivity.UsbHub
Description:
Requirements that apply only to USB Hubs
Related Requirements:









Device.Connectivity.UsbHub.CompliesWithChap11
Device.Connectivity.UsbHub.IdentifyNumOfUserAccessiblePorts
Device.Connectivity.UsbHub.ImplementSuperSpeedDescriptors
Device.Connectivity.UsbHub.MapPortsPerUsb3Specification
Device.Connectivity.UsbHub.ProvideStandardInterfacesToHostPeripherals
Device.Connectivity.UsbHub.SuperSpeedRemainsOnAfterPortReset
Device.Connectivity.UsbHub.SupportSuspend
Device.Connectivity.UsbHub.Usb3HubCompliesWithUsb3Spec
Device.Connectivity.UsbHub.Usb3ReportPortStatusBitsCorrectly
Device.Connectivity.UsbHub.CompliesWithChap11
Target Feature: Device.Connectivity.UsbHub
Title:
USB hub that implements USB functionality complies with the related specification
Applicable OS Versions:









Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
USB hubs that fit into one of the USB device class definitions must comply with the appropriate USB
specification as follows:
USB 1.1, Revision1.1
USB 2.0, Revision2.0
Exceptions:
Not Specified
Page 226 of 907
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
Connect-0049
Device.Connectivity.UsbHub.IdentifyNumOfUserAccessiblePorts
Target Feature: Device.Connectivity.UsbHub
Title:
USB hub correctly identifies and reports the number of ports that the user can access
Applicable OS Versions:







Windows 7 Client x86
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
The USB hub must include details in its hub descriptor that provide the operating system with an
accurate count of the number of downstream-facing ports that the hub supports and that are
exposed to the user. See USB Specification, Revision 2.0, Section11.23,and USB 3.0 Specification,
Section 10.14. Root hubs are exempt from this requirement.
Exceptions:
Does not apply to Root Hubs
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
6/1/2006
Comments:
Connect-0046: Updated references to USB specifications
Page 227 of 907
Device.Connectivity.UsbHub.ImplementSuperSpeedDescriptors
Target Feature: Device.Connectivity.UsbHub
Title: USB 3.0 hubs must properly implement the SuperSpeed hub descriptor, the standard
SuperSpeed descriptors, the USB 2.0 ports, and USB 3.0 hubs report version 2.1.
Applicable OS Versions:









Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
As described in section 10.0 of the USB 3.0 Specification, a USB 3.0 hub incorporates a USB 2.0 hub
and a SuperSpeed hub. All exposed downstream ports on a USB 3.0 hub must support both
SuperSpeed and USB 2.0 connections.
For more information on USB 3.0 devices that operate at speeds other than SuperSpeed, see section
9.2.6.6 of the USB 3.0 Specification.
When a USB 3.0 hub is operating in SuperSpeed mode, the hub must correctly implement the
descriptors that are described in Section 10.13 of the USB 3.0 Specification in addition to the
standard USB descriptors.
As described in section 10.13.1 of the USB 3.0 Specification, the hub must support the following
SuperSpeed descriptors in SuperSpeed mode:

Device descriptor

Binary Device Object Store (BOS) descriptor

USB 2.0 Extension

SuperSpeed USB Device Capability descriptor

Container ID

Configuration descriptor (SuperSpeed information)

Interface descriptor

Endpoint descriptor (for status change endpoint)

Endpoint Companion descriptor (for status change endpoint)
Page 228 of 907
The class-specific descriptors for SuperSpeed hubs that must be supported, as defined in section
10.13.2.1 in the USB 3.0 Specification, are as follows:
SuperSpeed Hub descriptor
Implementation Details
Standard USB SuperSpeed descriptors will be tested via the USB Command Verifier chapter 9 test for
USB 3.0 devices. In the Driver Test Manager (DTM), this test is the USB Device Framework Test.
Table 1. SuperSpeed Hub Descriptor Asserts
Assert Description
1
The bDescLength field of the SuperSpeed Hub descriptor has a value of 0xCh.
2
The bDescriptorType field of the SuperSpeed Hub descriptor has a value of 0x2Ah.
3a
Bits D1..D0 of the wHubCharacteristics field of the SuperSpeed Hub descriptor must be 00 if
the hub supports ganged power switching.
3b
Bits D1..D0 of the wHubCharacteristics field of the SuperSpeed Hub descriptor must be 01 if
the hub supports individual port power switching.
4a
Bit D2 of the wHubCharacteristics field of the SuperSpeed Hub descriptor must be 0 for a hub
that is not part of a compound device.
4b
Bit D2 of the wHubCharacteristics field of the SuperSpeed Hub descriptor must be 1 for a hub
that is part of a compound device.
5
Bits D4:D3 of the wHubCharacteristics field of the SuperSpeed Hub descriptor must not be 11
or 10 for a self-powered hub.
6
Bits D15…D5 of the wHubCharacteristics field of the SuperSpeed Hub descriptor are reserved
and must be 0.
7
The bPwrOn2PwrGood field of the SuperSpeed Hub descriptor must be 0 if the hub does not
support power switching.
8
The bHubHdrDecLat field of the SuperSpeed Hub descriptor must be in the range of 0x00h to
0x04h.
9
The DeviceRemovable field of the SuperSpeed Hub descriptor reports the correct nonremovable ports as non-removable.
10
The bNbrPorts field of the SuperSpeed Hub descriptor reports the correct number of ports on
the hub.
Exceptions:
Not Specified
Page 229 of 907
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
Connect-0132
Device.Connectivity.UsbHub.MapPortsPerUsb3Specification
Target Feature: Device.Connectivity.UsbHub
Title:
USB 3.0 hubs must map their ports as defined in section 10.1 of the USB 3.0 Specification
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
External USB 3.0 hubs must follow the USB3 specifications connector mapping, except when the USB
3.0 hub may have an unequal number of USB 2.0 and USB 3.0 protocol ports.
For example, the SuperSpeed part of the 3.0 Hub has ‘n’ ports and 2.0 part of the 3.0 Hub has ‘m’
ports and minimum(m,n) = ‘p’. The first p ports of the SuperSpeed part and the 2.0 part should be
mapped in order, so that port 1 of SuperSpeed hub maps to port 1 of the 2.0 hub, port 2 of the
SuperSpeed hub maps to port 2 of the 2.0 hub and so on until port number p. Each of these ‘p’ port
mappings must either have an external connector for it OR both of the ports in the mapping should
be marked as “non-removable” in their respective parent hub descriptors. Note, that if the ports in a
mapping are marked as non-removable, only one of the ports in that mapping can have a device
attached to it. The other port in that mapping should neither have any device attached to it nor a
device can be attached to it i.e. the port should remain unused.
If there are excess ports on the 2.0 part (i.e. m-p is not 0), each of those m-p ports may either be
exposed to the user OR can be marked as non-removable. If there are excess ports on the
SuperSpeed part (i.e. n-p is not 0), none of those n-p ports should be exposed to the user, all of them
should be marked as non-removable.
Exceptions:
Not Specified
Business Justification:
Page 230 of 907
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
Connect-0133
Device.Connectivity.UsbHub.ProvideStandardInterfacesToHostPeripherals
Target Feature: Device.Connectivity.UsbHub
Title:
USB hub provides standard connection interfaces to the host and USB peripherals
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
All USB hubs must have one upstream-facing port and at least one downstream-facing port. The
upstream-facing port must be a single Std-A receptacle for downstream traffic. The downstreamfacing port or ports must be one of the following:
Std-B receptacle
Mini-B receptacle
Captive Std-A cable, for upstream traffic
Micro - B receptacle
This is described in USB Specification, Revision1.1 or later, Sections 6.2 and 11.1.2. and Micro-USB
cables and connectors Revision 1.01
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Page 231 of 907
Enforcement Date:
Comments:
6/1/2006
Connect-0060
Device.Connectivity.UsbHub.SuperSpeedRemainsOnAfterPortReset
Target Feature: Device.Connectivity.UsbHub
Title: USB 3.0 hubs must not turn off SuperSpeed termination on downstream ports upon overcurrent and port reset
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
DSPORT.Powered-off must be entered only when Rx termination is not detected or downstream
Vbus is off. ClearPortFeature(PORT_POWER), Overcurrent, Upstream port reset, and
SetConfig(0)must not cause SuperSpeed termination to be removed unless Vbus is also removed. If
Vbus is removed, SuperSpeed termination must be re-enabled when Vbus is back on. If Upstream
Vbus is removed, but the hub still provides Downstream Vbus (self-powered hub), then it must turn
downstream SuperSpeed terminations back on.
For more information, see figure 10-9 in the USB 3.0 Specification.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
Connect-0136
Device.Connectivity.UsbHub.SupportSuspend
Target Feature: Device.Connectivity.UsbHub
Title: USB hubs must support suspend, and downstream devices must not drop off the bus when
the hub resumes from selective suspend
Page 232 of 907
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
USB hubs must support the selective suspend state, as stated in both the USB Specification and
other logo program requirements. After a hub is resumed from the selective suspend state, all
devices that were attached downstream of the hub, and that were not removed while the hub was
suspended, must be present.
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
Connect-0137
Device.Connectivity.UsbHub.Usb3HubCompliesWithUsb3Spec
Target Feature: Device.Connectivity.UsbHub
Title:
USB 3.0 Hubs are compliant with USB 3.0 specification.
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
USB 3.0 Hubs must be compliant with Universal Serial Bus (USB) 3.0 Specification
Page 233 of 907
USB 3.0 Hubs must :

Pass the USB-IF interoperability tests

Pass the USB 3.0 Hub compliance test suite

Pass the USB 3.0 CV test
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
Connect-8003
Device.Connectivity.UsbHub.Usb3ReportPortStatusBitsCorrectly
Target Feature: Device.Connectivity.UsbHub
Title: USB 3.0 hubs must always report the port status bits correctly as per the USB 3.0
Specification
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
In the current stack, a number of invalid port status bit combinations that the hub reports are
ignored. Any invalid combination of port status bits will be treated as an error. In particular, checks
will follow these actions:

Resetting a port

Suspending and resuming a port

System resume
A hub should not report spurious change interrupts. A hub should complete the port status interrupt
transfer without reporting changes.
Page 234 of 907
Exceptions:
Not Specified
Business Justification:
To support USB connectivity functionality and scenarios.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2011
Connect-0134
Device.Connectivity.WSD
Description:
Not Specified
Related Requirements:






Device.Connectivity.WSD.DPWS
Device.Connectivity.WSD.DPWSExtensibility
Device.Connectivity.WSD.MetadataExchange
Device.Connectivity.WSD.MetadataValid
Device.Connectivity.WSD.Schema
Device.Connectivity.WSD.WSDiscovery
Device.Connectivity.WSD.DPWS
Target Feature: Device.Connectivity.WSD
Title: Devices which use or interact with the Web Services on Devices API (WSDAPI) comply with
Device Profiles for Web Services (DPWS) specification
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2008 x64
Windows Server 2008 x86
Windows Vista Client x64
Windows Vista Client x86
Description:
Page 235 of 907
Devices which plan to use or interact with Microsoft Windows' implementation of DPWS, the Web
Services on Devices API (WSDAPI), must implement the DPWS specification themselves. (WSDAPI)
Design Notes:
DPWS Specification available at
http://go.microsoft.com/fwlink/?LinkId=109231
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
CONNECT-0114
Device.Connectivity.WSD.DPWSExtensibility
Target Feature: Device.Connectivity.WSD
Title: Devices Profile for Web Services Devices must accept messages that contain extensibility
sections, and process the messages as appropriate.
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2008 x64
Windows Server 2008 x86
Windows Vista Client x64
Windows Vista Client x86
Description:
Devices Profile for Web Services (DPWS) devices must accept messages where the XML has been
extended. If the device understands the content in the extensible section, it may process it.
Design Notes:
DPWS Specification available at
http://go.microsoft.com/fwlink/?LinkId=109231
Page 236 of 907
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
CONNECT-0119
Device.Connectivity.WSD.MetadataExchange
Target Feature: Device.Connectivity.WSD
Title:
Devices Profile for Web Services (DPWS) Devices support metadata exchange
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2008 x64
Windows Server 2008 x86
Windows Vista Client x64
Windows Vista Client x86
Description:
DPWS Devices which interact with the Web Services on Devices API (WSDAPI) must support
metadata exchange as defined in the metadata exchange specification.
Design Notes:
Metadata Exchange specification can be obtained at http://go.microsoft.com/fwlink/?LinkId=109248
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
CONNECT-0117
Page 237 of 907
Device.Connectivity.WSD.MetadataValid
Target Feature: Device.Connectivity.WSD
Title: Devices which interact with the Web Services on Devices (WSDAPI) produce metadata that
conforms to the Devices Profile for Web Services
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2008 x64
Windows Server 2008 x86
Windows Vista Client x64
Windows Vista Client x86
Description:
Devices which interact with WSDAPI must populate the Metadata as defined in the Device Profile for
Web Services Specification of February 2006.
Design Notes:
The Device Profile for Web Services Specification of February 2006 is available at
http://go.microsoft.com/fwlink/?LinkId=109231
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
CONNECT-0118
Device.Connectivity.WSD.Schema
Target Feature: Device.Connectivity.WSD
Title: A network-enabled device that implements Devices Profile for Web Services (DPWS) must
adhere to the protocol and schema.
Applicable OS Versions:

Windows 8 Client x86
Page 238 of 907









Windows 8 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2008 x64
Windows Server 2008 x86
Windows Vista Client x64
Windows Vista Client x86
Description:
A network-enabled device that implements Devices Profile for Web Services (DPWS) must adhere to
the Devices Profile for Web Services as described by the schema.
The device must also reference the namespace URI as described in The Devices Profile for Web
Service specification.
A device the implements DPWS must adhere to the Web Services Description Language (WSDL)
associated with the logo device class. The WSDL defines services as collections of network endpoints,
or ports. WSDL specification provides an XML format for documents for this purpose. Devices must
implement the WSDL version 1.1.
Design Notes:
See the Web Services Description Language (WSDL) Version 1.1 at
http://www.w3.org/TR/2001/NOTE-wsdl-20010315
See the Devices Profile for Web Services schema at
http://schemas.xmlsoap.org/ws/2006/02/devprof/devicesprofile.xsd.
See the Devices Profile for Web Service specification at
http://specs.xmlsoap.org/ws/2006/02/devprof/devicesprofile.pdf.
Additional information can be found in the Windows Rally Development Kit at
http://go.microsoft.com/fwlink/?LinkId=109368.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
CONNECT-0101
Page 239 of 907
Device.Connectivity.WSD.WSDiscovery
Target Feature: Device.Connectivity.WSD
Title: Devices Profile for Web Services (DPWS) Devices interacting with the Web Services on
Devices API (WSDAPI) implement WS-Discovery
Applicable OS Versions:










Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2008 x64
Windows Server 2008 x86
Windows Vista Client x64
Windows Vista Client x86
Description:
DPWS Devices must implement WS-Discovery to work with WSDAPI.
Design Notes:
WS-Discovery specification can be obtained at http://go.microsoft.com/fwlink/?LinkId=109247
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
CONNECT-0116
Device.DevFund.CDA
Description:
Custom Driver Access for privileged application usage.
Related Requirements:

Device.DevFund.CDA.Application
Page 240 of 907
Device.DevFund.CDA.Application
Target Feature: Device.DevFund.CDA
Title:
Custom Driver Access
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
If a device driver supports a privileged app performing Custom Driver Access, it must declare a
restricted interface.
By declaring a restricted interface, the following requirements must be met:
1. Assert that the device I/O control interfaces provided by this device driver are intended
to be accessed by a privileged app running in app container accessing hardware
functionality using CreateDeviceAccessInstance() and IDeviceIoControl() on Windows 8.
2. The restricted interface cannot be opened directly from an app container.
A device driver declares an interface is restricted by setting the DEVPKEY_DeviceInterface_Restricted
property to true on that interface.
Exceptions:
Not Specified
Business Justification:
To support new model of Custom Driver Access.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.Color
Description:
Not Specified
Related Requirements:

Device.DevFund.Color.DeviceColorProfilesInstall
Page 241 of 907
Device.DevFund.Color.DeviceColorProfilesInstall
Target Feature: Device.DevFund.Color
Title: Device that uses an ICC profile properly installs the profile and is compliant with the
appropriate profile specification
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Devices that use a vendor-supplied International Color Consortium (ICC) profile or profiles must
associate the profile or profiles with the device.
Devices that create sRGB output can associate the sRGB Color Space Profile.icm profile (that is, the
Windows default ICC profile) with the device. Devices that are sRGB-compliant are not required to
provide an ICC profile.
Note: For display monitors that are integrated into a system and are not required to support Plug
and Play for their installed LCD display, the ICC profile must be installed manually by using an
appropriate monitor information (INF) file. OEMs should install the correct configuration as part of
the operating system pre-installation process. If necessary, the INF file will be available to the user
for manual reinstallation. Mobile computers that have dual-scan supertwist nematic (DSTN) or
reflective LCD displays do not require ICC profiles.
Design Notes:
By default, Windows supports devices that create sRGB output. Devices that use an output other
than sRGB can use an INF file to install an ICC profile that is appropriate to the preferred display
resolution, as identified in the extended display identification data (EDID), at 32 bits per pixel (bpp).
For an LCD or other non-CRT display device, the profile should be based on the native display mode,
or resolution and color depth, for which the display is designed.
The ICM APIs and functionality are defined in the Microsoft Platform SDK and the Windows Driver
Kit.
Exceptions:
Not Specified
Business Justification:
This requirement ensures a consistent color and resolution experience across the devices a system
may interact with.
Page 242 of 907
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0018
Device.DevFund.DriverFramework.AllDrivers
Description:
Driver framework requirements applicable to all drivers
Related Requirements:

Device.DevFund.DriverFramework.AllDrivers.WDFLoadGroup
Device.DevFund.DriverFramework.AllDrivers.WDFLoadGroup
Target Feature: Device.DevFund.DriverFramework.AllDrivers
Title:
Only Windows Driver Framework (WDF) can use the WdfLoadGroup driver load order group
Applicable OS Versions:








Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
Only WDF (Wdf01000.sys) must use the WdfLoadGroup driver load order group.
User-Mode Driver Framework (UMDF) and Kernel-Mode Driver Framework (KMDF) drivers must not
use this driver load order group, because that prevents installation of WDF boot start drivers.
Exceptions:
Not Specified
Business Justification:
If WdfLoadGroup load order group value is used by drivers other than the Framework, it prevents
WDF boot start drivers from loading.
Scenarios:
Not Specified
Page 243 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
12/1/2010
DEVFUND-0048
Device.DevFund.DriverFramework.KMDF
Description:
Driver framework requirements for KMDF
Related Requirements:




Device.DevFund.DriverFramework.KMDF.HandleDDIFailures
Device.DevFund.DriverFramework.KMDF.Reliability
Device.DevFund.DriverFramework.KMDF.WDFProperINF
Device.DevFund.DriverFramework.KMDF.WDFRedistributables
Device.DevFund.DriverFramework.KMDF.HandleDDIFailures
Target Feature: Device.DevFund.DriverFramework.KMDF
Title: Kernel Mode Driver Framework (KMDF) drivers are designed to handle DDI failures
gracefully
Applicable OS Versions:








Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
Kernel Mode Driver Framework (KMDF) drivers must handle failure gracefully. When a device driver
interface (DDI) returns an NTSTATUS code, the driver must check the return value before the driver
proceeds.
If a failure occurs, DDI out parameters must not be used. Use of these parameters will cause drivers
to crash or stop responding. Use of these parameters will also lead to bug checks and other
unreliable behavior.
Design Notes:
Page 244 of 907
The WDFTester tool from the Windows Driver Kit (WDK) is used for fault injection on the DDIs during
Windows Hardware Certification testing. This tool resides in the following location in the WDK:
%wdk%\WDKVersionNumber\tools\wdf\wdftester
For more information about the WDFTester tool, visit the following website:
http://msdn.microsoft.com/en-us/library/ff556110.aspx
The Device Disable Enable test, the Sleep test, and the Plug and Play test from WDK will be used
according to the WDFTester tool. The DDIs that are called from the driver during these tests will be
fault injected to return unsuccessful status codes. When a DDI returns an unsuccessful status code,
out parameters of that DDI may also be assigned to NULL values. If a DDI failure occurs, out
parameters should be used according to the documented behavior.
Exceptions:
Not Specified
Business Justification:
This ensures that KMDF drivers recover from failure gracefully to improve end user experience and
system reliability.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
DEVFUND-0038
Device.DevFund.DriverFramework.KMDF.Reliability
Target Feature: Device.DevFund.DriverFramework.KMDF
Title: Kernel Mode Driver Framework (KMDF) drivers are architected to maximize reliability and
stability and do not "leak" resources such as memory and KMDF objects
Applicable OS Versions:








Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x64
Windows 8 Client x86
Windows Server 2012
Description:
Kernel-Mode Driver Framework (KMDF) drivers must use pool memory responsibly. Handles that the
drivers pass to device driver interfaces (DDIs) must conform to the pattern of the parameter. The
Page 245 of 907
state of the drivers must be consistent with the use of WDFREQUEST objects and WDFQUEUE
objects.
Event callback functions that the driver registers must adhere to interrupt request level (IRQL)
restrictions.
Design Notes:
For more information about developing drivers that meet this requirement, visit the following
websites:
http://msdn.microsoft.com/en-us/library/aa973499.aspx
http://www.microsoft.com/whdc/driver/wdf/KMDF.mspx
The following tools can be enabled to validate this requirement for all KMDF drivers:

Windows Driver Foundation (WDF) Verifier.

Handle tracking. Handle tracking will be enabled on all KMDF objects.

Enhanced Verifier for Framework 1.9 KMDF drivers. Enhanced Verifier is new for Framework
1.9. This tool can be enabled by using the EnhancedVerifierOptions registry value. To enable
Enhanced Verifier, set the following registry values for the drivers Parameters\Wdf key:
HKLM\System\CurrentControlSet\Services\\Parameters\Wdf
EnhancedVerifierOptions REG_DWORD 1
VerifierOn REG_DWORD 1
TrackHandles MULTI_SZ *

Driver Verifier. To enable Driver Verifier, use the following command:
Verifier /flags 0xfb /driver
This command will run the KMDF driver under Driver Verifier with all flags set except the Low
Resource Simulation flag. For more information about Driver Verifier, visit the following website:
http://msdn.microsoft.com/en-us/library/ff545448.aspx
In the Windows Hardware Certification Kit, the WDF Test can be run to validate this requirement.
Exceptions:
Not Specified
Business Justification:
These requirements and testing will help ensure high-quality KMDF drivers because the drivers must
conform to the Framework requirements.
Scenarios:
Not Specified
Page 246 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
DEVFUND-0037
Device.DevFund.DriverFramework.KMDF.WDFProperINF
Target Feature: Device.DevFund.DriverFramework.KMDF
Title:
Windows Driver Framework (WDF) driver INF files are properly structured
Applicable OS Versions:








Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
All information (INF) files in Windows Driver Foundation (WDF) driver packages must call WDFspecific sections and directives properly. Correctly structured INF sections help ensure that the
driver will be installed properly. However, even when a driver is installed, a poorly or wrongly
configured section can cause unpredictable problems during the operation of the driver or device.
These problems can be prevented by following the guidelines for WDF INF settings.
To meet this requirement, all WDF INF files must have the following:

INF Coinstaller section, as follows:
[DDInstall.Coinstallers]
CopyFiles=
AddReg=
If the MSU update package for WDF version 1.11 is used to install the Framework then WDF v1.11
drivers don’t use the WDF coinstaller. If the MSU update package is used then KMDF drivers don’t
reference KMDF update coinstaller wdfcoinstaller0100X.dll, and UMDF drivers don’t reference the
UMDF update coinstaller wudfupdate_0100X.dll. But UMDF drivers still need to reference the config
coinstaller wudfcoinstaller.dll, which is an inbox coinstaller and isn’t part of the driver package.
UMDF drivers must reference the inbox coinstaller as in the below example;
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
Page 247 of 907
[CoInstaller.AddReg]
HKR,CoInstallers32,0x00010000,WudfCoinstaller.dll

INF WDF Install section must be referenced as follows:
For Kernel-Mode Driver Framework (KMDF) drivers:
[DDInstall.Wdf]
KmdfService= <ServiceName>, <Kmdf_Install>
[Kmdf_Install]
KmdfLibraryVersion=
KMDF v1.11 drivers don’t use the WDF install section if the MSU package is used.
For User-Mode Driver Framework (UMDF) drivers:
[DDInstall.Wdf]
UmdfService=<ServiceName>,<Umdf_Install>
UmdfServiceOrder=
UmdfDispatcher [Only for USB Drivers and Drivers with file handle I/O targets]=
UmdfImpersonationLevel[optional]=
[Umdf_Install]
UmdfLibraryVersion=
DriverCLSID=
ServiceBinary=
UMDF v1.11 drivers must still use the WDF install section if the MSU package is used; this section is
needed by the inbox UMDF coinstaller.

All UMDF driver INF files must have a WUDFRD service installation section for OSes
downlevel to Windows 8, as follows:
[WUDFRD_ServiceInstall]
DisplayName = "Windows Driver Foundation - User-mode Driver Framework Reflector"
ServiceType = 1
StartType = 3
ErrorControl = 1
Page 248 of 907
ServiceBinary = %12%\WUDFRd.sys
LoadOrderGroup = Base
For Win8 UMDF drivers can use a unique service instead of WudfRd. In order to accomplish this
drivers need to abide by the following rules;
1. Change the AddService directive to a unique value.
2. Change the services DisplayName to a unique value.
3. Add StartName=\Driver\WudfRd directive to the service entry.
4. Add ServiceBinary= %12%\WUDFRd.sys directive to the service entry.
Below is an example UMDF driver using the unique service;
[Echo_Install.NT.Services]
AddService=WudfEchoDriver,0x00000002 WUDFEchoDriver_ServiceInstall,
[WUDFEchoDriver_ServiceInstall]
DisplayName = %WudfEchoDriverDisplayName%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WUDFRd.sys
LoadOrderGroup = Base
StartName = \Driver\WudfRd
UMDF drivers can’t use a unique service for OSes downlevel to Windows 8. If a UMDF driver wants
to use a unique service for Win8 but still needs to work for downlevel OSes then this driver should
use OS specific sections in their INF. The below example demonstrates an INF using OS specific install
sections;
[Manufacturer]
%MSFT% = Microsoft,NTx86.6.0,NTx86.6.2
[Microsoft.NTx86.6.0]
%Sensors.DeviceDesc% = Sensors_Install_VistaWin7,HID_DEVICE_UP:0020_U:0001
[Microsoft.NTx86.6.2]
Page 249 of 907
%Sensors.DeviceDesc% = Sensors_Install_Win8,HID_DEVICE_UP:0020_U:0001
[Sensors_Install_VistaWin7]
--- Install the device this way on Vista/Win7 --[Sensors_Install_Win8]
--- Install the device in a different way on Win8 --
All WDF drivers that use a WinUSB driver must have the following service installation
settings:
[WinUsb_ServiceInstall]
DisplayName = "WinUSB Driver"
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys

Service names, hardware IDs (HWIDs), display names, and UMDF class identifiers (CLSIDs)
cannot be copy-pasted from WDF samples.
Design Notes:
For more information about WDF-specific INF settings, visit the following websites:
http://www.microsoft.com/whdc/driver/wdf/wdfbook.mspx
http://msdn.microsoft.com/en-us/library/ff560526.aspx
http://msdn.microsoft.com/en-us/library/ff560526.aspx
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure good quality of driver setup files for WDF drivers and improves the
compatibility and reliability of certified drivers.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
DEVFUND-0040
Page 250 of 907
Device.DevFund.DriverFramework.KMDF.WDFRedistributables
Target Feature: Device.DevFund.DriverFramework.KMDF
Title: Windows Driver Framework (WDF) drivers are packaged to contain the RTM free versions of
redistributables
Applicable OS Versions:








Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
All Windows Driver Framework (WDF) drivers that are submitted for a logo or signature through the
Windows Logo Program for Hardware must meet the following guidelines for packaging
redistributables, or co-installers:


All WDF drivers, for all versions of the WDF, for all operating systems can be submitted for a
logo or signature.
Redistributables that are included in the driver package must be the release to
manufacturing (RTM) fre version of the redistributables. Some WDF version 1.7 coinstallers
that were available on the Microsoft Connect website caused serious installation problems.
Microsoft has removed these coinstallers from Connect and replaced them with fixed
coinstallers. The problematic WDF coinstallers were version 1.7.6001.0. The fixed
coinstallers are version 1.7.6001.18000. For logo submissions, drivers should use the version
1.7.6001.18000 co-installers.
Kernel-Mode Driver Framework (KMDF) has coinstallers for versions 1.0, 1.1, 1.5, 1.7, 1.9 and 1.11.
You can use all of these coinstallers for certification submissions, provided that you use the RTM fre
versions.
User-Mode Driver Framework (UMDF) has coinstallers for versions 1.5, 1.7, 1.9 and 1.11. You can
use all of these coinstallers in your driver package, provided that you use the RTM fre versions.
WDF version 1.11 coinstallers that are released via Microsoft Connect have the most enhanced
version of the framework. We advise partners to use the latest version of the framework to develop
and distribute WDF drivers.
Design Notes:
WDF version 1.11 drivers can install the frameworks using an MSU update package instead of using
the 1.11 coinstallers. If WDF version 1.11 drivers use the MSU install package then KMDF drivers
don't use a co-installer, but WDF version 1.11 UMDF drivers still reference the inbox co-installer
Page 251 of 907
named WudfCoinstaller.dll. WudfCoinstaller.dll is inbox to Windows 8, and UMDF drivers aren't
packaged with it, only the INF file should reference this co-installer.
WDF 1.11 is inbox to Windows 8, so before Windows 8 RTM WDF 1.11 drivers can be logo'ed for
Windows 8 if the driver installs without referring to the 1.11 coinstaller from its INF file. But UMDF
driver must still reference the inbox coinstaller wudfcoinstaller.dll, for more information regarding
WDF driver installation without a coinstaller, see
http://blogs.msdn.com/b/iliast/archive/2009/08/13/wdf-logo-requirements-regardingcoinstallers.aspx.
The WDF 1.11 coinstallers and the MSU package are distributed via Microsoft Connect.
Partners who want to have driver packages signed for down-level operating systems prior to WDF
1.11 RTM should use the WDF 1.9 RTM co-installers.
For more information about WDF driver installation, visit the following website:
http://msdn.microsoft.com/en-us/library/ff544213.aspx
Exceptions:
Not Specified
Business Justification:
WDF drivers must be packaged with the correct versions of redistributables in order to function on
user's systems.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
6/1/2009
Comments:
DEVFUND-0039
Device.DevFund.DriverFramework.UMDF
Description:
Driver framework requirements for UMDF
Related Requirements:



Device.DevFund.DriverFramework.UMDF.Reliability
Device.DevFund.DriverFramework.UMDF.WDFProperINF
Device.DevFund.DriverFramework.UMDF.WDFRedistributables
Page 252 of 907
Device.DevFund.DriverFramework.UMDF.Reliability
Target Feature: Device.DevFund.DriverFramework.UMDF
Title: User Mode Driver Framework (UMDF) drivers must be secure, stable, reliable and not have
application compatibility issues.
Applicable OS Versions:








Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
To help ensure that all User-Mode Driver Framework (UMDF) drivers meet security standards, are
stable and reliable, and do not have application compatibility issues, drivers must not have any
object leaks.
Object leaks can be diagnosed by enabling object tracking. If a memory leak occurs, set the
Reference Count Tracking setting to On. This setting logs the history for add of reference and release
of reference counts.
These features can be set to On by using the following registry values:
HKLM\Software\Microsoft\WindowsNT\CurrentVersion\WUDF\Services\{193a1820-d9ac-49978c55-be817523f6aa}
TrackObjects REG_DWORD 1
TrackRefCounts REG_DWORD 1
UMDF drivers must also meet the following requirements:

The drivers must not attempt to use invalid handles.

The drivers must use critical sections and file locks properly. The primary purpose of the
locks test is to help ensure that the application properly uses critical sections.

The drivers must not cause heap memory corruption.

The drivers must correctly use virtual address space manipulation functions, such as
VirtualAlloc, VirtualFree, and MapViewOfFile.

The drivers must not hide access violations by using structured exception handling.
Page 253 of 907

The drivers must correctly use thread local storage functions.

The drivers must use COM correctly.
Partners can verify that the drivers meet these requirement by enabling Microsoft Application
Verifier's handles, locks, heaps, memory, exceptions, and Transport Layer Security (TLS) settings for
the UMDF host process (that is, WUDFHost.exe) during driver development and testing.
For more information, see the Developing Drivers with the Windows Driver Foundation book at the
following website:
http://www.microsoft.com/whdc/driver/wdf/wdfbook.mspx
Design Notes:
Application Verifier will help check UMDF drivers extensively to help ensure stable and reliable
drivers.
For all UMDF drivers, Application Verifier will be enabled when driver reliability tests are executed.
Application Verifier can be downloaded from the following Microsoft website:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c4a25ab9-649d-4a1b-b4a7c9d8b095df18
To enable Application Verifier for WUDFHost.exe, run the following command:
appverif -enable handles locks heaps memory COM exceptions TLS -for WUDFHost.exe
For more information about UMDF, visit the following website:
http://www.microsoft.com/whdc/driver/wdf/UMDF.mspx
Exceptions:
Not Specified
Business Justification:
This requirement and the associated testing will enable better reliability checks on UMDF drivers.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
DEVFUND-0036
Device.DevFund.DriverFramework.UMDF.WDFProperINF
Target Feature: Device.DevFund.DriverFramework.UMDF
Title:
Windows Driver Framework (WDF) driver INF files are properly structured
Page 254 of 907
Applicable OS Versions:








Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Description:
All information (INF) files in Windows Driver Foundation (WDF) driver packages must call WDFspecific sections and directives properly. Correctly structured INF sections help ensure that the
driver will be installed properly. However, even when a driver is installed, a poorly or wrongly
configured section can cause unpredictable problems during the operation of the driver or device.
These problems can be prevented by following the guidelines for WDF INF settings.
To meet this requirement, all WDF INF files must have the following:

INF Coinstaller section, as follows:
[DDInstall.Coinstallers]
CopyFiles=
AddReg=
If the MSU update package for WDF version 1.11 is used to install the Framework then WDF v1.11
drivers don’t use the WDF coinstaller. If the MSU update package is used then KMDF drivers don’t
reference KMDF update coinstaller wdfcoinstaller0100X.dll, and UMDF drivers don’t reference the
UMDF update coinstaller wudfupdate_0100X.dll. But UMDF drivers still need to reference the config
coinstaller wudfcoinstaller.dll, which is an inbox coinstaller and isn’t part of the driver package.
UMDF drivers must reference the inbox coinstaller as in the below example;
[Echo_Install.NT.CoInstallers]
AddReg=CoInstallers_AddReg
[CoInstaller.AddReg]
HKR,CoInstallers32,0x00010000,WudfCoinstaller.dll

INF WDF Install section must be referenced as follows:
For Kernel-Mode Driver Framework (KMDF) drivers:
[DDInstall.Wdf]
Page 255 of 907
KmdfService= <ServiceName>, <Kmdf_Install>
[Kmdf_Install]
KmdfLibraryVersion=
KMDF v1.11 drivers don’t use the WDF install section if the MSU package is used.
For User-Mode Driver Framework (UMDF) drivers:
[DDInstall.Wdf]
UmdfService=<ServiceName>,<Umdf_Install>
UmdfServiceOrder=
UmdfDispatcher [Only for USB Drivers and Drivers with file handle I/O targets]=
UmdfImpersonationLevel[optional]=
[Umdf_Install]
UmdfLibraryVersion=
DriverCLSID=
ServiceBinary=
UMDF v1.11 drivers must still use the WDF install section if the MSU package is used; this section is
needed by the inbox UMDF coinstaller.

All UMDF driver INF files must have a WUDFRD service installation section for OSes
downlevel to Windows 8, as follows:
[WUDFRD_ServiceInstall]
DisplayName = "Windows Driver Foundation - User-mode Driver Framework
Reflector"
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WUDFRd.sys
LoadOrderGroup = Base
For Win8 Windows 8 UMDF drivers can use a unique service instead of WudfRd. In order to
accomplish this drivers need to abide by the following rules;
Page 256 of 907
1. Change the AddService directive to a unique value.
2. Change the services DisplayName to a unique value.
3. Add StartName=\Driver\WudfRd directive to the service entry.
4. Add ServiceBinary= %12%\WUDFRd.sys directive to the service entry.
Below is an example UMDF driver using the unique service;
[Echo_Install.NT.Services]
AddService=WudfEchoDriver,0x00000002 WUDFEchoDriver_ServiceInstall,
[WUDFEchoDriver_ServiceInstall]
DisplayName = %WudfEchoDriverDisplayName%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WUDFRd.sys
LoadOrderGroup = Base
StartName = \Driver\WudfRd
UMDF drivers can't use a unique service for OSes downlevel to Win8. If a UMDF driver wants to use
a unique service for Win8 but still needs to work for downlevel OSes then this driver should use OS
specific sections in their INF. The below example demonstrates an INF using OS specific install
sections;
[Manufacturer]
%MSFT% = Microsoft,NTx86.6.0,NTx86.6.2
[Microsoft.NTx86.6.0]
%Sensors.DeviceDesc% = Sensors_Install_VistaWin7,HID_DEVICE_UP:0020_U:0001
[Microsoft.NTx86.6.2]
%Sensors.DeviceDesc% = Sensors_Install_Win8,HID_DEVICE_UP:0020_U:0001
[Sensors_Install_VistaWin7]
--- Install the device this way on Vista/Win7 --[Sensors_Install_Win8]
Page 257 of 907
--- Install the device in a different way on Win8 --
All WDF drivers that use a WinUSB driver must have the following service installation
settings:
[WinUsb_ServiceInstall]
DisplayName = "WinUSB Driver"
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\WinUSB.sys

Service names, hardware IDs (HWIDs), display names, and UMDF class identifiers (CLSIDs)
cannot be copy-pasted from WDF samples.
Design Notes:
For more information about WDF-specific INF settings, visit the following websites:
http://www.microsoft.com/whdc/driver/wdf/wdfbook.mspx
http://msdn.microsoft.com/en-us/library/ff560526.aspx
http://msdn.microsoft.com/en-us/library/ff560526.aspx
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure good quality of driver setup files for WDF drivers and improves the
compatibility and reliability of certified drivers.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
DEVFUND-0040
Device.DevFund.DriverFramework.UMDF.WDFRedistributables
Target Feature: Device.DevFund.DriverFramework.UMDF
Title: Windows Driver Framework (WDF) drivers are packaged to contain the RTM free versions of
redistributables
Applicable OS Versions:
Page 258 of 907








Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Description:
All Windows Driver Framework (WDF) drivers that are submitted for a logo or signature through the
Windows Logo Program for Hardware must meet the following guidelines for packaging
redistributables, or co-installers:


All WDF drivers, for all versions of the WDF, for all operating systems can be submitted for a
logo or signature.
Redistributables that are included in the driver package must be the release to
manufacturing (RTM) fre version of the redistributables. Some WDF version 1.7 coinstallers
that were available on the Microsoft Connect website caused serious installation problems.
Microsoft has removed these coinstallers from Connect and replaced them with fixed
coinstallers. The problematic WDF coinstallers were version 1.7.6001.0. The fixed
coinstallers are version 1.7.6001.18000. For logo submissions, drivers should use the version
1.7.6001.18000 co-installers.
Kernel-Mode Driver Framework (KMDF) has coinstallers for versions 1.0, 1.1, 1.5, 1.7, 1.9 and 1.11.
You can use all of these coinstallers for logo submissions, provided that you use the RTM fre
versions.
User-Mode Driver Framework (UMDF) has coinstallers for versions 1.5, 1.7, 1.9 and 1.11. You can
use all of these coinstallers in your driver package, provided that you use the RTM fre versions.
WDF version 1.11 coinstallers that are released via Microsoft Connect have the most enhanced
version of the framework. We advise partners to use the latest version of the framework to develop
and distribute WDF drivers.
Design Notes:
WDF version 1.11 drivers can install the frameworks using an MSU update package instead of using
the 1.11 coinstallers. If WDF version 1.11 drivers use the MSU install package then KMDF drivers
don't use a co-installer, but WDF version 1.11 UMDF drivers still need to reference the inbox coinstaller named WudfCoinstaller.dll. WudfCoinstaller.dll is inbox to Windows 8, and UMDF drivers
aren't packaged with it, only the INF file should reference this co-installer.
WDF 1.11 is in-box to Windows 8, so before Windows 8 RTM WDF 1.11 drivers can be logo'ed for
Windows 8 if the driver installs without referring to the 1.11 coinstaller from its INF file. But UMDF
driver must still reference the inbox coinstaller wudfcoinstaller.dll, for more information regarding
WDF driver installation without a coinstaller, see
Page 259 of 907
http://blogs.msdn.com/b/iliast/archive/2009/08/13/wdf-logo-requirements-regardingcoinstallers.aspx
The WDF 1.11 coinstallers and the MSU package are distributed via Microsoft Connect.
Partners who want to have driver packages signed for down-level operating systems prior to WDF
1.11 RTM should use the WDF 1.9 RTM co-installers.
For more information about WDF driver installation, see http://msdn.microsoft.com/enus/library/ff544213.aspx
Exceptions:
Not Specified
Business Justification:
WDF drivers must be packaged with the correct versions of redistributables in order to function on
user's systems.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
6/1/2009
Comments:
DEVFUND-0039
Device.DevFund.Firmware
Description:
Driver package requirements for firmware update package
Related Requirements:

Device.DevFund.Firmware.UpdateDriverPackage
Device.DevFund.Firmware.UpdateDriverPackage
Target Feature: Device.DevFund.Firmware
Title:
Firmware updates need to be done through a driver package
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows Server 2012
Windows RT
Page 260 of 907
Description:
In addition to standard driver requirements, the following requirements apply to firmware update
driver package:
a. A firmware package must payload the update for only one resource.
b. A firmware package must be configurable (see Device.DevFund.INF.* for more
details).
c. After a successful firmware upgrade, the firmware version in the .INF file of the
driver package, the resource version (in ESRE), and the last attempted version (in
ESRE) for that resource must match.
d. The name of the binary file in the firmware package must not conflict with any of
the previous firmware versions.
e. A successful firmware upgrade must not reduce or eliminate functionality of any
devices in the system.
Exceptions:
Not Specified
Business Justification:
System and Device firmware updates will be applied uniformly across all products running
windows 8 and beyond_
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows 8 RC
Not Specified
Device.DevFund.INF
Description:
INF restictions
Related Requirements:



Device.DevFund.INF.AddReg
Device.DevFund.INF.AddService
Device.DevFund.INF.ClassInstall32
Page 261 of 907









Device.DevFund.INF.ComplexDeviceMatching
Device.DevFund.INF.DDInstall.CoInstallers
Device.DevFund.INF.DeviceConfigOnly
Device.DevFund.INF.DeviceResourceConfig
Device.DevFund.INF.FileCopyRestriction
Device.DevFund.INF.FileOrRegistryModification
Device.DevFund.INF.InstallManagement
Device.DevFund.INF.LegacySyntax
Device.DevFund.INF.TargetOSVersion
Device.DevFund.INF.AddReg
Target Feature: Device.DevFund.INF
Title:
When using an AddReg directive, each AddReg entry must specify HKR as the registry root
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
HKR (meaning “relative root”) is the only registry root identifier that can be referenced in an AddReg
section in an INF file. Other root identifiers, including HKCR, HKCU, HKLM and HKU, are restricted
from use in an AddReg section. The AddReg directive is intended to be used for device installation
and configuration purposes only.
Design Notes:
All registry keys declared in an AddReg section of an INF file must use the relative root identifier
(HKR) as the registry root value.
The following example shows the registration of a COM object using AddReg directives. Building on
this example it is possible to customize all of the object’s parameters:
[COMobj.AddReg]
HKCR,CLSID\{<CLSID>},,,"<MFT DLL description>"
HKCR,CLSID\{<CLSID>}\InprocServer32,,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\mftxyz.
dll"
HKCR,CLSID\{<CLSID>}\InprocServer32,ThreadingModel,,"Both"
A complete list of COM registry entries with details on their use can be found in the MSDN at
http://msdn.microsoft.com/en-us/library/ms694355(v=vs.85).aspx.
Page 262 of 907
The following example shows the registration of an MFT filter using AddReg directives:
[MFT.AddReg]
HKCR,CLSID\{<CLSID>},,,"<MFT DLL description>"
HKCR,CLSID\{<CLSID>}\InprocServer32,,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\mftxyz.
dll"
HKCR,CLSID\{<CLSID>}\InprocServer32,ThreadingModel,,"Both"
HKCR,MediaFoundation\Transforms\<CLSID>,InputTypes,%REG_BINARY%,76,45,87,2d,5e,23,...
HKCR,MediaFoundation\Transforms\<CLSID>,OutputTypes,%REG_BINARY%,22,5e,23,46,43,10,...
HKCR,MediaFoundation\Transforms\<CLSID>,,%REG_SZ%,"MFT Friendly Name"
HKCR,MediaFoundation\Transforms\<CLSID>,MFTFlags,%REG_DWORD%, 0x00000004
HKCR,MediaFoundation\Transforms\<CLSID>,Attributes,REG_BINARY%, 41,46,4d,…
HKCR,MediaFoundation\Transforms\Categories\<MFTCategoryGUID>\<CLSID>
HKLM,SOFTWARE\Microsoft\Windows Media
Foundation\ByteStreamHandlers\audio/xyz,<CLSID>,,"XYZ Stream Handler"
Additionally, when registering a DECODE or ENCODE HMFT, the one of the following registry keys
must also be set:
DECODE HMFT
HKLM,SOFTWARE\Microsoft\Windows Media Foundation\HardwareMFT,EnableDecoders,
%REG_DWORD%, 1
ENCODE HMFT
HKLM,SOFTWARE\Microsoft\Windows Media Foundation\HardwareMFT,EnableEncoders,
%REG_DWORD%, 1
More details on MFTs can be found in the MSDN at http://msdn.microsoft.com/enus/library/windows/desktop/ms703138(v=vs.85).aspx.
Exceptions:
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures. Note that there are some
exceptions to this requirement to accommodate the registration of Component Object Model (COM)
objects and Media Foundation Transforms (MFT) using the AddReg directive. Refer to the Design
Notes section of this requirement for additional details.
Business Justification:
Page 263 of 907
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.AddService
Target Feature: Device.DevFund.INF
Title:
INF files can only install driver-related services
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
An INF AddService directive can only reference services that are driver related. Services that are not
driver related, such as a Microsoft Win32 service, cannot be referenced or installed using an INF file.
Design Notes:
An INF AddService directive service-install-section may only specify a ServiceType type-code of the
following:

SERVICE_DRIVER

SERVICE_KERNEL_DRIVER

SERVICE_FILE_SYSTEM_DRIVER
Exceptions:
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Page 264 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.ClassInstall32
Target Feature: Device.DevFund.INF
Title:
INF files must not define a custom class installer within a ClassInstall32 section
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
An INF file may not specify a custom class installer within a ClassInstall32 section. Therefore, a driver
package cannot execute a custom class installer during device installation.
Design Notes:
Developers should use one of the existing inbox device setup classes for their device. If it is
necessary to define a new device setup class, the new setup class cannot employ a class installer as
part of the device installation process. The following example shows an INF ClassInstall32 section
which defines a custom class installer and therefore fails this requirement.
[ClassInstall32.ntx86] ; Declare a ClassInstall32 section for the x86
; architecture
AddReg=SetupClassAddReg ; Reference to the ClassInstall32 AddReg section
; Place additional class specific directives here
[SetupClassAddReg] ; Declare a class specific AddReg section
; Device class specific AddReg entries appear here
; The next line defines the class installer that will be executed when
; installing devices of this device-class type. Defining a registry entry
; of this type is no longer supported and the driver package fails to meet
; this device fundamental requirement.
Page 265 of 907
[HKR,,Installer32,,"class-installer.dll,class-entry-point"]
Exceptions:
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.ComplexDeviceMatching
Target Feature: Device.DevFund.INF
Title:
INF directives related to complex device matching logic are not supported
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
INF files will not support complex device matching logic. Specifically, the capability to specify a
DeviceID for a device which should not be installed, when a matching HardwareID or CompatibleID
exists in the DDInstall section, will not be supported.
Design Notes:
The following INF directive may not be referenced in an INF file:
1. ExcludeID
Exceptions:
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
Page 266 of 907
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.DDInstall.CoInstallers
Target Feature: Device.DevFund.INF
Title:
INF files must not reference any co-installers within a DDInstall.CoInstallers section
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
An INF file may not reference any co-installers within a DDInstall.CoInstallers section. Therefore, a
driver package cannot execute any co-installers during device installation.
Design Notes:
Execution of co-installers is prohibited during device installation. The following examples show the
registration of a device-specific co-installer and a device-class co-installer. Both types of co-installers
are not permitted in an INF file and inclusion will result in failure to meet the requirement.
Device-specific co-installer example:
; Registering one or more device-specific co-installers requires adding
; adding a REG_MULTI_SZ value using an AddReg directive. The following
; shows the general form for registering a device-specific co-installer.
; :
; :
[DestinationDirs]
; Destination dir for the co-installer dll
XxxCopyFilesSection = 11
; DIRID_for %WINDIR%\System32 dir
; Xxx = driver or device prefix
Page 267 of 907
; :
; :
[XxxInstall.OS-platform.CoInstallers]
; Define co-installers section
CopyFiles = XxxCopyFilesSection
; Copy files directive
AddReg = Xxx.OS-platform.CoInstallers_AddReg
[XxxCopyFilesSection]
; Add registry directive
; Define the co-installer copy files
XxxCoInstall.dll
; section
[Xxx.OS-platform.CoInstallers_AddReg]
; Define the co-installer AddReg
; section
; The next line defines the co-installer that will be executed when
; installing this device. Defining a registry entry of this type is no
; longer supported and the driver package fails to meet this device
; fundamental requirement.
HKR,,CoInstallers32,0x00010000,"XxxCoInstall.dll, \
XxxCoInstallEntryPoint"
Device-class co-installer example:
[Xxx.OS-platform.CoInstallers_AddReg]
; Define the co-installer AddReg
; section
; Similar format to the device-specific co-installer example, except the
; registry location is under HKLM. The next line defines the co-installer
; executed after any installation operations complete for the given device
; setup class GUID. Defining a registry entry of this type is no
; longer supported and the driver package fails to meet this deviceExceptions:
Page 268 of 907
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.DeviceConfigOnly
Target Feature: Device.DevFund.INF
Title: INF files cannot reference INF directives that are not directly related to the configuration of
a device
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
INF directives that provide configuration functionality beyond what is necessary to configure device
hardware are no longer supported. The INF file and all supporting files in the driver package must be
used only for device installation and configuration.
Design Notes:
The following INF directives may not be referenced in an INF file:
1. RegisterDlls
2. UnregisterDlls
3. ProfileItems
4. UpdateInis
5. UpdateIniFields
6. Ini2Reg
Page 269 of 907
Note that while the RegisterDlls directive can no longer be declared in an INF file, it is still possible to
register Component Object Model (COM) and Media Foundation Transform (MFT) objects from an
INF file using the AddReg directive. The AddReg directive allows the declaration of COM/MFT
registration keys under the HKLM registry hive. For information on the use of the AddReg directive
for this purpose, refer to the Device.DevFund.INF.AddReg Windows Hardware Certification
requirement.
Exceptions:
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.DeviceResourceConfig
Target Feature: Device.DevFund.INF
Title: INF based device resource configuration and non-PnP related configuration cannot be
performed within an INF file
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
INF files cannot be used to perform device resource configuration or non-PnP related configuration
tasks. Several INF directives and sections are no longer supported.
Design Notes:
The following INF sections and directives cannot be referenced in an INF file:
1. [DDInstall.LogConfigOverride] section
Page 270 of 907
2. LogConfig
3. [DDInstall.FactDef] section
Exceptions:
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.FileCopyRestriction
Target Feature: Device.DevFund.INF
Title:
INF based file copy restrictions
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
File copy destination locations are limited to prevent driver packages from installing drivers in
inappropriate locations on the system.
Design Notes:
When using the CopyFiles directive, the destination directory specified for a file must be one of the
following DIRID values:

11 (corresponds to the %WINDIR%\System32 directory)

12 (corresponds to the %WINDIR%\System32\Drivers directory)
Only these destination directories expressed as the appropriate DIRID will be a valid copy file
location.
Exceptions:
Page 271 of 907
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.FileOrRegistryModification
Target Feature: Device.DevFund.INF
Title: Deleting or modifying existing files, registry entries and/or services is not allowed from
within an INF file
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
INF file directives which delete or modify registry entries, services and files are no longer supported.
Design Notes:
The following INF directives may not be referenced in an INF file:
1. DelReg
2. DelService
3. DelPropertry
4. BitReg
5. DelFiles
6. RenFiles
Exceptions:
Page 272 of 907
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.InstallManagement
Target Feature: Device.DevFund.INF
Title:
Management of files installed using an INF file is restricted to the system
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Any files that are installed onto the system using an INF file are managed exclusively by Windows.
Plug and Play (PnP) prevents applications from directly modifying the files that are referenced in the
INF.
Design Notes:
An INF file must include the PnpLockDown directive set to value 1 in the [Version] section. This
would appear as follows in the INF file:
[Version]
; Other Version section directives here
PnpLockDown=1
Exceptions:
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
Page 273 of 907
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.LegacySyntax
Target Feature: Device.DevFund.INF
Title:
Legacy service configuration cannot be performed within an INF file
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Service configuration using legacy INF syntax is no longer supported.
Design Notes:
The following INF service install section directive may not be referenced in an INF file:
1. LoadOrderGroup
Exceptions:
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures.
Business Justification:
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.INF.TargetOSVersion
Target Feature: Device.DevFund.INF
Page 274 of 907
Title: The TargetOSVersion decoration in an INF file cannot contain a ProductType flag or
SuiteMask flag
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Within the [Manufacturer] section of an INF file, a TargetOSVersion decoration is used to identify the
target OS of the driver package. The TargetOSVersion decoration cannot contain a ProductType flag
or SuiteMask flag.
Design Notes:
In Windows 7 and earlier OS versions, the TargetOSVersion decoration is formatted as follows:
nt[Architecture].[OSMajorVersion][.[OSMinorVersion][.[ProductType][ \
.[SuiteMask]]]]
Beginning in Windows 8, the ProductType field and SuiteMask field are no longer valid fields in the
TargetOSVersion decoration.
Exceptions:
*This is a requirement for Windows RT, but is recommended for Windows 8 Client x86 and Windows
8 Client x64. It will be required in the future for those architectures
Business Justification:
This requirement improves driver and device installation performance and reliability by allowing
Windows to optimize related driver staging and device configuration operations on the system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.Memory
Description:
Requirements related to memory profile
Related Requirements:
Page 275 of 907


Device.DevFund.Memory.DriverFootprint
Device.DevFund.Memory.NXPool
Device.DevFund.Memory.DriverFootprint
Target Feature: Device.DevFund.Memory
Title:
Drivers must occupy a limited memory footprint
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
Drivers must occupy less than or equal to the following size of non-paged code pages in memory:
Non Paged Code Pages
Driver type
x86/ARM
x64
Graphics drivers
<= 10 MB
<= 10 MB
All other driver types
<= 1.66 MB
<= 5.45 MB
Driver locked allocations (including MDL allocations and contiguous memory allocations)

12 MB for all driver types for both architectures
Design Notes: The corresponding test will check the size of the drivers non-paged code pages in MB.
Exceptions:
Not Specified
Business Justification:
Driver non-paged memory usage constitutes a fixed cost in terms of memory utilization for the
overall lifetime of a system. These contribute substantially toward the total OS memory footprint,
and most drivers are present in memory at all times. Optimizing driver memory will provide an
improved user experience and better overall system responsiveness due to greater availability of
memory for user applications.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.Memory.NXPool
Target Feature: Device.DevFund.Memory
Page 276 of 907
Title:
All driver pool allocations must be in NX pool
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
Driver pool allocations must be made in the non-executable (NX) pool.
Design Notes:
A new type of non-paged pool has been introduced which is non-executable (NX) Pool. Since it is
non-executable, it is inherently more secure as compared to executable non-paged (NP) Pool, and
provides better protection against overflow attacks.
Exceptions:
Not Specified
Business Justification:
Moving allocations to the non-executable pool, the surface area of attack for a rogue binary's
executable code is minimized.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.DevFund.Reliability
Description:
Reliability tests containing content of the former DEVFUND tests
Related Requirements:









Device.DevFund.Reliability.BasicReliabilityAndPerformance
Device.DevFund.Reliability.BasicSecurity
Device.DevFund.Reliability.BootDriverEmbeddedSignature
Device.DevFund.Reliability.DriverInstallUninstallReinstall
Device.DevFund.Reliability.DriverUninstallInstallOtherDeviceStability
Device.DevFund.Reliability.IOCompletionCancellation
Device.DevFund.Reliability.NoReplacingSysComponents
Device.DevFund.Reliability.NormalOpWithDEP
Device.DevFund.Reliability.PnPIDs
Page 277 of 907







Device.DevFund.Reliability.PnPIRPs
Device.DevFund.Reliability.ProperINF
Device.DevFund.Reliability.RemoteDesktopServices
Device.DevFund.Reliability.S3S4SleepStates
Device.DevFund.Reliability.Signable
Device.DevFund.Reliability.SWDeviceInstallsUsePnPAPIs
Device.DevFund.Reliability.X64Support
Device.DevFund.Reliability.BasicReliabilityAndPerformance
Target Feature: Device.DevFund.Reliability
Title: Drivers are architected to maximize reliability and stability and do not "leak" resources such
as memory (DEVFUND-0016)
Applicable OS Versions:















Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Vista Client x64
Windows Vista Client x86
Windows Server 2003 x64
Windows Server 2003 x86
Windows XP x64
Windows XP x86
Description:
Driver components must not cause the system to crash or leak resources. These resources include
but are not limited to the following:

Memory

Graphics Device Interface (GDI) or user objects

Kernel objects such as files, mutex, semaphore, and device handles

Critical sections

Disk space
Page 278 of 907

Printer handles
Design Notes:
To improve the reliability and stability of Windows drivers, all drivers will be subjected to a series of
generic driver quality tests. These tests include:
Embedded Signature Verification Test – This test verifies that boot start drivers are embedded
signed.
Device Install Check for File System Consistency – This test verifies that no system resources have
been overwritten during the process of a device/driver install
Device Install Check for Other Device Stability – This test verifies that no device or driver, except the
device under test, has been affected by the device(s)/driver(s) install or co-install process
PCI Root Port Surprise Remove Test – This surprise removes PCI root port for the device (if
applicable)
PNP (disable and enable) with IO Before and After – This test performs basic I/O and basic PNP
disable/enable on the test device(s)
Reinstall with IO Before and After – This test uninstalls and reinstalls the drivers for test device(s)
and runs I/O on these device(s)
Sleep with PNP (disable and enable) with IO Before and After – This test cycles the system through
various sleep states and performs I/O and basic PNP (disable/enable) on test device(s) before and
after each sleep state cycle
Sleep with IO Before and After – This test cycles the system through various sleep states and
performs I/O on device(s) before and after each sleep state cycle
Plug and Play Driver Test – This test exercises PnP-related code paths in the driver under test
Device Path Exerciser Test – This consists of a set of tests, each of which concentrates on a different
entry point or I/O interface. These tests are designed to assess the robustness of a driver, not its
functionality.
All of these tests will be run with Driver Verifier enabled with standard settings.
In addition Driver Verifier will be enabled on all applicable kit tests.
Exceptions:
Not Specified
Business Justification:
System crashes, memory leaks, driver installation/uninstallation failures, poor power
management/usage, PNP errors as well as IO related errors contribute to a poor end user
experience. These tests help isolate some common driver problems.
Scenarios:
Not Specified
Page 279 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0016
Device.DevFund.Reliability.BasicSecurity
Target Feature: Device.DevFund.Reliability
Title: Device driver must properly handle various user-mode as well as kernel to kernel I/O
requests (DEVFUND-0004)
Applicable OS Versions:















Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows XP x86
Windows Vista Client x86
Windows Vista Client x64
Windows Server 2003 x64
Windows Server 2003 x86
Windows XP x64
Description:
Driver reliability and security are connected. Reliable drivers help protect the system from malicious
attacks.
Compliance will be validated by running the Device Path Exerciser test against the device driver.
Device Path Exerciser consists of a set of tests, each of which concentrates on a different entry point
or I/O interface. These tests are designed to assess the robustness of a driver, not its functionality.
During a test, Device Path Exerciser typically sends hundreds of thousands of similar calls to the
driver in rapid succession. The calls include varying data access methods, valid and invalid buffer
lengths and addresses and permutation of the function parameters, including spaces, strings, and
characters that might be misinterpreted by a flawed parsing or error-handling routine.
The device driver must comply with the reliability guidelines that are defined in the Windows Driver
Kit. All user mode I/O requests and kernel-to-kernel I/O requests must be handled properly to help
ensure secure devices and drivers.
Design Notes:
Page 280 of 907
Potential security vulnerabilities include the failure to check for a buffer overflow, the inability to
handle bad data from user mode, and the mishandling of unexpected entry points into the driver. If
such vulnerabilities are left unidentified and uncorrected, malicious programs could potentially issue
denial-of-service attacks or otherwise bypass system security.
For additional information, see the "Creating Reliable and Secure Drivers" and "Creating Reliable
Kernel-Mode Drivers" topics in the Windows Driver Kit.
Exceptions:
Not Specified
Business Justification:
This requirement exercises the driver and helps ensure that the driver will be reliable and secure
when the driver is used in a system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0004
Device.DevFund.Reliability.BootDriverEmbeddedSignature
Target Feature: Device.DevFund.Reliability
Title:
Boot drivers must be self-signed with an embedded signature (DEVFUND-0029)
Applicable OS Versions:











Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Vista Client x86
Windows Vista Client x64
Description:
All boot start drivers must be embedded-signed using a Software Publisher Certificate (SPC) from a
commercial certificate authority. The SPC must be valid for kernel modules. Drivers must be
embedded-signed through self-signing before the driver submission.
Design Notes:
Page 281 of 907
For more information about how to embedded-sign a boot start driver, see Step 6: Release-Sign a
Driver Image File by Using an Embedded Signature" at the following website:
http://go.microsoft.com/fwlink/?LinkId=237093
After the file is embedded-signed, use SignTool to verify the signature. Check the results to verify
that the root of the SPC's certificate chain for kernel policy is "Microsoft Code Verification Root." The
following command line verifies the signature on the toaster.sys file:
Signtool verify /kp /v amd64\toaster.sys
Verifying: toaster.sys
SHA1 hash of file: 2C830C20CF15FCF0AC0A4A04337736987C8ACBE3
Signing Certificate Chain:
Issued to: Microsoft Code Verification Root
Issued by: Microsoft Code Verification Root
Expires: 11/1/2025 5:54:03 AM
SHA1 hash: 8FBE4D070EF8AB1BCCAF2A9D5CCAE7282A2C66B3
Successfully verified: toaster.sys
Number of files successfully Verified: 1
Number of warnings: 0
Number of errors: 0
Exceptions:
Not Specified
Business Justification:
Boot drivers must be embedded-signed in order to work properly with the boot process.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2007
DEVFUND-0029
Device.DevFund.Reliability.DriverInstallUninstallReinstall
Target Feature: Device.DevFund.Reliability
Title: Device and Driver Installation/un-installation/re-installation must be completed without any
error, including function drivers for a multi-function device (DEVFUND-0030)
Page 282 of 907
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Device and driver installation, uninstallation, or reinstallation must not fail in any case.
Driver installation must not cause the system to stop running or to restart without user interaction,
unless the operating system requires a restart.
For multi-function devices that have separate drivers that enable separate functions, each driver
must be capable of installing and uninstalling independently with no start order or hidden
dependencies. A multi-function device is a single device that supports multiple functionalities.
Devices that use inbox drivers for operation must also meet this requirement. This requirement does
not apply to Internet Small Computer System Interface (iSCSI) devices.
Design Notes:
In the case of multi-function devices, a supervisory driver that loads different drivers for individual
functions does not work well with Windows®. In particular, driver support is likely to be lost after an
operating system reinstallation or upgrade, or when new drivers are distributed through Windows
Update. Therefore, such supervisory drivers should be avoided.
This requirement will be tested by using the "Reinstall with IO" test in the Windows Hardware
Certification Kit (WHCK).
Exceptions:
This requirement does not apply to Internet Small Computer System Interface (iSCSI) devices. PEP
and HAL extensions will be considered for exemption from this requirement.
Business Justification:
This requirement will help ensure a good user experience when the user installs or uninstalls device
drivers. A good user experience is critical when the operating system is being upgraded. Testing
driver installation, uninstallation, and reinstallation will reduce unpleasant user experiences. The
test tool will help us to make sure that all devices and drivers that have a logo are certified never
prevent Windows from upgrading smoothly.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 283 of 907
Enforcement Date:
Comments:
6/1/2009
DEVFUND-0030
Device.DevFund.Reliability.DriverUninstallInstallOtherDeviceStability
Target Feature: Device.DevFund.Reliability
Title: Installing or uninstalling the driver must not reduce or eliminate functionality of other
devices or other functional parts of the same device installed on the system (DEVFUND-0006)
Applicable OS Versions:







Windows 7 Client x64
Windows 7 Client x86
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Installing or uninstalling a device driver must not reduce or eliminate functionality of other devices
that are installed on the system.
This requirement also applies to functional units of a multi-function device, whether that functional
unit is on the multi-function device or on the system as a whole.
Design Notes:
The steps for testing this requirement are outlined in the Device install check for other device
stability test in the Windows Hardware Certification Kit (WHCK): http://msdn.microsoft.com/enus/library/ff561407(VS.85).aspx .
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure that installing or uninstalling a device or a functional part of a device
does not impair the functionality of other parts of the same device or other devices that are on the
system. This will help ensure high reliability and availability of the devices that are installed on the
system and of the system as a whole.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0006
Page 284 of 907
Device.DevFund.Reliability.NoReplacingSysComponents
Target Feature: Device.DevFund.Reliability
Title:
Vendor-supplied drivers or software must not replace system components
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Driver or software installation must not overwrite any Microsoft®-authored operating system
components.
If a manufacturer’s information file (INF) copies any files that the operating system supplies, the INF
must copy those files from the Windows® product disk or preinstalled source files, unless the
component is a licensed, redistributable component.
Drivers that are not authored by Microsoft are not allowed to be named after a Microsoft-supplied
driver.
Design Notes:
Each Windows® product has a unique set of files that use system file protection. For information
about protected operating system files, see the SfcGetNextProtectedFile and SfcIsFileProtected
application programming interfaces (APIs) in the Microsoft platform software development kit (SDK).
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure that third-party drivers do not overwrite or use the same names as
the operating system components. This requirement addresses Windows operating system reliability
when these third-party drivers are loaded.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0005
Device.DevFund.Reliability.NormalOpWithDEP
Target Feature: Device.DevFund.Reliability
Page 285 of 907
Title: All drivers must operate normally and execute without errors with Data Execution
Prevention (DEP) enabled (DEVFUND-0041)
Applicable OS Versions:











Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2003 x86
Windows Server 2003 x64
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Description:
To help ensure proper device and driver behavior and to enhance the security of Windows systems
against viruses and other security threats, all drivers must operate normally when Data Execution
Prevention (DEP) is enabled. DEP monitors programs to help make sure that the programs use
system memory safely. DEP also protects the system by closing any program that is trying to execute
code from memory in an incorrect way.
To meet this requirement, drivers must not execute code from data pages such as default heap
pages, various stack pages, and memory pool pages.
DEP is a set of hardware and software technologies that perform additional checks on memory to
help prevent malicious code from running on a system. The primary benefit of DEP is to help prevent
code execution from data pages. Typically, code is not executed from the default heap and the stack.
Hardware-enforced DEP detects code that is running from these locations and raises an exception
when execution occurs. Software-enforced DEP can help prevent malicious code from taking
advantage of exception handling mechanisms in Windows.
Design Notes:
For more information about DEP, including how to enable DEP, visit the following website:
http://support.microsoft.com/kb/875352
The test for DEP is currently part of the systems test category in the Windows Hardware Certification
Kit (WHCK). A device version of this test will be introduced before this requirement is enforced for
certification.
Exceptions:
Not Specified
Business Justification:
Page 286 of 907
DEP can help enhance the security of systems that are running Windows operating systems. DEP also
helps protect against malicious code, viruses, and other security threats. Making this requirement
fundamental for devices will help ensure that all drivers that are signed through the Windows
Hardware Certification Program are protected, and that the drivers prevent malware from being
signed.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
DEVFUND-0041
Device.DevFund.Reliability.PnPIDs
Target Feature: Device.DevFund.Reliability
Title: Plug and Play IDs embedded in hardware devices, including each functional unit of a multifunction device, must have device IDs to support Plug and Play (DEVFUND-0003)
Applicable OS Versions:











Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Server 2003 x86
Windows Server 2003 x64
Description:
Each device that is connected to an expansion bus must be able to supply its own device ID. Each
function or device on a multi-function add-on device that is individually enumerated must also
provide a device ID for the bus that the function or device uses.
The following are the specific requirements for Plug and Play device IDs:

Each separate function or device on the system board must be separately enumerated.
Therefore, each function or device must provide a device ID for the bus that it uses, as
required in the current Plug and Play specification.

If a device on an expansion card is enumerated, the device must have a unique ID and its
own resources according to the current device ID requirements for the bus to which the card
Page 287 of 907
is connected. This requirement includes devices that are separately enumerated on multifunction cards or multi-function chips.

A Plug and Play ID can be shared with other devices that have the same model name, as
defined in the device-specific Plug and Play specification.

Each logical function of the device must have a distinct Plug and Play ID.

The install (INF) section must key off only the most specific ID according to the Plug and Play
guidelines in the Windows® Driver Kit.

For legacy devices such as serial, parallel, and infrared ports, the legacy Plug and Play
guidelines define requirements and clarifications for automatic device configuration,
resource allocation, and dynamic disable capabilities .
Note: Devices that are completely invisible to the operating system, such as out-of-band systems
management devices or Intelligent Input/Output (I2O) hidden devices, still must use Advanced
Configuration and Power Interface (ACPI) methods to properly reserve resources and avoid potential
conflicts.
The following are the exceptions to the individual device ID requirement for multi-function devices:

Multiple devices of the same device class, such as multiline serial devices, do not need
individual device IDs.

Devices that are generated by an accelerator or auxiliary processor and that do not have
independent hardware I/O do not need individual device IDs. That processor must have an
ID, and the MF.sys file must be used to enumerate the dependent devices.
If an OEM uses a proprietary mechanism to assign asset or serial numbers to hardware, this
information must be available to the operating system through Windows hardware instrumentation
technology.
Design Notes:
See Windows Hardware Instrumentation Implementation Guidelines (WHIIG), Version1.0, at the
following website:
http://go.microsoft.com/fwlink/?LinkId=237095
Exceptions:
Not Specified
Business Justification:
A unique Plug and Play ID provides a good end user experience for devices. Because a unique device
installs each device driver, this requirement helps prevent the issues that occur in Windows Update.
This requirement now also includes all aspects of Plug and Play that are relevant for multi-function
Page 288 of 907
devices to enable a good Plug and Play experience when the device is used with Windows. This
requirement enhances compatibility and reliability when Windows is used with certified devices.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0003
Device.DevFund.Reliability.PnPIRPs
Target Feature: Device.DevFund.Reliability
Title:
Drivers must support all PnP IRPs
Applicable OS Versions:















Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows XP x86
Windows Vista Client x86
Windows Vista Client x64
Windows XP x64
Windows Server 2003 x86
Windows Server 2003 x64
Description:
Drivers must support all Plug and Play I/O request packets (IRPs) according to the requirements on
the following website:
http://msdn.microsoft.com/en-us/library/ff558807(v=VS.85).aspx
The following IRPs are often the cause of driver issues. Special attention should be given to their
implementation:

Removal

IRP_MN_QUERY_REMOVE_DEVICE

IRP_MN_CANCEL_REMOVE_DEVICE
Page 289 of 907



IRP_MN_REMOVE_DEVICE
Rebalancing

IRP_MN_QUERY_STOP_DEVICE

IRP_MN_QUERY_RESOURCE_REQUIREMENTS

IRP_MN_FILTER_RESOURCE_REQUIREMENTS

IRP_MN_CANCEL_STOP_DEVICE

IRP_MN_STOP_DEVICE

IRP_MN_START_DEVICE

IRP_MN_REMOVE
Surprise Removal

Exceptions:
IRP_MN_SURPRISE_REMOVAL
Not Specified
Business Justification:
Compliance with the IRPs contributes to providing a good Plug and Play experience.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
12/1/2010
DEVFUND-0047
Device.DevFund.Reliability.ProperINF
Target Feature: Device.DevFund.Reliability
Title:
Device driver must have a properly formatted INF for its device class (DEVFUND-0001)
Applicable OS Versions:







Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Page 290 of 907




Windows Server 2012
Windows RT
Windows Server 2003 x86
Windows Server 2003 x64
Description:
Driver installation and removal must use Windows®-based methods. Therefore, only information file
(INF)-based installation routines are allowed. A device driver must have a properly formatted INF for
its device as described in the Windows Driver Kit (WDK) "Creating an INF File" topic.
Design Notes:
The “INFTest against a single INF” test in the Windows Hardware Certification Kit (HCK) validates this
requirement. For more information about this test, see the Help documentation of the test kit.
Note: If the device does not provide an INF file (that is, the device uses the inbox driver and the INF
file only), this requirement does not apply.
Exceptions:
If the device does not provide an INF file (that is, the device uses the inbox driver and the INF file
only), this requirement does not apply.
Business Justification:
Using Windows®-based methods for driver installation and removal provide end users with a
consistent experience and improve the ability to manage the drivers.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0001
Device.DevFund.Reliability.RemoteDesktopServices
Target Feature: Device.DevFund.Reliability
Title: Client and server devices must function properly before, during, and after fast user switching
or a Microsoft Remote Desktop Services session (DEVFUND-0009)
Applicable OS Versions:





Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Page 291 of 907






Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Server 2003 x86
Windows Server 2003 x64
Description:
Devices must support Fast User Switching (FUS) and Remote Desktop Services without losing data
before, during, or after sessions. Any user interface (UI) for the device must be shown in the session
to which the UI applies. Device usage must not be indefinitely blocked in alternate user sessions.
Exceptions:
Not Specified
Business Justification:
FUS and Remote Desktop Services are Windows® features. To provide a good and consistent user
experience, each device needs to work properly with these services.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0009
Device.DevFund.Reliability.S3S4SleepStates
Target Feature: Device.DevFund.Reliability
Title: All devices and drivers must support S3 and S4 sleep states of the system they are integrated
on or connected to (DEVFUND-0043)
Applicable OS Versions:













Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows XP x86
Windows Vista Client x86
Windows Vista Client x64
Windows XP x64
Windows Server 2003 x86
Page 292 of 907


Windows Server 2003 x64
Windows RT
Description:
All devices and drivers must meet the following requirements for systems that are entering S3 and
S4 sleep states:

All devices and drivers must correctly support the request of a system that is going into S3 or
S4 states.

Devices and drivers must not veto the request from the system.

The devices must support both the S3 and S4 states.

All devices must be capable of resuming from S3 and S4 sleep states and be fully functional
after waking up.

The device and all its functional units (in the case of multi-function devices) must be
enumerated appropriately after the device resumes.

All devices and drivers must respond properly to Plug and Play events, IOCtl calls, and I/O
requests that are issued concurrently with sleep state transitions.
This requirement helps ensure that all certified and signed devices will support the S3 and S4 sleep
states when the devices are used as part of a system or are connected externally to a system. This
requirement will help the systems conserve power when the system is not being used.
Power management is an important aspect of a good user experience. The system should be able to
control which devices are put into a sleep state when the devices are not being used. All devices
must comply with the request from the system to go into a sleep state and not veto the request,
thereby putting an additional drain on the power source.
Design Notes:
This requirement will be tested by using the "Sleep Stress with IO" test and the "PnPDTest with
Concurrent IO in parallel with DevPathExer" test in the Windows Hardware Certification Kit (WHCK).
The system that is used for testing must support S3 and S4.
Note that systems that support Connected Standby will not support S3, and may or may not support
S4. Devices in such systems must support Connected Standby, and S4 requests of that system (if
applicable).
Exceptions:
Not Specified
Business Justification:
This requirement will help ensure that the certified devices cooperate with a client system that is
trying to go into an S3 or an S4 sleep state to conserve power when the system is not being used.
Page 293 of 907
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
DEVFUND-0043
Device.DevFund.Reliability.Signable
Target Feature: Device.DevFund.Reliability
Title:
Device drivers must be able to be signed by Microsoft (DEVFUND-0002)
Applicable OS Versions:











Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 x86
Windows Server 2008 x64
Windows Server 2008 R2 x64
Windows Server 2003 x86
Windows Server 2003 x64
Description:
All devices must have code signed drivers. Drivers that are submitted for the Windows® certification
must be able to be code signed and must meet the Microsoft guidelines that are defined in the
Windows Driver Kit "WHQL Digital Signatures" topic. All boot start drivers must be embedded-signed
by using a certificate that is valid for kernel modules. Devices must be embedded-signed via selfsigning before the devices are submitted to Microsoft for certification. It is recommended that all
drivers are embedded-signed via self-signing before the drivers are submitted to Microsoft, although
this is only required for boot start drivers.
Design Notes:
For requirements for digital signatures, see the "Driver Signing/File Protection" topic at the following
website:
http://go.microsoft.com/fwlink/?LinkId=36678
The INF2CAT signability verification tool installs automatically the first time that you create a
submission on Microsoft's website. For more information about the INF2CAT tool, visit the following
website:
http://go.microsoft.com/fwlink/?LinkId=109929
Page 294 of 907
Exceptions:
This requirement does not apply to devices that use the inbox drivers of the operating system.
Business Justification:
This requirement helps ensure that the driver that is signed through the certification program will be
compatible with the Windows operating system. This requirement applies only to submissions that
include third-party drivers that are to be signed as part of the Windows Hardware Certification
Program. This requirement does not apply to devices that use the inbox drivers of the operating
system.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0002
Device.DevFund.Reliability.SWDeviceInstallsUsePnPAPIs
Target Feature: Device.DevFund.Reliability
Title: Software-initiated device-installs use Plug and Play APIs to install device drivers (DEVFUND0015)
Applicable OS Versions:









Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
Device installers that directly manipulate Plug and Play resources contribute to system instability.
Therefore, direct manipulation of Plug and Play resources will be blocked on later releases of
Windows. To help ensure compatibility with Windows releases, standard Plug and Play application
programming interfaces (APIs) must be used to install device drivers.
Design Notes:
In Windows Vista and later operating systems, standard Plug and Play calls such as the
SetupCopyOEMInf call pre-stage all required files for device installation on the system automatically.
Pre-staging of driver packages will facilitate driver package migration during a system upgrade to
Page 295 of 907
Windows Vista or later Windows operating systems. We strongly encourage the use of the Driver
Install Framework tools to meet this logo certification requirement. Use of DIFxAPI, DIFxAPP, or
DPInst DIFx tools fulfills this requirement.
Exceptions:
Not Specified
Business Justification:
Enforcement of this requirement at Windows Vista has enabled Direct Media Interface (DMI) to
implement formal lockdown in later Windows versions, with greatly reduced risk to device
compatibility.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0015
Device.DevFund.Reliability.X64Support
Target Feature: Device.DevFund.Reliability
Title:
Device drivers support x64 versions of Windows (DEVFUND-0014)
Applicable OS Versions:










Windows Vista Client x86
Windows Vista Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x64
Windows Server 2012
Windows 8 Client x86
Description:
All kernel mode or user mode products and drivers that are submitted for a Microsoft signature or
for Windows Hardware Certification must support the x64 version of that specific Windows
operating system, with certain exceptions that are described below. All x64 device drivers must
adhere to the Microsoft x64 software calling convention, as defined in the Windows Driver Kit.
This requirement applies to Windows Vista and later operating systems. The requirement applies to
all drivers submitted for certification.
Page 296 of 907
An x86 driver submission is optional in all cases. However, if a vendor submits an x86 driver or
device, the vendor must also submit an x64 driver. Update submissions for x86 drivers do not need
to include x64 drivers again unless the updates also apply to x64 drivers.
When a vendor submits any device or driver for x86 architecture, and the device or driver is
expected to work with x64 operating system inbox drivers, the Windows Hardware Certification Kit
(WHCK) test results of that device with the x64 inbox drivers must also be included in the
submission.
This requirement does not apply to IA-64 devices and drivers. IA-64 devices and drivers are not
required to support the x64 architecture.
All products refer to all hardware IDs that are enumerated in the operating system for that device or
driver. Virtual hardware IDs, or hardware IDs that do not correspond to a physical device but are
created in a driver only, must be enumerated identically for x86, IA64 and x64 architectures. No
additional prefix or suffix may be appended to differentiate between x86, IA64, and x64 architecture
virtual hardware IDs.
This requirement does not apply to devices that are physically embedded on a system that is capable
of supporting only an x86 operating system. Vendors that submit devices under this exemption must
provide justification in the Readme file that is included with the submission package. Justification
must include relevant information, such as the system name on which the device is embedded and
the processor that is used on the system.
For Windows Server 2008: Legacy devices that are submitted for a Windows Server 2008 signature
are exempt from this requirement and can make an x86-only submission. Vendors that submit
devices under this exemption must provide justification in the Readme file that is included with the
submission package. Legacy devices are devices that were at the end-of-life stage when Windows
Server 2008 was released, but that are included in systems that will be tested for the supported
designation and that need to provide Windows Server 2008 signed drivers for system submissions.
Design Notes:
To increase the safety and stability of the Microsoft Windows platform, unsigned kernel-mode code
will not load and will not run on Windows Vista 64-bit platforms. For additional details, see the
document that is titled "Digital Signatures for Kernel Modules on Systems Running Windows Vista"
at the following website:
http://go.microsoft.com/fwlink/?LinkId=108140
For more information about creating drivers to run on 64-bit editions of Windows operating
systems, see the checklist for 64-bit Microsoft drivers at the following website:
http://go.microsoft.com/fwlink/?LinkId=108141
For more information about the Microsoft x64 calling convention, see the "Calling Convention for
x64 64-bit Environments" topic in the Windows Driver Kit.
Notes about testing:
Page 297 of 907
This requirement will be tested during the submission approval process after the submission is
uploaded to Microsoft. Validation is performed at the hardware ID level.
The test enumerates all hardware IDs that are included in the x86 driver. The test also verifies the
following:

The same hardware IDs are also included in the x64 driver package.

The hardware IDs have the right descriptors for the operating system's x64 platform.

The x64 driver has been tested on the x64 platform and results have been submitted.
If a match is not found in the current submission package, the test will search through past approved
x64 submissions to find the hardware IDs.
For valid exemption cases, the details of the exempt hardware IDs must be included in the Readme
file that is included with the submission.
Exceptions:
Not Specified
Business Justification:
Due to the prevalence of x64 architectures, Windows needs to be supported by a viable population
of drivers on these for all supported architectures.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0014
Device.DevFund.Reliability.3rdParty
Description:
Reliability tests containing content of the former DEVFUND tests
Related Requirements:

Device.DevFund.Reliability.3rdParty.FormerTests
Device.DevFund.Reliability.3rdParty.FormerTests
Target Feature: Device.DevFund.Reliability.3rdParty
Title:
Former Tests Mapping Requirement
Applicable OS Versions:

Windows Server 2008 x86
Page 298 of 907








Windows Server 2008 x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
The feature Device.DevFund.Reliability.3rdParty and this requirement are a placeholder for mapping
of former DevFund tests not found in other requirement.
Exceptions:
This requirement does not apply to devices that use the inbox drivers of the operating system.
Business Justification:
To map former DevFund tests
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
Not Specified
Device.DevFund.Reliability.Interrupts
Description:
Reliability with respect to device interrupts
Related Requirements:

Device.DevFund.Reliability.Interrupts.BasicReliabilityAndPerformance
Device.DevFund.Reliability.Interrupts.BasicReliabilityAndPerformance
Target Feature: Device.DevFund.Reliability.Interrupts
Title: Drivers must not exceed the maximum number of interrupts, and must support resource
arbitration down to a minimum level as defined by the operating system
Applicable OS Versions:

Windows Server 2012
Page 299 of 907
Description:
The driver must be able to tolerate system re-balancing of interrupt resources with any alternative
chosen by the OS without failures, including the theoretical minimum of one line based interrupt.
Interrupt arbitration may require multiple iterations. Drivers must be prepared to tolerate cases
where their initial interrupt request is rejected. In order to support optimal and timely interrupt
arbitration, drivers should provide multiple alternatives at successively reduced interrupt count.
Drivers should avoid requesting more than one interrupt per core when possible. Any request for
greater than 2048 interrupts per device function will be rejected per the PCIe 3.0 defined MSI-X
table entry limit of 2048 per device.
Design Notes:
This requirement is currently untested.
Exceptions:
Not Specified
Business Justification:
Requesting more than one interrupt per core can lead to IDT exhaustion in settings where many
devices are present. Requesting a total number of interrupts based on the number of cores often
leads to memory allocation issues.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
RC
NEW
Device.DevFund.ReliabilityDisk
Description:
Reliability tests targeting disk devices
Related Requirements:

Device.DevFund.ReliabilityDisk.IOCompletionCancellation
Device.DevFund.ReliabilityDisk.IOCompletionCancellation
Target Feature: Device.DevFund.ReliabilityDisk
Title: Device driver follows design details in the I/O Completion/Cancellation Guidelines
(DEVFUND-0013)
Applicable OS Versions:
Page 300 of 907











Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Windows Server 2003 x86
Windows Server 2003 x64
Description:
I/O completion and cancellation guidelines for drivers provide prescriptive requirements to help
ensure that device drivers do not stop responding and can be fully cancelled. These requirements
also suggest best practices that drivers can follow to improve performance.
Based on the guideline, all device drivers must meet the following requirements:

All I/O request packets (IRPs) that are cancelled must be completed within five seconds in an
environment that is not resource constrained. No cancellation should be missed even
though the cancellation requests may arrive at any instant, even before driver's dispatch
routine sees the IRP.

All resources that a cancelled IRP allocates must be released at IRP cancellation time to
prevent hindering system performance under a high cancellation load. The cancellation of
the IRP should shut down any I/O intensive process.
In addition, we strongly recommend that drivers do not depend on an additional allocation of
resources during cancellation.
Design Notes:
The Windows I/O Manager includes enhancements to support cancellation of the MJ_IRP_CREATE
process. The Win32 application programming interfaces (APIs) include enhancements to support
cancellation of synchronous operations, such as CreateFile. These enhancements allow I/O
cancellation in more environments than in earlier operating systems. For more information, see the
"I/O Completion/Cancellation Guidelines" white paper at the following website:
http://www.microsoft.com/whdc/driver/kernel/default.mspx.
For more information about designing completion and cancellation logic for drivers, see the
following topics in the Windows Development Kit (WDK):
Completing IRPs
Canceling IRPs
Page 301 of 907
Cancel-Safe IRP Queues
Using the System's Cancel Spin Lock
Exceptions:
Not Specified
Business Justification:
The primary justification for this requirement is to prevent drivers from causing applications
to stop responding. Additionally, users cannot terminate or restart the applications. Drivers
that cause applications to stop responding are a significant cause of customer
dissatisfaction. A secondary justification for this requirement is to improve the customer
experience by permitting I/O cancellation to occur on demand by a user, through the use of
user interface (UI) elements such as a universal stop button or cancel buttons. This
requirement was introduced in Windows Vista. The requirement adds demands to existing
driver cancellation logic and adds the requirement that drivers support cancelling creation
requests. Drivers that stop responding can lead to sometimes random application and
operating system failures that result in lost customer productivity, lost customer data, and
the need to reboot the computer. Beyond these very serious problems, nonexistent or poor
I/O cancellation support prevents applications from successfully stopping operations
without restarting the application.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
DEVFUND-0013
Device.DevFund.Security
Description:
Additional TDI filter driver and LSP requirements related to security.
Related Requirements:

Device.DevFund.Security.NoTDIFilterAndLSP
Device.DevFund.Security.NoTDIFilterAndLSP
Target Feature: Device.DevFund.Security
Title: No TDI filters or LSPs are installed by the driver or associated software packages during
installation or usage
Applicable OS Versions:
Page 302 of 907




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
There can be no use of TDI filters or LSPs by either kernel mode software or drivers, or user mode
software or drivers.
Exceptions:
Not Specified
Business Justification:
Use of TDI filters and LSPs increase attack surface, and will therefore no longer be supported for
future OS releases.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
Filter-0002
Device.DevFund.Server
Description:
Not Specified
Related Requirements:



Device.DevFund.Server.CommandLineConfigurable
Device.DevFund.Server.MultipleProcessorGroups
Device.DevFund.Server.ServerPowerManagement
Device.DevFund.Server.CommandLineConfigurable
Target Feature: Device.DevFund.Server
Title: Windows Server device drivers which have configurable settings provide command line
utility or function for device and driver management
Applicable OS Versions:




Windows Server 2008 x86
Windows Server 2008 x64
Windows Server 2008 R2 x64
Windows Server 2012
Page 303 of 907
Description:
Windows Server device drivers are required to supply a command-line, scriptable, or answer-filecapable utility or functionality for device and driver management. The following device categories
are included:

Network, including teaming and Infiniband

Storage, including multipath I/O (MPIO)

Bus

Other drivers that may have configurable settings
The specific requirements are the following:

The utility or tool functionality may use Visual Basic Scripting Edition (VBS), PowerShell,
Windows Management Instrumentation (WMI), other functionality that the Windows Server
Core option supports, or a proprietary utility or other menu system that functions in the
Server Core option.

The utility or functionality must operate from the command line or be a WMI object and
provider that is compatible with the Windows Management Instrumentation Command-line
(WMIC) tool.

The utility must be provided as part of the driver package and be installed by default on the
system with the driver.

The utility must be able to correctly query, display, and change any values that can be
changed for the driver.

The utility must not incorrectly create or set options that do not exist for a specific device or
driver. The utility must be capable of changing any setting if the operating system does not
provide the ability to change that setting from the command line.

Changed values or ranges that the user inputs must be automatically checked to ensure that
the user input is valid.

Changes that the utility makes must not require any network or storage stack restarts or
system reboots, unless a boot, system, or paging behavior or location is modified.

Changes that the utility makes are persistent across reboots.

Help about the utility usage and options is available locally on the system. For example, the
utility must provide a "configutil /?" command-line option, or the WMI options for the
product must be exposed through standard WMIC commands.

The utility should not be installed by the information file (INF).

The utility should be installed by default. This can be accomplished by using a co-installer.
Page 304 of 907
This requirement does not apply to storage arrays, storage fabrics, switches, or other devices that
are external to the server system and that can be managed by any system that is attached to the
Ethernet, Fibre Channel, or other network.
This requirement does not apply to printers or any device that does not have configurable settings.
For example, in a system that uses the graphical interface, there are no "Advanced", "Power
Management", or other additional tabs in the Device Manager interface, nor are any utilities
available from the vendor that achieve the same effect.
If vendors provide access to functionality only through graphical tools with no command-line or WMI
access, vendors must provide information to Microsoft about any functionality that is available only
by using graphical tools and is not accessible from the command line or WMI provider. Microsoft
may determine, in its sole and final discretion, whether the exception(s) will be permitted.
This requirement applies to any physical device, or device that has a PCI ID, that has a driver; to any
driver that is in the network, storage, file system or other stacks; and to any device or driver that
otherwise operates at kernel or user mode in the operating system instance on the server.
Exceptions:
Not Specified
Business Justification:
This allows for easy command-line scripting to configure underlying hardware.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2010
DEVFUND-0046
Device.DevFund.Server.MultipleProcessorGroups
Target Feature: Device.DevFund.Server
Title: Drivers must operate correctly on servers that have processors configured into multiple
processor groups
Applicable OS Versions:


Windows Server 2008 R2 x64
Windows Server 2012
Description:
Windows® Server uses the concept of KGROUPs to extend the number of processors that a single
instance of the operating system can support to more than 64. Both enlightened and unenlightened
device drivers must operate correctly in multiple KGROUP configurations.
Design Notes:
Page 305 of 907
For more information, see the “Supporting Systems That Have More Than 64 Processors: Guidelines
for Developers” white paper at the following website:
http://www.microsoft.com/whdc/system/Sysinternals/MoreThan64proc.mspx
This requirement is tested for all server device categories. The test uses BCDEdit functionality to
change the boot configuration database (BCD) of the operating system, thus changing the size of the
processor groups (the groupsize setting) so that multiple processor groups are created. The test also
uses BCDEdit functionality to add the groupaware setting to the BCD. This changes the behavior of
several now-legacy application programming interfaces (APIs) so that the test finds more code
errors.
The operating system will not ship with any of these settings. These settings are for testing only and
will not be supported in production. To reconfigure the system for normal operations, these settings
must be removed from the BCD and the system must be rebooted. The system that is used for
testing must include at least four processor cores.
Vendors may configure the system so that it is similar to the Windows Logo Kit (WLK) and Device
Test Manager (DTM) systems. Vendors can perform their own tests in a multiple processor group
configuration, as follows.
The command lines to add the group settings and reboot the computer are the following:
bcdedit.exe /set groupsize 2
bcdedit.exe /set groupaware on
shutdown.exe -r -t 0 -f
The command lines to remove the group settings and reboot the computer are the following:
bcdedit.exe /deletevalue groupsize
bcdedit.exe /deletevalue groupaware
shutdown.exe -r -t 0 -f
Exceptions:
Not Specified
Business Justification:
This allows the Windows® Server to extend the number of supported processors for a single instance
beyond 64._
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
6/1/2009
Page 306 of 907
Comments:
DEVFUND-0035
Device.DevFund.Server.ServerPowerManagement
Target Feature: Device.DevFund.Server
Title: Windows Server device drivers must support Query Power and Set Power Management
requests
Applicable OS Versions:




Windows Server 2008 x86
Windows Server 2008 x64
Windows Server 2008 R2 x64
Windows Server 2012
Description:
During transition into the hibernation (S4) system sleep state, device drivers receive power requests
from the operating system. In Windows Server 2008, a server is placed into a pseudo-S4 state during
a processor or memory hot replace operation. Device drivers must honor the Query Power and Set
Power requests that are dispatched as part of this operation. Device drivers must queue all I/O
requests during this pseudo-S4 operation.
A device driver must support this pseudo-S4 sleep state by correctly handling the Query Power and
Set Power power management requests. A device driver should never reject a Query Power request.
When a device driver receives an S4 Set Power power management request, the driver must
transition its devices into a D3 device power state and stop all I/O operations. This includes any
direct memory access (DMA) transfers that are currently in progress. When the driver's devices are
in a low power state, interrupts are disabled, and all in-progress I/O operations are halted, the
replace operation can continue without affecting the device driver.
While a driver's devices are in the D3 power state, the device driver must queue any new I/O
requests that the driver receives. A device driver must use an I/O time-out period for the I/O
requests that the driver processes. This time-out period must be long enough so that the I/O
requests will not time out if they are stopped or queued during the replacement of a partition unit.
When the operating system resumes from the pseudo-S4 sleep state, the device driver can resume
processing any stopped or queued I/O requests.
The D3 state may be either D3 Hot, to support devices that must respond to external stimuli, or D3
Cold.
A device driver must not bind itself to a uniquely identifiable instance of system hardware, such as a
specific processor. If this occurs, the driver may fail if the partition unit that contains that hardware
is replaced in the hardware partition.
Design Notes:
Page 307 of 907
For more information, see the Driver Compatibility for Dynamic Hardware Partitioning white paper
at the following website:
http://go.microsoft.com/fwlink/?LinkId=237096
http://www.microsoft.com/whdc/system/platform/server/dhp.mspx
Exceptions:
Not Specified
Business Justification:
This allows for better power management in Server systems.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
9/1/2008
DEVFUND-0042
Device.DevFund.Server.PCI
Description:
PCI
Related Requirements:

Device.DevFund.Server.PCI.PCIAER
Device.DevFund.Server.PCI.PCIAER
Target Feature: Device.DevFund.Server.PCI
Title: Windows Server PCI Express devices are required to support Advanced Error Reporting [AER]
as defined in PCI Express Base Specification version 2.1.
Applicable OS Versions:

Windows Server 2012
Description:
See Tables 6-2, 6-3, 6-4 and 6-5 of the PCI Specification on how errors are detected in hardware, the
default severity of the error, and the expected action taken by the agent which detects the error
with regards to error reporting and logging.
All three methods of error reporting; completion status, error messages, error forwarding\data
poisoning.
Completion status enables the Requester to associate an error with a specific Request.
Page 308 of 907
Error messages indicate if the problem is correctable or not, and fatal or not
Error forwarding\data poisoning can help determine if a particular Switch along the path poisoned
the TLP
The following table lists which errors in section 6.2 are required to be reported:
Type of ErrorsRequired?____Action
ERR_COR (correctable) No action, not logged in Event View, system takes no action
ERR_FATAL (fatal, non-correctable) Yes WHEA handles, logged
ERR_NONFATAL (non-fatal) Yes None
Exceptions:
Not Specified
Business Justification:
This requirement supports Windows Server RAS, which is a key tenet of Windows Server platforms.
Scenarios:
Windows Server RAS
Success Metric: Pass/Fail
Enforcement Date:
Comments:
1/1/2012
Not Specified
Device.DevFund.Server.StaticTools
Description:
Not Specified
Related Requirements:

Device.DevFund.Server.StaticTools.SDVandPFD
Device.DevFund.Server.StaticTools.SDVandPFD
Target Feature: Device.DevFund.Server.StaticTools
Title: Driver Development includes static analysis to improve reliability using Static Driver Verifier
(SDV) and Prefast for Drivers (PFD)
Applicable OS Versions:

Windows Server 2012
Description:
Page 309 of 907
Server driver development must include log files for Static Driver Verifier (SDV) and Prefast for
Drivers (PFD). Because these tools may produce false errors, you need only submit the logs rather
than provide logs which are fully passing.
This requirement is limited to storage, networking, and unclassified drivers only.
Design Notes:
Microsoft's Static Analysis Tools, namely, Prefast for Drivers (PFD) and Static Driver Verifier (SDV)
have been found to be highly effective in improving driver reliability by identifying coding issues that
would be otherwise difficult to find. Because PFD may produce false errors or warnings, you must fix
only those errors and warnings that you deem to be true problems with your driver code.
The results file will be captured by the Windows Logo Hardware Certification Kit for inclusion in the
submission package.
Note that there is no requirement that the submitted and subsequently distributed binary be
compiled using Microsoft Windows Device Kit or other tools.
It is highly recommended that you fix errors and warnings that might be determined to indicate true
problems with your driver code.
Exceptions:
Drivers that are not storage, networking, or unclassified are not required to meet this requirement.
Business Justification:
SDV and PFD provide driver analysis that ensures driver reliability and a stable system for end users.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.Digitizer.Base
Description:
Base for Digitizers
Related Requirements:


Device.Digitizer.Base.DigitizersAppearAsHID
Device.Digitizer.Base.HighQualityDigitizerInput
Device.Digitizer.Base.DigitizersAppearAsHID
Target Feature: Device.Digitizer.Base
Page 310 of 907
Title:
Digitizers appear to the Windows operating system as human interface device (HID) devices
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
Digitizers must not report themselves as a mouse or other proprietary device. In the USB human
interface device (HID) usage tables specification, this identification consists of the digitizer page and
the usage ID to specify the collection application for pen and touch screens.
Exceptions:
Not Specified
Business Justification:
Windows pen and touch features are not available to devices that are not identified as HID digitizers.
Scenarios:
Windows Pen and Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 2
Device.Digitizer.Base.HighQualityDigitizerInput
Target Feature: Device.Digitizer.Base
Title:
Digitizers must provide a high-quality input experience
Applicable OS Versions:


Windows 7 Client x86
Windows 7 Client x64
Description:
For devices that support pen or touch input, a pen or touch device must appear to Windows as a
human interface device (HID) pen or touch device, respectively. If the device appears a mouse, pen
and touch features will not be enabled, and the mouse input requirements will apply.
Pen digitizer requirements are as follows:

Pen digitizers must appear to the operating system as HID pen digitizers and not as mouse or
other proprietary devices.

Sample rate must be at least 100 Hertz.
Page 311 of 907

Resolution must be at least 600 pixels per inch and at least five times the display resolution.

While hovering within 5 millimeters, the pen's position and the position that the device
reports must be within 2 millimeters of each other. This accuracy requirement applies
whether the input is stationary or in motion.

The physical contact with the device and the contact position that the device reports must
be within 2 millimeters of each other. This accuracy requirement applies whether the input
is stationary or in motion.
Touch digitizer requirements are as follows:

Touch digitizers must appear to the operating system as HID touch digitizers and not as
mouse or other proprietary devices.

Sample rate must be at least 100 Hertz.

Resolution must be at least 200 pixels per inch and at least matching the display resolution.

In terms of jitter, if a contact is stationary, the reported position data must not change.

In terms of contact accuracy, tracing a line, circle, or other predetermined pattern should
produce data that is within 0.5 millimeters of the expected data pattern. The pattern may be
offset as a whole in accordance with the following contact-offset requirement.

The physical contact with the device and the contact position that the device reports must
be within 2 millimeters of each other. This requirement applies whether the input is
stationary or in motion.
Note that we encourage performing linearity calibration before running the pen and touch tests. For
more information, see the section about linearity calibration in the OEM Preinstallation Kit
(Windows OPK) documentation. For resistive touch digitizers, we recommend optimizing for the
touch experience: 80 grams-force spacers provide a good experience.
Exceptions:
Not Specified
Business Justification:
Maintains a high quality digitizer input experience.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
INPUT-0001v5
Device.Digitizer.Pen
Description:
Page 312 of 907
Feature for Pen based Digitizers
Related Requirements:





Device.Digitizer.Pen.100HzSampleRate
Device.Digitizer.Pen.ContactAccuracy
Device.Digitizer.Pen.HoverAccuracy
Device.Digitizer.Pen.PenRange
Device.Digitizer.Pen.PenResolution
Device.Digitizer.Pen.100HzSampleRate
Target Feature: Device.Digitizer.Pen
Title:
100Hz Sample Rate
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
The pen digitizer will have a sample rate of at least 100Hz.
Exceptions:
Not Specified
Business Justification:
A high packet rate promotes high performance, perceived responsiveness of the system, and data
integrity for contacts in fast motion.
Scenarios:
Pen
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Port of Win7 pen requirement
Device.Digitizer.Pen.ContactAccuracy
Target Feature: Device.Digitizer.Pen
Title:
Pen contact accuracy
Applicable OS Versions:

Windows 8 Client x86
Page 313 of 907


Windows 8 Client x64
Windows RT
Description:
The physical contact with the device and the contact position the device reports must be within 2
millimeters of each other. This applies whether the input is stationary or in motion.
Exceptions:
Not Specified
Business Justification:
Supports expected location of pen input in relation to physical input position.
Scenarios:
Pen
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Port of Win7 pen requirement
Device.Digitizer.Pen.HoverAccuracy
Target Feature: Device.Digitizer.Pen
Title:
Pen hover accuracy
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
While hovering within 5 millimeters, the pen's position and the position the device reports must be
within 2 millimeters of each other. This applies whether the input is stationary or in motion.
Exceptions:
Not Specified
Business Justification:
Supports precise and user predictable experience of cursor movement.
Scenarios:
Pen
Success Metric: Not Specified
Enforcement Date:
Windows RC
Page 314 of 907
Comments:
Port of Win7 pen requirement
Device.Digitizer.Pen.PenRange
Target Feature: Device.Digitizer.Pen
Title:
hand
The pen digitizer must prevent false recognition of touch gestures from the non-interactive
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
The pen digitizer must report that the pen is within range when it is 10 millimeters away from the
screen. X and Y coordinates are not required to be reported at 10 millimeters.
Exceptions:
Not Specified
Business Justification:
Many user scenarios for touch machines include the use of pen, especially for text input while
resting their writing hand on the screen.
Scenarios:
Windows Pen
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 15
Device.Digitizer.Pen.PenResolution
Target Feature: Device.Digitizer.Pen
Title:
Pen digitizer resolution
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
The pen digitizer resolution must be at least 150 pixels per inch and equal to the native display
resolution or greater.
Page 315 of 907
Exceptions:
Not Specified
Business Justification:
To enable optimal pen usage experience and accuracy.
Scenarios:
Pen
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Port of Win7 pen requirement
Device.Digitizer.Touch
Description:
Windows Touch interface for digitizer devices.
Related Requirements:


















Device.Digitizer.Touch.5TouchPointMinimum
Device.Digitizer.Touch.Bezel
Device.Digitizer.Touch.DigitizerConnectsOverUSBOrI2C
Device.Digitizer.Touch.DigitizerJitter
Device.Digitizer.Touch.ExtraInputBehavior
Device.Digitizer.Touch.FieldFirmwareUpdatable
Device.Digitizer.Touch.HIDCompliantFirmware
Device.Digitizer.Touch.HighQualityTouchDigitizerInput
Device.Digitizer.Touch.HighResolutionTimeStamp
Device.Digitizer.Touch.InputSeparation
Device.Digitizer.Touch.NoiseSuppression
Device.Digitizer.Touch.PhysicalDimension
Device.Digitizer.Touch.PhysicalInputPosition
Device.Digitizer.Touch.PowerStates
Device.Digitizer.Touch.ReportingRate
Device.Digitizer.Touch.ResponseLatency
Device.Digitizer.Touch.TouchResolution
Device.Digitizer.Touch.ZAxisAllowance
Device.Digitizer.Touch.5TouchPointMinimum
Target Feature: Device.Digitizer.Touch
Title:
Touch digitizer supports a minimum of five simultaneous touch inputs
Page 316 of 907
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
The touch digitizer must support a minimum of five simultaneous touch inputs. This applies to all
touchable areas, including edges and corners.
Exceptions:
Not Specified
Business Justification:
This requirement will lead to a good touch experience.
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 1
Device.Digitizer.Touch.Bezel
Target Feature: Device.Digitizer.Touch
Title:
Touch digitizer edges must be easily touched
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
Any bezel and or border that surround the display must not interfere with the user’s ability to
interact with the edges of the user interface.
Tablet Form Factor Devices and Systems
Tablet device display surfaces must be flush, forming an even and smooth surface with any bezel and
or borders to allow for edge-to-edge consistency across the device's surface. Raised or inconsistent
edges, along the display, will interfere with user swipe interactions and other user interface
navigation along the display edges.
Non-tablet Form Factor Devices and Systems
Page 317 of 907
Non-tablet devices may include a minimal z-height in the bezel to allow for touch sensors. To
compensate for the bezel z-height, a consistent 20 millimeter border, surrounding the display area,
must be allocated to allow for uninterrupted user interactions. The boundary between border and
display areas must be flush, forming an even and smooth surface. Non-tablet devices which provide
a flush display surface from edge-to-edge will not be required to include a 20 millimeter wide border
area.
The bezel, border and display areas are defined as:

Bezel area: Outer most area sounding the border and display areas. Often the bezel consists
of the case material of the display or system. The bezel area is a non-active area for touch
input. Please refer to System.Client.Tablet.BezelWidth for specific Tablet form factor only
requirements.

Border area: Area between the bezel and display areas. The border area is an indirectly
active area where a user's finger will interact along the display areas edge. Border areas may
be included on tablet or non-tablet form factors.
Display area: Inner most area surrounded by the border area. The display area is the active area for
display output and touch input.
Exceptions:
Not Specified
Business Justification:
The end user must be able to access all touchable parts of the user interface or an
application. _
Scenarios:
Ensures the end user's ability to interact with the edges of the screen.
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.Digitizer.Touch.DigitizerConnectsOverUSBOrI2C
Target Feature: Device.Digitizer.Touch
Title:
Digitizer connects over USB or I2C
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Page 318 of 907
Description:
The digitizer must connect to the system over a USB or I2C bus. These buses support the descriptor
for the human interface device (HID) or digitizer according to the Human Interface Design Protocol
for USB.
Exceptions:
Not Specified
Business Justification:
To ensure consistent and tested platform.
Scenarios:
Windows Touch
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Touch 3; Update
Device.Digitizer.Touch.DigitizerJitter
Target Feature: Device.Digitizer.Touch
Title:
Digitizer's jitter is a maximum of 1 millimeter over 10 millimeters of travel
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
Non-stationary touch inputs must not:

Exhibit input jitter which exceeds a maximum of 1 millimeter of jitter over 10 millimeters of
travel

Report duplicate packets for inputs

Report jitter in the direction opposite of the direction of travel
Stationary touch inputs must produce 0 millimeters of jitter while they are held.
For both non-stationary and stationary inputs there must not be any loss, introduction, or swapping
of the reported inputs.
Exceptions:
Not Specified
Business Justification:
Page 319 of 907
Windows can incorrectly recognize the interaction as a drag or other movement. This problem
causes users to feel frustrated and to perceive the system as untrustworthy. Correctly reporting the
integrity of contact during motion is important.
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 7
Device.Digitizer.Touch.ExtraInputBehavior
Target Feature: Device.Digitizer.Touch
Title:
Digitizers do not report inputs greater than maximum
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
If the digitizer supports n simultaneous touch inputs (Where 'n' is the maximum number of
supported touch inputs reported through HID), the first n inputs remain valid while additional inputs
up to 5 must be ignored. If more than n+5 inputs are placed on the screen and accurate tracking of
the original n inputs cannot be guaranteed, then it is strongly recommended to stop tracking all
inputs including n+5.
Exceptions:
Not Specified
Business Justification:
This requirement promotes a good end user experience.
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 4; Updated
Device.Digitizer.Touch.FieldFirmwareUpdatable
Target Feature: Device.Digitizer.Touch
Page 320 of 907
Title:
Touch Digitizer firmware must be field updatable by customer
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows RT
Description:
Touch digitizer firmware binaries must be updateable by the customer in the field.
Exceptions:
Not Specified
Business Justification:
Allows the customer to be able to update the touch digitizer firmware when updates are made
available.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
New
Device.Digitizer.Touch.HIDCompliantFirmware
Target Feature: Device.Digitizer.Touch
Title: Touch digitizer firmware is human interface device (HID) compliant and does not require
additional driver installation.
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
Proper human interface device (HID) compliant firmware will not require any additional driver
installation.
For more information on implementation, see http://go.microsoft.com/fwlink/p/?LinkId=226808
Exceptions:
Not Specified
Business Justification:
Compatibility with Windows.
Page 321 of 907
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 13; Update
Device.Digitizer.Touch.HighQualityTouchDigitizerInput
Target Feature: Device.Digitizer.Touch
Title:
Windows Touch digitizers must provide a high-quality input experience
Applicable OS Versions:


Windows 7 Client x86
Windows 7 Client x64
Description:
Input requirements apply to all touchable areas, including edges and corners, and will be tested over
a regular distribution of points and patterns that cover the entire surface. For battery-operated
devices, the requirements must be met whether the device is running on AC or battery power. The
Windows Touch logo program is available for multi-touch digitizers that have a screen size of 30
inches or smaller. Multi-touch digitizers that are greater than 30 inches can obtain a signed driver
through the unclassified category.

Multi-touch digitizers must appear to the operating system as human interface device (HID)
digitizers, and not as mouse or other proprietary devices.

Sample rate must be at least 50 Hertz per finger.

Resolution must be at least 25 pixels per inch and at least matching the display resolution.

In terms of jitter, for all fingers, if a contact is stationary, the reported position data must not
change.

No data must be reported for locations where contact is not made.

In terms of contact accuracy, the following requirements must be met on all corners of the
screen and at least 95 percent of points and patterns tested.
For a single touch on a stationary contact point, the contact position reported must be within 2.5
millimeters of the target point. For a single touch that traces a line, circle, or other predetermined
pattern, the contact data reported must be within 2.5 millimeters of the target pattern, with an
offset from the pattern that varies no more than 1 millimeter for every 10 millimeters of travel, and
without interruption to the pattern.
Page 322 of 907
For additional touches on a stationary contact point, the contact position reported must be within 5
millimeters of the target point. For additional touches that trace a line, circle, or other
predetermined pattern, the contact data reported must be within 5 millimeters of the target
pattern, with an offset from the pattern that varies no more than 2 millimeters for every 10
millimeters of travel, and without interruption to the pattern.
Definitions are as follows:

Pixels per inch. Calculation of sqrt(x^2 + y^2)/diagonal screen size in inches, where x is the
number of pixels on the horizontal axis and y is the number of pixels on the vertical axis.

Target point. The location targeted on the screen. For a target point that is smaller than the
area of contact, the digitizer should determine which part of the contact area should be
reported, such as the geometric center of the area or the point of greatest pressure.
Microsoft tests will be conducted via the geometric center of the contact area of a typical
finger (or rounded stylus) that is at least 12.5 millimeters in diameter. Calibration should
occur before logo testing for certification.

Single touch. A touch made when no other contact is present on the screen.

Additional touches. One or more touches made when a contact is already present on the
screen, or multiple touches placed simultaneously on the screen.
The Windows Touch logo program is a full test. Independent Hardware Vendors (IHVs) must submit
hardware to the Windows Touch Test Lab for manual verification. For more information about the
Windows Touch Test Lab, go to
http://www.microsoft.com/whdc/device/input/WindowsTouch_Test-Lab.mspx.
Manufacturers should contact their account manager for copies of the OEM Preinstallation Kit
(Windows OPK) guidelines. A white paper that provides guidance on HID pen and touch digitizer
drivers can be found at http://www.microsoft.com/whdc/device/input/PEN_touch.mspx.
Exceptions:
Not Specified
Business Justification:
Ensures a high-quality touch input experience on Win7.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
INPUT-0046v8
Device.Digitizer.Touch.HighResolutionTimeStamp
Target Feature: Device.Digitizer.Touch
Page 323 of 907
Title:
High resolution time stamp
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
One per frame, snapped in association to the frame sample time and not any other time in another
stage of the pipeline—for example, taking the time the scan started rather than when the packet is
produced or transmitted.
The time stamp can be taken at the beginning or end of the frame, but the setting should remain
consistent. There is no need to synchronize it to any definition of absolute time. Use rollover for the
time stamp, so there is no need to reset to zero.
Timestamp should be 100 µs units/resolution and be provided to the OS in a 16-bit (2 byte) field in
the HID report
At any instance, allowable clock drift +/- 5% across standard operating temperatures (+25°C to +
85°C)
Exceptions:
Not Specified
Business Justification:
If a higher-resolution time stamp is available to determine exactly when the data was sampled
(which equals the exact time when the finger was touching the reported coordinate of the screen),
for example, the gesture recognition can calculate to better determine the intended gesture
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
New
Device.Digitizer.Touch.InputSeparation
Target Feature: Device.Digitizer.Touch
Title:
Input Separation
Applicable OS Versions:


Windows 8 Client x86
Windows 8 Client x64
Page 324 of 907

Windows RT
Description:
Distance is measured to center of input and with inputs of 9 millimeters in size.
Converging/Diverging zoom interactions must meet at 12 millimeters or less separation for
horizontal and vertical, and 15 millimeters or less for diagonal.
Interactions:



Zoom diverging and converging 2-finger:

Starting contact position is vertical or horizontal: start at 12mm or less

Starting contact position is diagonal: start at 15mm or less
Tap (2-finger, 3-finger, 4-finger):

Contact position is horizontal or vertical: tap with contacts 12mm apart or less

Contact position is diagonal: tap with contacts 15mm apart or less
Swipe - parallel movement (2-finger, 3-finger, 4-finger; up, down, left, right):

Contact position is horizontal or vertical: swipe with contacts 12mm apart or less

Contact position is diagonal: swipe with contacts 15mm apart or less
Exceptions:
Not Specified
Business Justification:
Offers a better end user experience.
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 10; Updated
Device.Digitizer.Touch.NoiseSuppression
Target Feature: Device.Digitizer.Touch
Title:
The touch digitizer does not report data for locations where touch input is not made
Applicable OS Versions:


Windows 8 Client x86
Windows 8 Client x64
Page 325 of 907

Windows RT
Description:
The touch digitizer will not report data (Phantom/Ghost contacts) for locations where touch input is
not made. This applies for both when the system is actively receiving user input and when it is not
receiving user input.
Exceptions:
Not Specified
Business Justification:
This guideline promotes an optimal end user experience.
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 8
Device.Digitizer.Touch.PhysicalDimension
Target Feature: Device.Digitizer.Touch
Title:
Touch digitizer reports physical dimensions
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
The touch digitizer must report dimensions to the OS which match the visible active size of the
display. Reported dimensions can be less than the physical dimensions in cases where the touch
digitizer extends beyond the display and bezel into non-visible space. Touch digitizer dimensions will
be reported via the Physical Dimensions property.
Exceptions:
Not Specified
Business Justification:
Inaccurate information about the physical dimensions can affect the ability of Windows Touch to
accurately recognize gestures.
Scenarios:
Windows Touch
Page 326 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 16; Updated
Device.Digitizer.Touch.PhysicalInputPosition
Target Feature: Device.Digitizer.Touch
Title:
Digitizer reports physical contact with the device and the contact position
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
The touch digitizer reports all inputs within plus or minus 1 millimeter of the center of the physical
input for all touchable areas.
All pixels on the screen must be touchable, including edges and corners.
For additional details on verification and testing of this requirement please see
http://go.microsoft.com/fwlink/?LinkID=234575
Exceptions:
Not Specified
Business Justification:
Minimal offset between the actual and reported points of contact is a primary factor in the real and
perceived accuracy of the system.
Scenarios:
Windows Touch
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Touch 14; Update
Device.Digitizer.Touch.PowerStates
Target Feature: Device.Digitizer.Touch
Title:
Off
The touch controller is required to implement three different power states: Active, Idle, and
Applicable OS Versions:

Windows 8 Client x86
Page 327 of 907


Windows 8 Client x64
Windows RT
Description:
The touch controller is required to implement three different power states:
Active – The state where the touch controller is fully powered and functioning per device
requirements.
Idle – The state transitioned to from 'Active' when the touch controller has not received input for a
specified period of time. Idle timeout is fixed at 5 seconds (by the OS) when connected via USB due
to selective suspend requirements/implementation, and shall be fixed at 300 seconds by the touch
controller when connected via I2C.
Off – The state where the touch controller is powered down
Exceptions:
Not Specified
Business Justification:
This guideline promotes better battery life and power consumption regardless of form factor._
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 12; Update
Device.Digitizer.Touch.ReportingRate
Target Feature: Device.Digitizer.Touch
Title:
100 Hertz minimum reporting rate for all touch inputs
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
When in an active power state, the touch digitizer reporting rate must be maintained at a minimum
of 100 Hertz for all touch inputs reported through HID, for both stationary and non-stationary inputs.
All reports must be uniquely sampled.
Exceptions:
Not Specified
Page 328 of 907
Business Justification:
A high packet rate promotes high performance, perceived responsiveness of the system, and data
integrity for contacts in fast motion.
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Touch 9
Device.Digitizer.Touch.ResponseLatency
Target Feature: Device.Digitizer.Touch
Title:
Digitizer response latency for idle and active states
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
The touch digitizer must have response latency from an active state that is not greater than 25
milliseconds for the initial input. The touch digitizer must have response latency from an idle state
that is not greater than 50 milliseconds for the initial input. Both Active and Idle are internal power
state of the touch controller. The response latency for subsequent contacts in an active state should
not be greater than 15 milliseconds. Response latency will be measured as the time when the input
touches the screen to the time when the Windows operating system receives the data from the
hardware.
Exceptions:
Not Specified
Business Justification:
This guideline promotes a better end user experience.
Scenarios:
Windows Touch
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows RC
Touch 11; Updated
Page 329 of 907
Device.Digitizer.Touch.TouchResolution
Target Feature: Device.Digitizer.Touch
Title:
Touch digitizer resolution equals native display resolution or greater
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
At a minimum, the touch digitizer resolution will be equal the native display resolution or greater.
Every pixel of the display in an integrated touch digitizer is required to be accessible to touch input.
Every pixel includes pixels on the edges and in the corners of the display.
For additional details on verification and testing of this requirement please see
http://go.microsoft.com/fwlink/?LinkID=234575
Exceptions:
Not Specified
Business Justification:
Pixel level resolution is important for graphical applications.
Scenarios:
Windows Touch
Success Metric: Pass\Fail
Enforcement Date:
Comments:
Windows RC
Touch 6
Device.Digitizer.Touch.ZAxisAllowance
Target Feature: Device.Digitizer.Touch
Title:
Maximum z-axis allowance for touch detection
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
The maximum allowed z-axis for touch detection is 0.5 millimeters. Where possible, a user's input
should make physical contact with the screen before a touch input is registered.
Page 330 of 907
Exceptions:
Not Specified
Business Justification:
Ensures no accidental contacts of the screen are made while the user is navigating.
Scenarios:
Windows Touch
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
New
Device.Display.Monitor
Description:
Not Specified
Related Requirements:






Device.Display.Monitor.Base
Device.Display.Monitor.ColorimetricTolerance
Device.Display.Monitor.DigitalLinkProtection
Device.Display.Monitor.EDID
Device.Display.Monitor.Modes
Device.Display.Monitor.Stereoscopic3DModes
Device.Display.Monitor.Base
Target Feature: Device.Display.Monitor
Title:
Base requirements for displays to ensure good end user experience
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
All connectors on the monitor must be set to a mode which will not apply CE style overscan or
underscan by default. It is ok for the monitor to provide an option to allow the user to configure
overscan/underscan using a On screen display.
Page 331 of 907
All video displays that provide a HDMI connector, must support the ITC flag as defined in the HDMI
specification.
All digital displays are required to have a single HPD signal transition from low to high on device
connection and power up. Periodic toggling of HPD signal after connection or power up is not
allowed.
Multiple transition lead source to notify the OS of multiple device arrival and removal event; causing
undesirable mode set flashing.
Exceptions:
Not Specified
Business Justification:
When users connect a PC to a display, sometimes the start menu or a portion of the desktop might
not be visible or the desktop looks shrunk with black borders around it. Therefore the display must
not perform overscan/underscan unless the user specifically requests it. If the ITC flag (as defined in
the HDMI specification) is set over HDMI, then the display knows that it is connected to a PC and
must not apply overscan/underscan compensation. Hence displays that provide a HDMI connector
must support the ITC flag to ensure the entire image fits on the screen. Displays must not do scaling
since it impacts the readability of text.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.Display.Monitor.ColorimetricTolerance
Target Feature: Device.Display.Monitor
Title: Computer display devices can accurately render colors after being calibrated, to within
certain colorimetric error tolerances.
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Description:
All computer displays must meet the following colorimetric measurement requirements:
Page 332 of 907
1. Maximum luminance level greater than or equal to 75cd/m2
2. Average 1994 Delta E less than or equal to 20 for the set of 32 colors specified by IEC
61966-4 (Section 11 for Inter-Channel Dependency)
In addition to the requirements for all displays, standalone or desktop displays must meet the
following measurement requirements:
1. Average 1994 Delta E less than or equal to 10 for the desktop set of common
colors specified by the Windows Color Quality Test Kit
2. Maximum 1994 Delta E less than or equal to 15 for the desktop set of common
colors specified by the Windows Color Quality Test Kit
In addition to the requirements for all displays, integrated or notebook displays must meet the
following measurement requirements:
1. Average 1994 Delta E less than or equal to 10 for the notebook set of common
colors specified by the Windows Color Quality Test Kit.
2. Maximum 1994 Delta E less than or equal to 15 for the notebook set of common
colors specified by the Windows Color Quality Test Kit
Design Notes:
1. Before performing measurements, the display can be calibrated or characterized (or
both) using an ICC device color profile, or the default sRGB color profile may be
used. This means that the device’s default state (i.e. the “out of the box” settings for
contrast, brightness, color temperature, etc.) may not meet the Windows color
fidelity requirements.
2. Notebook LCDs are expected to meet these values when the system is running on AC
power, not DC (battery) power.
Reference Specifications:

IEC 61966-4 Multimedia Systems and Equipment - Colour Measurement and Management Part 4: Equipment using liquid crystal display panels.
http://webstore.iec.ch/webstore/webstore.nsf/artnum/025978

Windows Color Quality Test Kit: http://www.microsoft.com/whdc/archive/colortest.mspx
Note:
Exceptions:
This requirement does NOT apply to projectors. A separate Color Fidelity requirement targeted
specifically to projectors may be introduced in the future but currently there is no such Logo
requirement.
Business Justification:
Page 333 of 907
Consumers expect computer displays to produce accurate, consistent colors: the “red” in an image
will not appear orange or pink or suffer from poor brightness or saturation. Faithfully reproducing
colors in digital media content is necessary to enable important computing experiences such as
digital photography, video, printing and online commerce. Compliance with the Windows color
fidelity requirements will ensure a reasonable level of color accuracy and consistency to meet user's
expectations. These requirements were developed in collaboration with leading industry LCD
vendors in 2001 and take into account limitations in LCD technology._
Scenarios:
Users viewing digital images see colors that are reasonably consistent between different displays
and computers, and also are representative of the original materials. They can assume that people
viewing the images on different computers will have experiences that are similar to their own. Users
are able to view the contents of their computer displays in common indoor lighting conditions.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
This was the Win7 Display-0069 requirement
Device.Display.Monitor.DigitalLinkProtection
Target Feature: Device.Display.Monitor
Title: Display monitors that support digital inputs must support digital link protection on all digital
inputs
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Displays with digital inputs, such as Digital Visual Interface (DVI), High-Definition Multimedia
Interface, (HDMI), DisplayPort, etc.. must support a digital monitor link protection mechanism such
as High-bandwidth Digital Content Protection (HDCP).
Exceptions:
Not Specified
Business Justification:
Digital link protection mechanisms such as High-Bandwidth Digital Content Protection (HDCP) are
utilized to protect premium digital content sent over digital connectors from a source to a display
monitor. Hence media playback applications will attempt to turn on HDCP if it is not already on. If
Page 334 of 907
HDCP fails, then the application may choose to not play the content, or constrict the content. As of
Jan 2009, even DVD playback requires HDCP when playing on digital connectors.
Scenarios:
Playback of premium Blu-Ray content using 3rd party media playback applications; Playback of DRM
protected content; Protected DVD playback using media playback applications like Windows Media
Player.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
This was the Win7 Display-0099 requirement.
Device.Display.Monitor.EDID
Target Feature: Device.Display.Monitor
Title:
Display device implements the EDID data structure
Applicable OS Versions:







Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
The monitor must transmit an EDID structure that contains all required fields, as defined in VESA
Enhanced Extended Display Identification Data Standard (E-EDID), Release A, Section 3. This EDID
must also contain a unique Manufacturer Name, Product code ID and Serial Number. (Serial number
is not required for an integrated panel on a mobile or all in one system.)
For analog CRTs, EDID content must indicate at least one VESA mode at 75 Hz or higher for each
supported resolution.
All monitors must support E-EDID by implementing an EDID 1.3 or later data structure that:

Includes timing data for the preferred display mode in Timing #1.
o
For an LCD or other fixed-format display, this display mode is the native,
progressively scanned mode of the panel.
Page 335 of 907
o
For other display types, this is the optimal, progressively scanned display mode,
which is based on the size and capabilities of the device and must meet the
requirements for refresh rates defined above.

Implements the screen size or aspect ratio fields, bytes 0x15 and 0x16 per the supported
EDID version with accurate dimensions.

Sets byte 0x18, Bit 1 to indicate that the preferred mode meaning per the supported EDID
version.

Includes a unique serial number in at least one of the ID Serial Number field or a Display
Product Serial Number string in one of the base block 18 byte descriptors.

Implements a Display Product Name string in one of the base block 18 byte descriptors,
optional for an integrated panel. This string must be suitable for user interface usage.

Implements a Display Range Limits in one of the base block 18 byte descriptors, unless the
device is a Non-Continuous Frequency (multi-mode) display.
Mobile and other all-in-one systems must transmit an EDID structure in one of three ways:

LCD panel provides one, which is similar to an externally attached monitor.

If the LCD panel does not provide one, then the WDDM miniport is responsible for defining
and providing it to the operating system.

The WDDM driver may execute the ACPI _DDC method on the child device associated with
the internal panel to retrieve an EDID from the system BIOS.
Display devices which implement features such as more than 8 bits per primary color must use EDID
1.4 in order to ensure these capabilities can be expressed to the OS and applications.
Design Notes:
The ACPI specification defines the method to acquire the EDID from the BIOS to achieve equivalent
functionality as specified in ACPI 2.0b, Appendix B, or later.
Exceptions:
Not Specified
Business Justification:
LCD panels only support one native resolution. All other resolutions need to be scaled to be
displayed on the panel. Therefore LCD panels provide the user with the best experience (text and
video playback) when the display is set to its native resolution. Especially for clarity of text, Windows
has implemented specific features like ClearType and High DPI.
Scenarios:
Windows installation:
A User powers up the system for the first time;
Page 336 of 907
Windows automatically detects all the display devices connected to the system and sets them to
their native resolution.
Monitor Plug:
A User connects a display device to the system. Windows automatically detects the new display
device and sets the native resolution
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
This was the Win7 Display-0111 requirement that became effective June 1, 2010 and replaces
Display-0065
Device.Display.Monitor.Modes
Target Feature: Device.Display.Monitor
Title:
Requirement for resolution support for Display Devices
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
A display device can have multiple connectors. The following are the required modes that a display
must support on each connector and indicate the support via the EDID (a display is free to support
additional modes and call them out in the EDID as well)
For an integrated panel:
The native resolution of the panel must be greater than or equal to 1024 x 768. The native resolution
must be supported at 60 Hz progressive or greater or the closest frequency appropriate for the
region.
For HD15, DVI, HDMI and DisplayPort connector:
The native resolution of the panel must be greater than or equal to 1024 x 768. The native resolution
must be supported at 60 Hz progressive or greater or the closest frequency appropriate for the
region.
Page 337 of 907
The following modes must be supported by the display and included in the Established timings in the
EDID

640 x 480 at 60 Hz progressive (Byte 23h, bit 5 in the Established timing)

800 x 600 at 60 Hz progressive (Byte 23h, bit 0 in the Established timing)

1024 x 768 at 60 Hz progressive (Byte 24h, bit 3 in the Established timing)
These modes can be supported as full screen or centered
For all other connectors like S-Video, Component, and Composite:
The connector must support the maximum allowable mode as defined in the specification of the
standard.
Exceptions:
Not Specified
Business Justification:

Windows UI looks the best on a display that is running at its native resolution. The reason for
this is that the pixels are displayed on the screen with no scaling. Also advanced
technologies like ClearType are able to operate at a sub pixel level to optimize the clarity of
the text. Therefore it is critical for a display to support its native mode.

On Windows 8, on an integrated panel, Windows will always use the native mode for all
scenarios. Therefore it is not necessary for the integrated panel to support other modes.

On Windows 8, running on a WDDM 1.0 or WDDM 1.1 driver, Windows uses the 640 x 480
mode for displaying the bug check screen.

On Windows 8, the default mode used by the Basic Display driver on an external monitor is
1024 x 768. This is because many legacy BIOS can most reliably set this mode.

Windows UI is optimized to run on modes that are 1024 x 768 and greater. Therefore it is
critical that each display device supports this mode because it would give the user the
opportunity to select it at a later time
Scenarios:


Integrated Display:
o
User powers up a Windows 8 machine.
o
The firmware (BIOS/UEFI) sets the native mode according to
the System.Fundamentals.Firmware.UEFI.Display requirement before Windows is
running
o
Windows starts and continues running at the native mode of the panel
External Display:
Page 338 of 907

o
User powers up a Windows 8 machine with an external monitor connected
o
Windows will use the WDDM 1.2 driver to set the display to its native mode
Running the Microsoft Basic Display Driver
o
User is running a Windows 8 machine that is running the Microsoft Basic Display
driver
o
By default, Windows will set a 1024 x 768 mode
o
However, the user may select a higher mode by using the Display Control Panel
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Display.Monitor.Stereoscopic3DModes
Target Feature: Device.Display.Monitor
Title: A Stereo 3D External Display or Internal Mobile Panel must support a Stereo mode
equivalent to its native or preferred resolution.
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
The native or preferred resolution of the Stereo 3D Display must have an equivalent Stereo mode.
The native or preferred resolution of the Display is exposed through its EDID.
Example: If the native resolution of the Stereo 3D Display is 1920 x 1200 in Mono, then it must also
support the same native resolution in the Stereo mode.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary for a good quality of experience for running Stereo applications in
Windows. Windows will switch to Stereo mode when the user launches a Stereo application. Having
a stereo resolution equivalent to the native resolution in mono mode will ensure that there is no
mode change failure when the user launches a windowed mode or full-screen Stereo application. If
the Stereo 3D Display does not support a Stereo equivalent of the native resolution, then the user
will be unable to run the stereo application unless a different resolution is selected manually from
the Screen Resolution display applet.
Page 339 of 907
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.AdapterBase
Description:
The Base feature set required by all graphic devices.
Related Requirements:





Device.Graphics.AdapterBase.ApplicationVerifier
Device.Graphics.AdapterBase.DriverVersion
Device.Graphics.AdapterBase.PowerManagementCompliance
Device.Graphics.AdapterBase.RegistryEntries
Device.Graphics.AdapterBase.SubsystemResettable
Device.Graphics.AdapterBase.ApplicationVerifier
Target Feature: Device.Graphics.AdapterBase
Title:
Graphics driver components comply with Application Verifier test criteria
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
All user-mode modules (.dll or .exe files) that are part of a graphics driver must satisfy the test
criteria for Application Verifier tests. During testing of the driver Application Verifier must be turned
on for processes where the driver modules are executing. Application Verifier will cause a break
when an error is detected.
For graphics drivers, AppVerifier is required for critical executables (i.e. DWM.exe as an example)
used to test stability or robustness of the graphics driver.
In addition, Application Verifier must be enabled on IHV's control panel executable as part of this
requirement
Page 340 of 907
These Application Verifier tests must be turned on for the processes during testing:

com

exceptions

handles

heaps

inputoutput

leak

locks

memory

rpc

threadpool

tls

hangs
Exceptions:
Not Specified
Business Justification:
WDDM display drivers have user mode components. App Verifier increases robustness of the user
mode components by looking for memory corruption, leaks, and general API misuse. This improves
overall driver stability and therefore stability of the platform.
Scenarios:
Scenarios involve long-haul machine use, where even an infrequent random hang or crash would be
very disruptive.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
This was Win7 Graphics-0075 requirement
Device.Graphics.AdapterBase.DriverVersion
Target Feature: Device.Graphics.AdapterBase
Title:
Driver DLL for graphic adapter or chipset has properly formatted file version
Applicable OS Versions:
Page 341 of 907







Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
The file version of the graphic driver DLLs (UMD, KMD) and .SYS files must match each other and
must be of the form:
A.BB.CC.DDDD

The A field must be set to 9 for WDDM 1.2 drivers on Windows 8.

The A field must be set to 8 for WDDM 1.1 drivers on Windows 7.

The A field must be set to 7 for WDDM 1.0 drivers on Windows Vista.

The A field must be set to 6 for XDDM drivers on Windows Vista.
For Windows 7 and earlier (WDDM 1.1 and earlier) drivers the BB field must be set to the DDI
version that the driver supports:

DirectX 9 drivers (which expose any of the D3DDEVCAPS2_* caps) must set BB equal to 14.

DirectX 10 drivers must set BB equal to 15.

D3D11-DDI driver on D3D10 hardware must set BB equal to 16.

D3D11-DDI driver on D3D11 hardware must set BB equal to 17.
For Windows 8 (WDDM 1.2) drivers the BB field must be set to the highest DirectX Feature Level
supported by the driver on the graphics hardware covered by the driver:

A Feature Level 9 driver must set BB equal to 14

A Feature Level 10 driver must set BB equal to 15

A Feature Level 11 driver must set BB equal to 17

A Feature Level 11_1 driver must set BB equal to 18
The CC field can be equal to any value between 01 and 99.
The DDDD field can be set to any numerical value between 0 and 9999.
For example:
Page 342 of 907
Windows Vista DirectX 9.0-compatible WDDM drivers can use the range 7.14.01.0000 to
7.14.99.9999
Windows 7 DirectX 10.0-compatible WDDM 1.1 drivers can use the range 8.15.01.0000 to
8.15.99.9999
Windows 8 WDDM 1.2 driver on DX10 hardware would be 9.15.99.9999
Exceptions:
Not Specified
Business Justification:
_
Scenarios:
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterBase.PowerManagementCompliance
Target Feature: Device.Graphics.AdapterBase
Title: Graphics adapter complies with VESA and ACPI power management specifications to enable
system sleep
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows Server 2012
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
To ensure correct implementation of operating system-controlled power management, graphic
adapters and their drivers must respond to:

Required device (D0 and D3)power states as highlighted in the WDK

Operating system power management for ACPI power states

*VESA BIOS Power Management Functions, which defines extensions to VGA ROM BIOS
services for power management. (*This line does not apply to UEFIGOPbasedplatforms)
Page 343 of 907
Exceptions:
Not Specified
Business Justification:
The graphics adapter must comply with the above specification to enable system sleep transitions
such as Standby and Hibernate. This results in power savings when the system is not in use.
Scenarios:
System sleep and resume
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0006
Device.Graphics.AdapterBase.RegistryEntries
Target Feature: Device.Graphics.AdapterBase
Title:
Device driver install applications for a graphics device create required registry entries
Applicable OS Versions:







Windows Server 2012
Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x86
Windows 7 Client x64
Description:
The following registry entries must be created during video driver installation:

REG_BINARY:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\PART_GUID\ID\Installed
DisplayDrivers: This key should contain the User-mode driver name.

REG_BINARY:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\PART_GUID\ID\Hardwar
eInformation.MemorySize
The below Hardware Information values are written by WDDM driver:

REG_BINARY:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\PART_GUID\ID\Hardwar
eInformation.ChipType
Page 344 of 907

REG_BINARY:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\PART_GUID\ID\Hardwar
eInformation.DACType

REG_BINARY:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\PART_GUID\ID\Hardwar
eInformation.AdapterString

REG_BINARY:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\PART_GUID\ID\Hardwar
eInformation.BiosString

REG_BINARY:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\PART_GUID\ID\Hardwar
eInformation.MemorySize
The following INF directives must be included in the INF:

Feature Score This is a General Installation setting that must be supported by all WDDM
drivers.

Copy Flags to Support PNP Stop directive

Driver\Services Start Type directive

Capability Override settings to disable OpenGL

[Version] section directives

[SourceDiskNames] section directives

General x64 directives

General [Install] section directives
The Driver DLL must have a properly formatted file version as defined in the requirement
Device.Graphics.AdapterBase.DriverVersion
Exceptions:
Not Specified
Business Justification:
Several Windows components and 3rd party applications rely on the information being surfaced
through the above registry keys which are written by the installation application or by the WDDM
driver. Missing or incorrect information could result in application compatibility problems or wrong
OS behavior.
Examples:

The HardwareInformation values are used by the Advanced Settings tab in the Display
Control Panel.
Page 345 of 907


The FeatureScore INF key is used for driver ranking and installation.
The InstalledDisplayDrivers registry key is used by WHQL tests.
For additional details on the above registry keys and their description, please refer to the Installing
Display Miniport and User-Mode Display Drivers in the Windows Driver Kit (WDK) on MSDN.
Scenarios:
Please refer to the Business Justification above which discusses the scenarios as well.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0034
Device.Graphics.AdapterBase.SubsystemResettable
Target Feature: Device.Graphics.AdapterBase
Title:
A graphics subsystem must be resettable to a normal operational state
Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
If the GPU is hung for any reason, independent of what the hardware is processing at the time, it
must be resettable to a normal operational state. This basically implies that TDR must be supported
by any GPU.
Hybrid system should be able to handle TDR just like non-hybrid system and have mechanism to
reset either (or both) the GPU to bring the system back to a functioning state when the operating
system detects a hang.
Design Notes:
The ability to reset the GPU is independent of the current working state of the system.
Exceptions:
Not Specified
Business Justification:
This feature will allow us to recover from faults in the display hardware, resulting is a better user
experience. If we do not implement this feature, more blue screens will result.
Scenarios:
Not Specified
Page 346 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Graphics-0046
Device.Graphics.AdapterRender
Description:
The Render feature of a Graphic Device.
Related Requirements:



Device.Graphics.AdapterRender.MinimumDirectXLevel
Device.Graphics.AdapterRender.RGBFrameBuffer
Device.Graphics.AdapterRender.YUVSupport
Device.Graphics.AdapterRender.MinimumDirectXLevel
Target Feature: Device.Graphics.AdapterRender
Title:
Graphics Adapter implements minimum hardware acceleration capabilities
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
The Display subsystem is required to implement the DirectX 9 hardware specification and the driver
is required to expose through the D3D9 UMD DDI the capabilities of Direct3D 10 Feature Level 9_3
as described in MSDN here:

http://msdn.microsoft.com/en-us/library/ff476876(v=VS.85).aspx

http://msdn.microsoft.com/EN-US/library/ff476150.aspx

http://msdn.microsoft.com/EN-US/library/ff476149.aspx

http://msdn.microsoft.com/en-us/library/ff471324(v=VS.85).aspx
Exceptions:
Not Specified
Business Justification:
Page 347 of 907
Windows 8 will leverage a modern graphics stack that supports HLSL programmability. Shader Model
3.0 was introduced at the tail end of the Windows XP lifecycle. It has garnered broad adoption and is
used ubiquitously across the PC, XBOX console and Windows Phone. To support the modern
graphics stack and the benefits it provides to key applications like Internet Explorer, Windows Live
and Microsoft Office, all Windows hardware on any form factor is required to support D3D9 with
capabilities corresponding to Direct3D 10 Feature Level 9_3.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Win7 Graphics-0015
Device.Graphics.AdapterRender.RGBFrameBuffer
Target Feature: Device.Graphics.AdapterRender
Title: Display chipset implements specified component order and endian representation for 8-bpp
or greater integer RGB frame buffer formats
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
For an N-bit-per-component RGB frame buffer format, the lowest N bits must contain the blue
component, the next N bits must contain the green component, the next N bits must contain the red
component, and the remaining 32-(3 x N) bits may contain alpha. The resulting 32-bit value must be
stored in memory in little-endian format.
Exceptions:
Not Specified
Business Justification:
For basic failure modes, the OS will address the graphics device as a linear frame buffer. To correctly
display colors in this mode, and agreed upon ordering of bytes is required.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Not Specified
Page 348 of 907
Comments:
New; Win7 Graphics-0010
Device.Graphics.AdapterRender.YUVSupport
Target Feature: Device.Graphics.AdapterRender
Title:
Display driver that supports YUV textures can process textures and functions correctly
Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
If the hardware supports YUV texture surfaces and the capability is reported, then the driver must
be able to process these surfaces without any intermediate transforms and function correctly.
Design Notes:
It should be assumed that the YUV data is in the BT.601 color space unless the YUV texture is greater
than 576 height in which case it is in the BT.709 color space, and the appropriate color space
conversion matrices should be used when reading the texture.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Graphics-0042
Device.Graphics.AdapterRender.D3D101Core
Description:
D3D 10.1 core feature
Related Requirements:

Device.Graphics.AdapterRender.D3D101Core.D3D101CorePrimary
Device.Graphics.AdapterRender.D3D101Core.D3D101CorePrimary
Target Feature: Device.Graphics.AdapterRender.D3D101Core
Title: If Graphics Device supports Direct3D 10.1, it must comply with the Direct3D 10.1 and DXGI
Specifications
Page 349 of 907
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2008 R2 x64
Description:
If the graphics devices implements Direct3D 10.1 it must meet all requirements defined in the
Direct3D 10.1 specification and must provide sufficient performance for Direct3D 10.1 features.
Since Direct3D 10.1 is a superset of Direct3D 10, implementation of Direct3D 10.1 also requires
support of Direct3D 10 feature set.
All features required by this specification must be exposed by the device driver including those
features defined for the DXGI DDI header.
Design Notes:
Sufficient performance is described in requirement
System.Fundamentals.Graphics.DisplayRender.Performance
Exceptions:
Not Specified
Business Justification:
D3D10.1 was an update to the D3D10 specification initially supported in Windows Vista SP1. It
provides BGRA format support to allow applications better performance and interoperability with
mixed mode GDI and D3D applications. It further enhances the Anti-aliasing capabilities of the
D3D10 specifications.D3D10 and by extension D3D10.1is a tightly defined platform which Windows
continues to leverage for consistent, performant, hardware accelerated graphical experiences.
Scenarios:
D3D10 provides a well-defined consistent platform for applications and application developers
to provide graphically rich experiences that are consistent across a wide variety of hardware and
price points.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.AdapterRender.D3D101WDDM11
Description:
Page 350 of 907
D3D 10.1 core feature with WDDM 1.1 additions
Related Requirements:

Device.Graphics.AdapterRender.D3D101WDDM11.D3D101v11Primary
Device.Graphics.AdapterRender.D3D101WDDM11.D3D101v11Primary
Target Feature: Device.Graphics.AdapterRender.D3D101WDDM11
Title: If WDDM 1.1 Graphics Device supports Direct3D 10.1, it must comply with the Direct3D 10.1
and DXGI Specifications and support BGRA
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
If the graphics hardware implements Direct3D 10.1 it must meet all requirements defined in the
Direct3D 10.1 specification and must provide sufficient performance for Direct3D 10.1 features.
Since Direct3D 10.1 is a superset of Direct3D 10, implementation of Direct 3D 10.1 also requires
support of Direct3D 10 feature set. Additionally the following features originally defined in the D3D9
Hardware specification are now required:

BGRA
All features required by this specification must be exposed by the device driver including those
features defined for the DXGI DDI header.
Design Notes:
Sufficient performance is described in requirement
System.Fundamentals.Graphics.DisplayRender.Performance
Exceptions:
Not Specified
Business Justification:
D3D10.1 was an update to the D3D10 specification initially supported in Windows Vista SP1. It
provides BGRA format support to allow applications better performance and interoperability with
mixed mode GDI and D3D applications. It further enhances the Anti-aliasing capabilities of the
Page 351 of 907
D3D10 specifications.D3D10 and by extension D3D10.1is a tightly defined platform which Windows
continues to leverage for consistent, performant, hardware accelerated graphical experiences.
Scenarios:
D3D10 provides a well-defined consistent platform for applications and application developers
to provide graphically rich experiences that are consistent across a wide variety of hardware and
price points.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.AdapterRender.D3D101WDDM12
Description:
D3D 10.1 core feature with WDDM 1.2 additions
Related Requirements:

Device.Graphics.AdapterRender.D3D101WDDM12.D3D101v12Primary
Device.Graphics.AdapterRender.D3D101WDDM12.D3D101v12Primary
Target Feature: Device.Graphics.AdapterRender.D3D101WDDM12
Title: If WDDM 1.2 Graphics Device supports Direct3D 10.1, it must comply with the Direct3D 10.1,
DXGI and D3D10 portion of the Direct3D 11.1 Feature Specifications
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
If the graphics hardware implements Direct3D 10.1 it must meet all requirements defined in the
Direct3D 10.1 specification and must provide sufficient performance for Direct3D 10.1 features.
Since Direct3D 10.1 is a superset of Direct3D 10, implementation of Direct3D 10.1 also requires
support of Direct3D 10 feature set. Additionally the following features originally defined in the D3D9
Hardware specification are now required:

BGRA

Half Precision pixel formats (5551, 565, 4444)
Page 352 of 907

Same Surface Blts
Please see the Direct3D 11.1 Features Spec for complete details of all new features required to be
exposed with a WDDM 1.2 driver for D3D10+ hardware.
All features required by this specification must be exposed by the device driver including those
features defined for the DXGI DDI header.
Design Notes:
Sufficient performance is described in requirement
System.Fundamentals.Graphics.DisplayRender.Performance
Exceptions:
Not Specified
Business Justification:
D3D10.1 was an update to the D3D10 specification initially supported in Windows Vista SP1. It
provides BGRA format support to allow applications better performance and interoperability with
mixed mode GDI and D3D applications. It further enhances the Anti-aliasing capabilities of the
D3D10 specifications.D3D10 and by extension D3D10.1is a tightly defined platform which Windows
continues to leverage for consistent, performant, hardware accelerated graphical experiences.
Scenarios:
D3D10 provides a well-defined consistent platform for applications and application developers
to provide graphically rich experiences that are consistent across a wide variety of hardware and
price points.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.AdapterRender.D3D10ComputeShader
Description:
D3D10* Shader Model 4_* Compute Shader Functionality
Related Requirements:

Device.Graphics.AdapterRender.D3D10ComputeShader.D3D10CoreC
Device.Graphics.AdapterRender.D3D10ComputeShader.D3D10CoreC
Target Feature: Device.Graphics.AdapterRender.D3D10ComputeShader
Title: If graphic hardware implements D3D10* Shader Model 4_* Compute Shader Functionality it
must conform to the D3D11 hardware specifications
Page 353 of 907
Applicable OS Versions:







Windows Server 2012
Windows RT
Windows 8 Client x64
Windows 8 Client x86
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
The D3D11 Specification allows for optionally implementing Shader Model 4_* Compute Shader
functionality on D3D10* hardware. If the hardware includes support for and the driver exposes this
functionality it must conform to the specifications for this feature as defined in the D3D11 Hardware
Specification.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary to ensure consistency of this feature across multiple implementations,
and provide Application developers a robust platform for application development and deployment
on the Windows platform.
Scenarios:
D3D11 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points. This feature provides the vendor with the opportunity to differentiate their hardware and
provide capabilities for Direct Compute. For additional information on Compute Shaders see the
MSDN article: http://msdn.microsoft.com/en-us/library/ff476331(v=VS.85).aspx
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D10Core
Description:
D3D 10 core feature
Related Requirements:

Device.Graphics.AdapterRender.D3D10Core.D3D10CorePrimary
Page 354 of 907
Device.Graphics.AdapterRender.D3D10Core.D3D10CorePrimary
Target Feature: Device.Graphics.AdapterRender.D3D10Core
Title: If Graphics Devices supports Direct3D 10, it must comply with the Direct3D 10 and DXGI
specifications
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
If the graphic hardware implements Direct3D 10 it must meet all requirements defined in the
Direct3D 10 specification and must provide sufficient performance for Direct3D 10 features.
All features required by this specification must be exposed by the device driver including those
features defined for the DXGI DDI header. The following list includes some of the required features
called out in the Direct3D 10 specification:

Geometry shader

Stream output

Integer instruction set

New compressed formats

Render to vertex buffer

Render to cube map

Render to volume
Design Notes:
Sufficient performance is described in requirement
System.Fundamentals.Graphics.DisplayRender.Performance
Exceptions:
Not Specified
Business Justification:
D3D10 was designed to be the baseline graphics hardware requirement for Windows Vista. The
primary motivation for this baseline was the desire to present developers with a cleaner API that
delivers several key values. Innovation: New features like Geometry shader and Stream Output
Page 355 of 907
satisfy the large appetite for graphics technology innovation in the PC ecosystem. Since graphics is a
significant area of differentiation for platforms, form factors and applications, Windows must
continue to be a leader in this area. Cleaner API: Improved syntax and generalized structure so
developing graphics applications is easier Improved performance: Direct3D 10 includes several
innovations that deliver better performance Improved Quality: Due to a more strict specification
(e.g., rasterization, floating point), testing and certification is more reliable and required less
investment in special cases.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0020
Device.Graphics.AdapterRender.D3D10D3D11LogicOps
Description:
D3D10-D3D11 Logic Ops
Related Requirements:

Device.Graphics.AdapterRender.D3D10D3D11LogicOps.D3D10CoreD
Device.Graphics.AdapterRender.D3D10D3D11LogicOps.D3D10CoreD
Target Feature: Device.Graphics.AdapterRender.D3D10D3D11LogicOps
Title: If graphic hardware implements Logic Ops functionality it must conform to the D3D11
hardware specifications
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2012
Windows Server 2008 R2 x64
Description:
The D3D11.1 Specification allows for optionally implementing Logic Ops functionality on D3D10,
D3D10.1 and D3D11hardware. If the hardware supports and exposes support for this functionality it
Page 356 of 907
must conform to the specifications for this feature as defined in the D3D11.1 Hardware
Specification.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary to ensure consistency of this feature across multiple implementations,
and provide Application developers a robust platform for application development and deployment
on the Windows platform.
Scenarios:
D3D11 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points. This feature provides the vendor with the opportunity to differentiate their hardware and
provide additional capabilities.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D10Multisampling4X
Description:
D3D10 Multisampling (4X)
Related Requirements:

Device.Graphics.AdapterRender.D3D10Multisampling4X.D3D10CoreA
Device.Graphics.AdapterRender.D3D10Multisampling4X.D3D10CoreA
Target Feature: Device.Graphics.AdapterRender.D3D10Multisampling4X
Title: If graphic hardware implements D3D10 4x Multisampling it must conform to the D3D10
hardware specifications
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2012
Windows Server 2008 R2 x64
Page 357 of 907
Description:
The D3D10 Specification allows for optionally implementing 4X Multisampling. If the hardware
includes support for and the driver exposes this functionality it must conform to the specifications
for this feature as defined in the D3D10 Hardware Specification.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary to ensure consistency of this feature across multiple implementations,
and provide Application developers a robust platform for application development and deployment
on the Windows platform.
Scenarios:
D3D10 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points. This feature provides the vendor with the opportunity to differentiate their hardware and
provide capabilities for improved image quality.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D10Multisampling8X
Description:
D3D10* Multisampling (8X)
Related Requirements:

Device.Graphics.AdapterRender.D3D10Multisampling8X.D3D10CoreB
Device.Graphics.AdapterRender.D3D10Multisampling8X.D3D10CoreB
Target Feature: Device.Graphics.AdapterRender.D3D10Multisampling8X
Title: If graphic hardware implements D3D10* 8X Multisampling then it must conform to the
D3D10 hardware specifications.
Applicable OS Versions:





Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows 7 Client x64
Windows 7 Client x86
Page 358 of 907


Windows Server 2012
Windows Server 2008 R2 x64
Description:
The D3D10 Specification allows for optionally implementing 8X Multisampling. If the hardware
includes support for and the driver exposes this functionality it must conform to the specifications
for this feature as defined in the D3D10 Hardware Specification.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary to ensure consistency of this feature across multiple implementations,
and provide Application developers a robust platform for application development and deployment
on the Windows platform.
Scenarios:
D3D10 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points. This feature provides the vendor with the opportunity to differentiate their hardware and
provide capabilities for improved image quality.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D10WDDM11
Description:
D3D 10 core feature with WDDM 1.1 additions
Related Requirements:

Device.Graphics.AdapterRender.D3D10WDDM11.D3D10v11Primary
Device.Graphics.AdapterRender.D3D10WDDM11.D3D10v11Primary
Target Feature: Device.Graphics.AdapterRender.D3D10WDDM11
Title: If the graphic hardware implements Direct3D 10 and the driver is WDDM1.1, it must comply
with the Direct3D 10 and DXGI Specifications and support BGRA
Applicable OS Versions:


Windows 8 Client x86
Windows 8 Client x64
Page 359 of 907





Windows Server 2012
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
If the graphic hardware implements Direct3D 10 and the driver is WDDM1.1, it must meet all
requirements defined in the Direct3D 10 specification and must provide sufficient performance for
Direct3D 10 features. Additionally the following features originally defined in the D3D9 Hardware
specification are now required:

BGRA
All features required by this specification must be exposed by the device driver including those
features defined for the DXGI DDI header. The following list includes some of the required features
called out in the Direct3D 10 specification:

Geometry shader

Stream output

Integer instruction set

New compressed formats

Render to vertex buffer

Render to cube map

Render to volume
Design Notes:
Sufficient performance is described in requirement
System.Fundamentals.Graphics.DisplayRender.Performance
Exceptions:
Not Specified
Business Justification:
D3D10 was designed to be the baseline graphics hardware requirement for Windows Vista. The
primary motivation for this baseline was the desire to present developers with a cleaner API that
delivers several key values. Innovation: New features like Geometry shader and Stream Output
satisfy the large appetite for graphics technology innovation in the PC ecosystem. Since graphics is a
significant area of differentiation for platforms, form factors and applications, Windows must
continue to be a leader in this area. Cleaner API: Improved syntax and generalized structure so
developing graphics applications is easier Improved performance: Direct3D 10 includes several
innovations that deliver better performance Improved Quality: Due to a more strict specification
Page 360 of 907
(e.g., rasterization, floating point), testing and certification is more reliable and required less
investment in special cases.
Scenarios:
D3D10 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0020
Device.Graphics.AdapterRender.D3D10WDDM12
Description:
D3D 10 core feature with WDDM 1.2 additions
Related Requirements:


Device.Graphics.AdapterRender.D3D10WDDM12.D3D10v12Primary
Device.Graphics.AdapterRender.D3D10WDDM12.Stereoscopic3DArraySupport
Device.Graphics.AdapterRender.D3D10WDDM12.D3D10v12Primary
Target Feature: Device.Graphics.AdapterRender.D3D10WDDM12
Title: If the graphics hardware implements Direct3D 10 and the Driver is WDDM1.2, it must
comply with the Direct3D 10, DXGI and the D3D10 additions in the Direct3D 11.1 Feature
Specifications
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
If the graphic hardware implements Direct3D 10 and the driver is WDDM1.2 it must meet all
requirements defined in the Direct3D 10 specification and must provide sufficient performance for
Direct3D 10 features. Additionally the following features originally defined in the D3D9 Hardware
specification are now required:

BGRA
Page 361 of 907

Half Precision pixel formats (5551, 565, 4444)

Same Surface Blts
Please see the Direct3D 11.1 Features Spec for complete details of all new features required to be
exposed with a WDDM 1.2 driver for D3D10+ hardware.
All features required by this specification must be exposed by the device driver including those
features defined for the DXGI DDI header. The following list includes some of the required features
called out in the Direct3D 10 specification:

Geometry shader

Stream output

Integer instruction set

New compressed formats

Render to vertex buffer

Render to cube map

Render to volume
Design Notes:
Sufficient performance is described in requirement
System.Fundamentals.Graphics.DisplayRender.Performance
Exceptions:
Not Specified
Business Justification:
D3D10 was designed to be the baseline graphics hardware requirement for Windows Vista. The
primary motivation for this baseline was the desire to present developers with a cleaner API that
delivers several key values. Innovation: New features like Geometry shader and Stream Output
satisfy the large appetite for graphics technology innovation in the PC ecosystem. Since graphics is a
significant area of differentiation for platforms, form factors and applications, Windows must
continue to be a leader in this area. Cleaner API: Improved syntax and generalized structure so
developing graphics applications is easier Improved performance: Direct3D 10 includes several
innovations that deliver better performance Improved Quality: Due to a more strict specification
(e.g. rasterization, floating point), testing and certification is more reliable and required less
investment in special cases.
Scenarios:
D3D10 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points.
Page 362 of 907
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0020
Device.Graphics.AdapterRender.D3D10WDDM12.Stereoscopic3DArraySupport
Target Feature: Device.Graphics.AdapterRender.D3D10WDDM12
Title:
WDDM1.2 drivers must support Stereoscopic 3D in D3D by adding expanded array support.
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows Server 2012
Windows RT
Description:
New support required by WDDM 1.2
DDI or feature
WDDM 1.1
WDDM 1.2
Creation of backbuffers (and primaries) Restricted to
using D3D10DDIARG_CREATERESOURCE ArraySize = 1
& D3D11DDIARG_CREATERESOURCE
Generalized to ArraySize = 2
DXGI UM backbuffer DDIs
Restricted to
(DXGI_DDI_ARG_BLT,
backbuffers
DXGI_DDI_ARG_ROTATE_RESOURCE_IDE
NTITIES, DXGI_DDI_ARG_PRESENT,
DXGI_DDI_ARG_SETDISPLAYMODE)
Same, but including stereo back
buffers
Presentation in general (kernel and user) Restricted to
backbuffers
Same, but including stereo back
buffers
Sharing
Restricted to
ArraySize = 1
Generalized to any ArraySize
(including > 2)
GDI interop
Restricted to
ArraySize = 1
Generalized to any ArraySize
(including > 2)
HLSL non-arrayed sampler declarations
Restricted to
ArraySize = 1
Generalized to any ArraySize
(including > 2)
Page 363 of 907
HLSL non-arrayed sampler declarations indicates allowing certain shaders that sample from singlesubresource-resources currently to also sample from single-subresource-views of resources with
multiple subresources.
Note that drivers must support extended array for Stereo 3D APIs, but for full-screen exclusive
Stereo 3D apps to display, the driver should also support Stereo scanout on the output. For example
in a multi-adapter system with two WDDM 1.2 graphics adapters either adapter may be used to
create a stereo windowed swapchain, even if only one of the adapters actually supports stereo
output.
Background info
The following table shows how in Windows 7 / WDDM 1.1 there was a simple sequence of nested
classes of resources and some of the DDIs that only applied to specific subsets.
Type of resource (general to specific)
DDIs that only apply to specific resources
D3D Texture2D resources
D3D Texture2D resources with ArraySize <= 2
D3D Texture2D resources with ArraySize == 1
Sharing, GDI interop
Backbuffers
DXGI_DDI_ARG_BLT, etc.
Primaries
Specific presentation operations
WDDM 1.2 generalizes backbuffers (and primaries) to include stereo pairs (ArraySize = 2; while
WDDM1.2 backbuffers and primaries are resources with ArraySize =1) All DDIs that are specific to
backbuffers are implicitly and explicitly generalized to support these new stereo backbuffers (e.g.,
DXGI_DDI_ARG_BLT).
Some features that are implicitly used by swapchains (e.g., sharing) and that had been limited to
only ArraySize=1 textures are generalized to support resources with any ArraySize.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary for a good quality of experience for running Stereo applications in
Windows 8. Windows will switch to “Stereo” mode when the user launches a Stereo application.
Having a stereo resolution equivalent to the native resolution in mono mode will ensure that there is
no mode change failure when the user launches a windowed mode or full-screen Stereo application.
If the Stereo 3D Display does not support a Stereo equivalent of the native resolution, then the user
will be unable to run the stereo application unless a different resolution is selected manually from
the “Screen Resolution” display applet.
Scenarios:
Page 364 of 907
The Stereo 3D Display on a Stereo-capable system is presently in the native mono resolution as the
user is working with non-stereo or mono applications. The user then launches a Stereo application.
This results in the Stereo 3D Display switching to the stereo mode in the same resolution. The user is
able to successfully visualize the application in Stereo as Windows will be running in a Stereo
mode. In the case this requirement is not met, the above scenario will fail and the user experience
will be as follows: The Stereo 3D Display on a Stereo-capable system is presently in the native mono
resolution as the user is working with non-stereo or mono applications. The user then launches a
Stereo application. Windows will try to switch to Stereo mode with the same display resolution.
However, as the Stereo 3D Display lacks a Stereo mode in the previously running native mono mode,
a mode set failure will be encountered. This may result in an application failure or simply mono
visualization of the stereo application. The user will have to try a different resolution from the
display applet.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Old ID Gfx8081
Device.Graphics.AdapterRender.D3D111Core
Description:
D3D 11.1 core feature
Related Requirements:

Device.Graphics.AdapterRender.D3D111Core.D3D111CorePrimary
Device.Graphics.AdapterRender.D3D111Core.D3D111CorePrimary
Target Feature: Device.Graphics.AdapterRender.D3D111Core
Title: If Graphics Device supports Direct3D 11.1, it must comply with the Direct3D 11.1 and DXGI
Specifications
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Page 365 of 907
A graphics device must meet all requirements defined in the Direct3D 11.1 specification and must
provide sufficient performance for Direct3D 11.1 features.
Direct3D 11.1 is a superset of Direct3D 11, (which is a strict superset of Direct3D 10.1 and Direct3D
10) therefore implementation of Direct3D 11.1 also requires full support for the features defined by
theDirect3D 10, Direct3D 10.1 and Direct3D 11 specifications respectively.
All features required by this specification must be exposed by the device driver including those
features defined for the DXGI DDI header.
Design Notes:
Sufficient performance is described in requirement
System.Fundamentals.Graphics.DisplayRender.Performance
Exceptions:
Not Specified
Business Justification:
D3D11.1 is a update to D3D11 delivering a few key features like:




Logic OpsHalf Precision pixel formats (5551, 565, 4444).
Same Surface BltsUAVs at every stage.
UAV-Multi-sample Antialiasing Target Independent Rasterization (TIR).
New shader instructions.
The features are focused primarily around enabling a modern hardware accelerated graphics stack
for Windows 8 and enabling performance across a wider range variety of hardware architectures
and price points.D3D11.1 is a tightly defined platform from which Windows continues to leverage
for consistent, performant, hardware accelerated graphical experiences.
Scenarios:
D3D11.1 provides a well-defined consistent platform for applications and application developers
to provide graphically rich experiences that are consistent across a wide variety of hardware and
price points.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New
Device.Graphics.AdapterRender.D3D11Core
Description:
D3D 11 core feature
Related Requirements:
Page 366 of 907

Device.Graphics.AdapterRender.D3D11Core.D3D11CorePrimary
Device.Graphics.AdapterRender.D3D11Core.D3D11CorePrimary
Target Feature: Device.Graphics.AdapterRender.D3D11Core
Title: If Graphics Device implements Direct3D 11, it must comply with the Direct3D 11 and DXGI
Specifications
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2012
Windows RT
Description:
If a graphics device implements Direct3D 11, it must meet all requirements defined in the Direct3D
11 specification and must provide sufficient performance for Direct3D 11 features.
Since Direct3D 11 is a superset of Direct3D 10, implementation of Direct 3D 11 also requires support
of Direct3D 10.1 feature set and by extension Direct3D 10.
All features required by this specification must be exposed by the device driver including those
features defined for the DXGI DDI header.
Design Notes:
Sufficient performance is described in requirement
System.Fundamentals.Graphics.DisplayRender.Performance
Exceptions:
Not Specified
Business Justification:
D3D11 was introduced with the release of Windows7. It was developed to push the envelope of
graphics hardware capabilities that strive to achieve near photo realism in a real time rendering
system. At the time of its release the graphics industry entered a new era where graphics hardware
was utilized for general purpose computation in massively parallel scenarios. PCs that wish to be
considered top of the line devices could derive significant value by integrating D3D11 graphics
hardware. D3D11 hardware would be expected in high-end gaming and media devices. The key
features of D3D11 include:


Innovation: Direct3D pushes the quality and performance bar of the graphics ecosystem
with key technologies like tessellation, multithreading, dynamic shader linking, and
improved texture compression formats.
General Purpose Computing on GPUs: After years of innovation, programmability and
parallel performance advancements in the graphics pipeline lend themselves well to
Page 367 of 907

DirectCompute a means of utilizing the massive computational power of GPUs for general
purposes (e.g., technical computing).
Platform Continuity: Direct3D11 is a strict superset of D3D10 and D3D10.1 so investments
made on those platforms translate well to D3D11 as well.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D11DoublePrecisionShader
Description:
D3D11* Double Precision Shader Functionality
Related Requirements:

Device.Graphics.AdapterRender.D3D11DoublePrecisionShader.D3D11CoreC
Device.Graphics.AdapterRender.D3D11DoublePrecisionShader.D3D11CoreC
Target Feature: Device.Graphics.AdapterRender.D3D11DoublePrecisionShader
Title: If graphic hardware implements D3D11* Double Precision it must conform to the feature
specification as outlined in the D3D11 hardware specification
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
The D3D11 Specification allows for optionally implementing Double Precision Shader functionality on
D3D11* hardware. If the hardware includes support for and the driver exposes this functionality it
must conform to the specifications for this feature as defined in the D3D11 Hardware Specification.
Exceptions:
Not Specified
Business Justification:
Page 368 of 907
This requirement is necessary to ensure consistency of this feature across multiple implementations,
and provide Application developers a robust platform for application development and deployment
on the Windows platform.
Scenarios:
D3D11 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points. This feature provides the vendor with the opportunity to differentiate their hardware and
provide additional capabilities for improved computational accuracy.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D11DriverCommandLists
Description:
D3D11* Driver Command Lists
Related Requirements:

Device.Graphics.AdapterRender.D3D11DriverCommandLists.D3D11CoreB
Device.Graphics.AdapterRender.D3D11DriverCommandLists.D3D11CoreB
Target Feature: Device.Graphics.AdapterRender.D3D11DriverCommandLists
Title: If graphics hardware implements the D3D11* driver command list it must conform to the
feature specification as defined in the D3D11 hardware specification
Applicable OS Versions:







Windows Server 2012
Windows RT
Windows 8 Client x64
Windows 8 Client x86
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
The D3D11 Specification allows for optionally implementing DriverCommandListfunctionality on
D3D11* hardware. If the hardware includes support for and the driver exposes this functionality it
must conform to the specifications for this feature as defined in the D3D11 Hardware Specification.
Page 369 of 907
Exceptions:
Not Specified
Business Justification:
This requirement is necessary to ensure consistency of this feature across multiple implementations,
and provide Application developers a robust platform for application development and deployment
on the Windows platform.
Scenarios:
D3D11 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points. This feature provides the vendor with the opportunity to differentiate their hardware and
provide additional capabilities for improved performance.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D11DriverConcurrentObjectCreation
Description:
D3D11* Driver Concurrent Object Creation
Related Requirements:

Device.Graphics.AdapterRender.D3D11DriverConcurrentObjectCreation.D3D11CoreA
Device.Graphics.AdapterRender.D3D11DriverConcurrentObjectCreation.D3D11CoreA
Target Feature: Device.Graphics.AdapterRender.D3D11DriverConcurrentObjectCreation
Title: If graphics hardware implements the D3D11* Driver Concurrent Object Creation it must
conform to the feature specification as defined in the D3D11 hardware specification
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Page 370 of 907
The D3D11 Specification allows for optionally implementing Driver Concurrent Object creation
functionality on D3D11* hardware. If the hardware includes support for and the driver exposes this
functionality it must conform to the specifications for this feature as defined in the D3D11 Hardware
Specification.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary to ensure consistency of this feature across multiple implementations,
and provide Application developers a robust platform for application development and deployment
on the Windows platform.
Scenarios:
D3D11 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points. This feature provides the vendor with the opportunity to differentiate their hardware and
provide additional capabilities for improved performance.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D11Level9WDDM12
Description:
The Windows 8 WDDM 1.2 Updates to the D3D9 UM DDI
Related Requirements:

Device.Graphics.AdapterRender.D3D11Level9WDDM12.D3D9UMDDIUpdate
Device.Graphics.AdapterRender.D3D11Level9WDDM12.D3D9UMDDIUpdate
Target Feature: Device.Graphics.AdapterRender.D3D11Level9WDDM12
Title: If the graphics hardware driver implements the WDDM1.2 specification it must include the
D3D9 User Mode DDI additions as defined by the D3D11.1 API/DDI Specification
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
Page 371 of 907
A WDDM 1.2 graphics driver is required to implement the D3D9 Adapter DDI and D3D9 DDI
additions as defined in the D3D11.1 API/DDI specification in addition to the D3D9 DDI as defined by
the DirectX 9 hardware and driver specifications.
Exceptions:
Not Specified
Business Justification:
Windows 8 will leverage a modern graphics stack more extensively than ever before. The WDDM 1.2
driver model enables D3D9 graphics hardware to expose additional capabilities for more efficient
rendering on Tile based renderers. The D3D11 runtime exposes these new capabilities when running
on D3D9 hardware through Feature Level 9_3.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0015
Device.Graphics.AdapterRender.D3D11PartialPrecision
Description:
D3D11 Partial Precision shader support
Related Requirements:

Device.Graphics.AdapterRender.D3D11PartialPrecision.D3D11CoreE
Device.Graphics.AdapterRender.D3D11PartialPrecision.D3D11CoreE
Target Feature: Device.Graphics.AdapterRender.D3D11PartialPrecision
Title: If graphic hardware implements the D3D11.1 Partial Precision Shader Functionality it must
conform to the feature specification as defined in the D3D11.1 hardware specification
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
The D3D11.1 Specification allows for optionally implementing Partial Precision Shader functionality
on D3D9, D3D10* and D3D11* hardware with a WDDM 1.2 driver. If the hardware includes support
Page 372 of 907
for and the driver exposes this functionality it must conform to the specifications for this feature as
defined in the D3D11.1 Hardware Specification.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary to ensure consistency of this feature across multiple implementations,
and provide Application developers a robust platform for application development and deployment
on the Windows platform.
Scenarios:
D3D11 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
points. This feature provides the vendor with the opportunity to differentiate their hardware and
provide additional capabilities for improved computational accuracy.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D11WDDM12
Description:
D3D 11 core feature with WDDM 1.2 additions
Related Requirements:

Device.Graphics.AdapterRender.D3D11WDDM12.D3D11v12Primary
Device.Graphics.AdapterRender.D3D11WDDM12.D3D11v12Primary
Target Feature: Device.Graphics.AdapterRender.D3D11WDDM12
Title: If WDDM 1.2 Graphics Device implements Direct3D 11, it must comply with the Direct3D 11,
DXGI and the D3D10 portion of the Direct3D 11.1 Features Specification
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
Page 373 of 907
If a graphics device implements Direct3D 11, it must meet all requirements defined in the Direct3D
11 specification and must provide sufficient performance for Direct3D 11 features.
Since Direct3D 11 is a superset of Direct3D 10, implementation of Direct 3D 11 also requires support
of Direct3D 10.1 feature set and by extension Direct3D 10.
In Windows 8 the following features originally defined in the D3D9 Hardware specification are now
also required:

Half Precision pixel formats (5551, 565, 4444)

Same Surface Blts
Please see the Direct3D 11.1 Features Spec for complete details of all new features required to be
exposed with a WDDM 1.2 driver for D3D10+ hardware.
All features required by this specification must be exposed by the device driver including those
features defined for the DXGI DDI header.
Design Notes:
Sufficient performance is described in requirement
System.Fundamentals.Graphics.DisplayRender.Performance
Exceptions:
Not Specified
Business Justification:
D3D11 was introduced with the release of Windows7. It was developed to push the envelope of
graphics hardware capabilities that strive to achieve near photo realism in a real time rendering
system. At the time of its release the graphics industry entered a new era where graphics hardware
was utilized for general purpose computation in massively parallel scenarios. PCs that wish to be
considered top of the line devices could derive significant value by integrating D3D11 graphics
hardware. D3D11 hardware would be expected in high-end gaming and media devices. The key
features of D3D11 include:



Innovation: Direct3D pushes the quality and performance bar of the graphics ecosystem
with key technologies like tessellation, multithreading, dynamic shader linking, and
improved texture compression formats.
General Purpose Computing on GPUs: After years of innovation, programmability and
parallel performance advancements in the graphics pipeline lend themselves well to
DirectCompute a means of utilizing the massive computational power of GPUs for general
purposes (e.g., technical computing).
Platform Continuity: Direct3D11 is a strict superset of D3D10 and D3D10.1 so investments
made on those platforms translate well to D3D11 as well.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 374 of 907
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.AdapterRender.D3D11WDDM12DoublePrecisionShader
Description:
D3D11* Double Precision Shader Functionality with additional ops codes introduced with WDDM 1.2
Related Requirements:

Device.Graphics.AdapterRender.D3D11WDDM12DoublePrecisionShader.D3D11v12C
Device.Graphics.AdapterRender.D3D11WDDM12DoublePrecisionShader.D3D11v12C
Target Feature: Device.Graphics.AdapterRender.D3D11WDDM12DoublePrecisionShader
Title: If graphic hardware implements the D3D11* Double Precision Shader Functionality with
WDDM 1.2 driver additions it must conform to the feature specifications as defined in the D3D11
hardware specification
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
The D3D11 Specification allows for optionally implementing Double Precision Shader functionality on
D3D11* hardware. If the hardware includes support for and the driver exposes this functionality it
must conform to the specifications for this feature as defined in the D3D11 Hardware Specification.
For Windows 8 a WDDM 1.2 Graphics device driver if it supports Double Precision Shader
functionality is required to support the extended double precision math as described in the Shader
Model Improvements Specification.
Exceptions:
Not Specified
Business Justification:
This requirement is necessary to ensure consistency of this feature across multiple implementations,
and provide Application developers a robust platform for application development and deployment
on the Windows platform.
Scenarios:
D3D11 provides a well-defined consistent platform for applications and application developers to
provide graphically rich experiences that are consistent across a wide variety of hardware and price
Page 375 of 907
points. This feature provides the vendor with the opportunity to differentiate their hardware and
provide additional capabilities for improved computational accuracy.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.WDDM
Description:
The base feature set implemented by drivers supporting all versions of the WDDM
Related Requirements:



Device.Graphics.WDDM.Base
Device.Graphics.WDDM.Checklist
Device.Graphics.WDDM.GPUFenceCommands
Device.Graphics.WDDM.Base
Target Feature: Device.Graphics.WDDM
Title:
Graphics drivers must be implemented per WDDM 1.0 spec
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
As implied by the WDDM 1.0 Specification, Display Drivers must minimally support D3D9 and Pixel
Shader 2.0.
WDDM 1.0 introduces the following key requirements:

User-mode Display Driver

Video Memory Manager

(p1) Linear Memory Manager

(p1) Rectangular Memory Manager
Page 376 of 907

GPU Scheduler

Mode-Switch Architecture Cleanup

Merged Miniport and DLL

Recovery from Hardware Hangs

Simplified Kernel-mode Objects

Legacy DDI Consolidation

Hot-plug of Display Cards, Hot Docking, and Support for Clone View
MSDN documentation is updated based on the WDDM 1.0 Specification. Please verify MSDN
documentation for WDDM 1.0 requirements.
Exceptions:
Not Specified
Business Justification:
Key benefits to the end-user include: Improved Stability by moving parts of the display driver into
user mode memory, and adding support for hang recovery (Timeout Driver Recovery - TDR). Video
Memory Virtualization Prevents a single application from allocating all video memory for its
exclusive use. Scheduling more effective sharing (multitasking) of GPU. Security GPU sharing and
video memory virtualization prevent a single app from taking over these resources. Simplifies driver
development by obsoleting legacy Direct3D features. OS promotes legacy fixed function features to
D3D9 and Shader 2.0. WDDM removes the notion of Device Lost and supports newer Direct3D
interfaces such as D3D9Ex, D3D10, 10.1.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
Win7 Graphics-0007
Device.Graphics.WDDM.Checklist
Target Feature: Device.Graphics.WDDM
Title: All Graphics devices comply with base requirements checklist for graphics cards, chipsets
and drivers. Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
Page 377 of 907
[Version 2: Noted that digital connectors highly recommended but not required until Jun 2010.]
[Version 3: Removing digital connectors requirement point]
All Graphics Cards need to adhere to the following checklist:
Memory Allocations and Access (applicable for all form factors)

The GPU must not access an allocation after the last DMA buffer that was submitted to the
GPU referencing that allocation is reported as complete.

The GPU must not access any allocations which were not specified in the allocation list
associated with the DMA buffer being executed.
Card/Chipset Requirements (not applicable for server devices)

For a multi-headed display adapter, it is recommended that the display adapter expose all
display resources through a single function and not as a multifunction device. If a sound
controller or tuner is part of the device, the device can then be exposed as a multifunction
device.
o
If a second display class function is exposed for legacy compatibility the adapter
must be fully functional without using the second head. The second(or additional)
functional heads must:

Have sub-class 80 (other) to avoid a generic driver being used.

Not have an expansion ROM.

Not describe more than 1 MB of total memory space resources.

Not duplicate the frame buffer resources.

Not describe any interrupt resources.

Not describe any I/O space resources.

Non display base class functions on the same device, such as a multimedia
device class, sub class video device, or sub class audio device, are not
subject to these restrictions
WDDM Driver Checklist (not applicable for non-WDDM drivers)

WDDM drivers must not report a submission fence as completed until the operation for the
associated submission is truly completed. This is required by the scheduling model in
WDDM. The WDDM must not use the DDI in such a way that the stability of Windows is
compromised.

WDDM drivers must insert a fence/interrupt pair for each fence requested and must not
hold off reporting the completion of that fence. The fence must be reported as soon as the
Page 378 of 907
associated required interrupt is generated by the GPU. For example, it must not wait until
the timer interrupt or until the next VSync. This is required by the Scheduling model in DDM.

WDDM drivers must not wait or block during DdiSubmitCommand which is necessary from
the perspective of the Video Scheduler in WDDM. The driver must not wait or block during a
DdiBuildPagingBuffer call as well.

The WDDM driver must not expose more than one node per physical engine. The driver and
GPU cannot schedule a single physical engine between multiple nodes.
The WDDM driver must not map a virtual address to video memory which is directly exposed to an
application. This is fundamental to the implementation of video memory management support in
the WDDM driver. The WDDM driver must not hide or expose video memory in a way that the video
memory manager is unaware of. Exceptions to this are allowed specifically for the implementation of
GPU Developer Tools (Debuggers, Profilers, …). Such exception must apply only in a scenario where
the GPU developer tools, in order to perform, need to map video memory to virtual address space,
for the duration of the session and only for the process of the application being operated on.

The WDDM driver must not expose any memory segments which are used for the sole
purpose of reporting additional video memory than is actually present for its appropriate
use. The correct amount of video memory must be reported for use by various applications
through Windows. The WDDM driver can use up to 5% of the system memory for internal
use such as cursor bitmaps, ring buffer, etc.; any amount above this must not be used to
hide or expose video memory in a fashion such that the video memory manager is unaware
of.

A WDDM driver must use ACPI for all interactions with the system BIOS. SMI is currently
allowed but highly discouraged by Microsoft. See WinHEC 2005 presentation, TWAR05007
Design Notes:
For more information on any of the items in the Details section, refer to the Windows Driver Kit and
search for the relevant keywords.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Graphics-0074
Device.Graphics.WDDM.GPUFenceCommands
Target Feature: Device.Graphics.WDDM
Page 379 of 907
Title: GPU that is capable of processing fence commands in the command queue triggers an
interrupt Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
When the hardware consumes a fence command, it must notify the operating system by triggering
an interrupt to the CPU, with the fence ID communicated to the ISR.
Design Notes:
See the Windows Driver Kit
Exceptions:
Not Specified
Business Justification:
This feature is required to make GPU scheduling work. Same as interruptible HW._
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Graphics-0044
Device.Graphics.WDDM.Display
Description:
The base feature set implemented by drivers supporting all versions of the WDDM Display DDIs
Related Requirements:







Device.Graphics.WDDM.Display.Base
Device.Graphics.WDDM.Display.GammaCorrection
Device.Graphics.WDDM.Display.HotPlugDetection
Device.Graphics.WDDM.Display.I2CSupport
Device.Graphics.WDDM.Display.MediaCenterResolutionTiming
Device.Graphics.WDDM.Display.Multimon
Device.Graphics.WDDM.Display.ResetToVGA
Device.Graphics.WDDM.Display.Base
Target Feature: Device.Graphics.WDDM.Display
Page 380 of 907
Title:
Graphics drivers must be implemented per WDDM 1.0 spec
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
See requirement Device.Graphics.WDDM.Base
Exceptions:
Not Specified
Business Justification:
In order for testing to be conducted correctly within the Windows Hardware Certification kit, this
requirement was created to ensure the feature it is associated with is exposed correctly for testing.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.WDDM.Display.GammaCorrection
Target Feature: Device.Graphics.WDDM.Display
Title: Graphics Adapter must support gamma correction in hardware without using any additional
graphics memory bandwidth
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Page 381 of 907
ICM uses the ability to perform gamma correction for the attached monitor and to allow game
applications to switch palettes. This capability also supports transition effects in applications. To
support ICM, the display adapter or chipset gamma must be programmatically adjustable.
To perform gamma correction in hardware, downloadable RAM DAC entries (LUT) must be included.
The LUT must implement at least 256 entries per component input for 8-bit color channel
components. Hardware may implement the LUT for larger component resolutions by using
interpolation if at least 128 sample points are used.
This ability must be supported without requiring the use of graphics memory bandwidth.
Exceptions:
Not Specified
Business Justification:
Not having this will break the logon/logoff, sleep/wake, hibernate/resume fade effect, and Win7
Display Color Calibration (DCC) tool and its display calibration loader. This would also break every
third-party display calibration tool, including those by X-Rite and DataColor. This would make
Windows useless for serious digital color photography work. This is required for servers also since
DCC is included in the Experience Pack for the Server SKUs.
Scenarios:
Display Color Calibration User launches the “Display Color Calibration Tool” provided by Windows As
part of the available options, the user can configure the gamma Full screen game User launches a
full screen DirectX game User access the “Options” and typically has the ability to adjust the
“gamma”
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0028
Device.Graphics.WDDM.Display.HotPlugDetection
Target Feature: Device.Graphics.WDDM.Display
Title:
Graphics adapter must reliably detect the connect and disconnect event of display devices.
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Page 382 of 907

Windows 7 Client x86
Description:
Windows supports two levels of display detection interruptible and poll-able.

Interruptible is defined as the case where the graphics adapter is able to automatically
detect a change in display connectivity and report it to Windows. The ability of the hardware
to automatically generate an interrupt for display connectivity change is called Hot Plug
Detect (HPD). The HPD must not cause any visual corruption on any display already
connected to the system.

Poll-able is defined as the case where Windows has to explicitly query the graphics adapter
to query for a change in the display connectivity. In some cases visual corruption might be
displayed for a very brief time.
All standard digital connectors (DisplayPort, HDMI, DVI) support HPD and the graphics adapter must
report these connectors as interruptible. Once the hardware generates the interrupt, the graphics
adapter must notify Windows via the DxgkCbIndicateChildStatus DDI found here:
http://msdn.microsoft.com/en-us/library/ff559522(VS.85).aspx.
Analog connectors (HD-15, S-Video, Component, Composite) are not required to support
interruptible display detection. However, it is possible that HPD can be implemented in the
hardware (e.g., load sensing, I2C) for such connectors. In such a case the graphics adapter must
report this connector as interruptible as above. Software polling cannot be used to achieve HPD
functionality for analog connectors.
For those analog connectors, where HPD is not implemented in the hardware, the graphics adapter
must report the connector as polled. In such a case the graphics adapter must only perform
detection on the connector when explicitly requested by Windows via the
D3DKMTPollDisplayChildren DDI, found here: http://msdn.microsoft.com/enus/library/ff547077(v=VS.85).aspx.
Design Notes:
See the Windows Driver Kit: http://msdn.microsoft.com/en-us/library/ff559522(VS.85).aspx for"
DxgkCbIndicateChildStatus."
The following HPD methods are VESA standards: DVI HPD is covered in the VESA Plug and Play (PnP)
Standard for the Display/Graphics Subsystem, Release A. DisplayPort HPD is covered in all versions of
the DisplayPort standard.
Exceptions:
Not Specified
Business Justification:
HPD is required on HDMI, DVI, and DisplayPort and there are existing industry specifications on HPD
for both HW and SW, however this requirement is primarily to ensure a robust system level solution
Page 383 of 907
for detecting and configuring monitors. This will help provide the best experience to end consumers
when they plug and play a monitor to the PC over digital interfaces.
Scenarios:
Plug in a monitor over a digital interface: The OS will recognize the newly connected monitor via a
hot plug event notification from the graphics adapter and will add this monitor to the list of available
monitors. Disconnect in a monitor over a digital interface: When a monitor is disconnected, the
monitor removal hot plug event is detected by the graphics subsystem and the OS is notified. The OS
will accordingly remove this monitor from the list of available monitors.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0022 & Graphics-0031 merge
Device.Graphics.WDDM.Display.I2CSupport
Target Feature: Device.Graphics.WDDM.Display
Title:
Graphics device driver must have I2C support in WDDM
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
The following is the set of interfaces that every WDDM driver is required to implement for I2C
support:
DxgkDdiI2CReceiveDataFromDisplay
DxgkDdiI2CTransmitDataToDisplay
These interfaces are documented in the WDK and can be found here.
Exceptions:
Not Specified
Business Justification:
Windows uses the I2C interfaces to obtain the EDID from each of the displays connected to the
system. Obtaining the EDID is critical for setting the native resolution of the panel. In cases where
Page 384 of 907
the display connector does not inherently support hot plug detect, the graphics driver might use the
I2C line to detect the presence/absence of the display device. Additionally, Windows provides a rich
set of APIs for Monitor configuration. These APIs are useful for advanced configuration of Display
devices. Such advanced configuration is for being able to programmatically control display settings
like Brightness, Contrast, Color calibration, image position, image size etc. The APIs are documented
here on MSDN. The above mentioned interfaces are needed to support this set of APIs.
Scenarios:
Connecting a Display Device User connects a new display device to the system Graphics Adapter
detects the presence of the display Windows will use the I2C line to query the display for the EDID
Windows will use the EDID to set the native resolution of the display Detecting a Display User
connects a new display device to the system However, hot plug is not supported User opens the
display control panel and presses the “Detect” button The graphics driver uses I2C to reliably detect
the presence of the display and reports it to Windows. Advanced Display Control Application If a
software developer wants to develop an application that has the ability to programmatically control
the display settings, then he would use these APIs.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old ID Gfx8077
Device.Graphics.WDDM.Display.MediaCenterResolutionTiming
Target Feature: Device.Graphics.WDDM.Display
Title: Display subsystem that supports Media Center functionality must support digital television
(EIA/CEA-861B) resolutions and timings over digital interfaces Applicable OS Versions:


Windows 7 Client x86
Windows 7 Client x64
Description:
VESA specifies display modes and timing information that standard VGA graphics and display
monitors use. VESA does not specify display modes and timing information for consumer displays
(TV). To support Media Center functionality requirements for display modes and timing, the graphics
subsystem must also support all display modes and timing information over VGA, DVI, HDMI, or
other digital interconnect, as required by EIA/CEA-861B. These display modes must be exposed by
the video miniport so that they appear in the default timings list.
The required modes are those listed as mandatory in the EIA/CEA-861B specification as well as both
the two high definition modes:

1280x720p (60Hz, 59Hz and 50Hz)

1920x1080i or 1920x1080p(60Hz, 59Hz and 50Hz)
Page 385 of 907

720x480p (59Hz)

720x576p (50Hz)
All other variants of resolutions and refresh rates defined in EIA/CEA-861B are optional, but
recommended to support the widest range of consumer displays.
Design Notes:
For EIA/CEA requirement details, see EIA/CEA-861-B, Sections 3.1 and 4, "A DTV Profile for
Uncompressed High-Speed Digital Interfaces."
59Hz is defined in the Windows Display Driver Model (WDDM)to be equivalent to 59.94Hz.
Exceptions:
Not Specified
Business Justification:
The TV output from the PC must at least be equal to CE set top boxes available today. Video
playback in Media Center will degrade.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Graphics-0055
Device.Graphics.WDDM.Display.Multimon
Target Feature: Device.Graphics.WDDM.Display
Title: If a Graphics adapter supports more than 1 source and 1 target, it must support all multiplemonitor configurations in Windows
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2012
Windows Server 2008 R2 x64
Description:
A graphics driver can enumerate sources and targets based on its capabilities. Windows queries the
driver for the number of sources and targets by calling the DxgkDdiEnumVidPnCofuncModality DDI,
Page 386 of 907
found here http://msdn.microsoft.com/en-us/library/ff559649.aspx. Windows supports the
following monitor configurations:
1. Single monitor configuration only one physical monitor is active and the entire desktop is
displayed on it
2. Extended monitor configuration multiple monitors are active in and different parts of the
desktop are displayed on it. GDI must be made aware of the monitor boundaries such that
Windows features like maximize, aero snap etc. work according to spec
3. Duplicate monitor configuration the exact same desktop contents are displayed on multiple
monitors
The number of targets must always be greater than or equal to the number of sources.
If the driver enumerates exactly 1 source and 1 target, then no multiple monitor configurations are
supported.
If the driver enumerates exactly 1 source and multiple targets, then the driver must support single
monitor and duplicate monitor configurations.
If the driver enumerates multiple sources and multiple targets, then the driver must support all the
supported configurations. Additionally:

the capability of each source when enabled by its self, with respect to resolution, Direct 3D,
protected content playback, should be the same. The capabilities of the target will vary
based on the target type.

the operating system must be able to drive any target from any source, although the driver
can constrain which targets can be driven in combination.
Multiple-monitor support is built into Windows; therefore, graphics drivers must not include any
special code to provide support already available in the OS.
It must be possible for a user to set all the configurations supported using the Windows Display
Control Panel and by pressing the Win+P key combination.
Exceptions:
Not Specified
Business Justification:
Windows enables different user interfaces based on the number of sources and targets enumerated
by the driver. Once the driver has enumerated the sources and targets it is important for the driver
to support all the multiple monitor configurations that are expected by Windows so that the user
interface can accurately represent the current state and allow the user to make changes to the
monitor configurations. It is important that all drivers support these configurations so that the user
has confidence in the Windows platform and its eco system.
Scenarios:
Page 387 of 907
Projection User connects a Windows laptop to a projector User hits the Win + P key and is shown 4
options User can select any option with confidence that it will work Desktop User connects multiple
monitors to his desktop User opens the display control panel and configures the monitors in
extended mode
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.Graphics.WDDM.Display.ResetToVGA
Target Feature: Device.Graphics.WDDM.Display
Title: Display adapter or chipset supports standard VGA modes and can be reset to standard VGA
modes
Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
The display adapter or chipset must support standard VGA. If necessary, the device must be able to
reset to standard VGA from high-resolutions. To reset the device sufficiently implies that the device
is fully functional as a VGA device. It must be fully functional when programmed via the video BIOS
and when programmed directly through standard VGA registers.
The hardware and BIOS must be able to support original VGA mode 12h and VESA modes to allow at
least the minimum desktop resolution for Windows, the native resolution of any integrated display
and, on external monitors, resolutions of 640 x 480, 800 x 600 and 1024 x 768. All required modes
should be supported with at least 16 bits per pixel, though 32 bits per pixel is highly recommended.
Since the 16-bit BIOS is executed within an emulated environment, the BIOS implementation cannot
assume that the code is being run natively and therefore must not trigger SMIs in order to perform
the requested action. Likewise, since the BIOS is executed while the OS is running, it must not touch
hardware outside of the display device.
It is recommended that the BIOS validate the compatibility of all display resolutions it enumerates
against the capabilities of the active monitor(s). If a monitor does not support a display timing
compatible with a timing available to the BIOS, the resolution must be reported as not supported by
hardware configuration by setting D0 of the Mode Attributes when the BIOS is invoked via int 10h
function 4f01h for this mode.
If no monitor capabilities are available (missing EDID) for an active on an analog connecter, the BIOS
should report at least the above required resolutions as supported by hardware configuration. When
the OS attempts to set one of these modes, the BIOS should set the mode using a 60Hz progressive
Page 388 of 907
timing for a monitor connector (example HD15) or using the BIOSes default timing for an analog TV
connector.
Hybrid Graphics: Not all devices in a Hybrid Graphics system are required to support standard VGA.
At least the boot device must support standard VGA and must be able to reset to standard VGA.
These requirements exist to ensure basic functionality of the display adapter/chipset in all
circumstances.
Design Notes:
The list of VESA modes can be obtained from VESA (www.vesa.org). VGA is defined by IBM spec.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Graphics-0013
Device.Graphics.WDDM.Display.HDMIorDPDCNs
Description:
The optional feature implemented by WDDM drivers supporting the audio DCNs over HDMI or
DisplayPort.
Related Requirements:

Device.Graphics.WDDM.Display.HDMIorDPDCNs.DCNCompliance
Device.Graphics.WDDM.Display.HDMIorDPDCNs.DCNCompliance
Target Feature: Device.Graphics.WDDM.Display.HDMIorDPDCNs
Title: Display driver that contains either an HD Audio interface supporting multi-channel HDMI or
a DisplayPort audio consistent with HD Audio must comply with HD Audio HDMI & DisplayPort DCNs
Applicable OS Versions:






Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Windows 7 Client x86
Windows 7 Client x64
Page 389 of 907
Description:
If a display driver is designed for an HDMI or DisplayPort adapter or chipset that contains an HD
Audio interface that implements any of the verbs listed below, the graphics driver must:

Comply with the following HD Audio DCNs:
o
HDA034-A2: HDMI Content Protection and Multi-Channel Support
o
HDA039-A: HDMI/ELD Memory Structure
o
HDA036-A: DisplayPort Support and HDMI Miscellaneous Corrections

Read and parse the EDID from any attached HDMI or DisplayPort sink device and populate
the ELD buffer to accurately reflect the hardware and sink device capabilities as required in
the HD Audio DCN HDA039-A: HDMI/ELD Memory Structure.

Program all possible Short Audio Descriptors (SADs) from the EDID into the ELD

Correctly program the Presence Detect (PD) and ELD Valid (ELDV) bits on the HDMI or DP
transmitter hardware for consumption by the audio driver in response to the following
events as outlined in the HD Audio DCN HDA034-A2: HDMI Content Protection and MultiChannel Support.
o
Hot plug events (HDMI/DisplayPort Sink Connected/Disconnected)

o
Video mode changes

o

When the graphics subsystem exits power state D0:

If sink is attached, PD = 1, ELDV = 0

Otherwise, PD = 0, ELDV = 0
When graphics subsystem enters power state D0:

If sink is attached, PD = 1, ELDV = 1

Otherwise, PD = 0, ELDV = 0
Driver load

o
According to DCN referenced above
Graphics power state transitions

o
According to DCN referenced above
According to DCN referenced above
Driver unload

PD = 1, ELDV = 1
Page 390 of 907

ELD_Version = 1Fh; indicative of basic audio

Respond to HD Audio-initiated requests for HDCP as outlined in the HD Audio DCN HDA034A2: HDMI Content Protection and Multi-Channel Support within 10 seconds.

Ensure that the READY and CES (current encryption state) values in the CP_CONTROL verb
accurately reflect the state of the display subsystem, as outlined in the HD Audio DCN
HDA034-A2: HDMI Content Protection and Multi-Channel Support.
The Verbs are:

F2Fh (Get HDMI ELD Data)

F2Dh (Get Converter Channel Count)

72Dh (Set Converter Channel Count)

F2Eh (Get HDMI Data Island Packet Size Info)

72Eh (Set HDMI Data Island Packet Size Info)

F30h (Get HDMI Data Island Packet Index)

730h (Set HDMI Data Island Packet Index)

F31h (Get HDMI Data Island Packet Data)

731h (Set HDMI Data Island Packet Data)

F32h (Get HDMI Data Island Packet Transmit-Control)

732h (Set HDMI Data Island Packet Transmit-3Control)

F33h (Get Content Protection Control)

733h (Set Content Protection Control)

F34h (Get Converter Channel to HDMI Slot Mapping)

734h (Set Converter Channel to HDMI Slot Mapping)
Exceptions:
Not Specified
Business Justification:
HDMI audio is heavily dependent on the video driver properly handling the communication of data,
parameters and supported formats to the audio driver. This requirement ensures that video drivers
perform these functions and enable audio over HDMI.
Scenarios:
Stream audio or video from your PC to your HDMI television or receiver.
Page 391 of 907
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0073
Device.Graphics.WDDM.Display.TVOut
Description:
If the feature set implemented by drivers which devices contain an SVideo or Composite output
Related Requirements:



Device.Graphics.WDDM.Display.TVOut.Base
Device.Graphics.WDDM.Display.TVOut.DAC
Device.Graphics.WDDM.Display.TVOut.Encoder
Device.Graphics.WDDM.Display.TVOut.Base
Target Feature: Device.Graphics.WDDM.Display.TVOut
Title: TV-out capable display subsystem supports specific timing standards for NTSC and
PAL/SECAM regions Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
If the display subsystem supports composite or S-video TV-out, it must support NTSC and
PAL/SECAM timings appropriate for the region of sale on its other display output interfaces(s) such
as DVI or HDMI, as follows:

NTSC Regions: 720x480, 59-Hz

PAL/SECAM Regions: 720x576, 50-Hz
The refresh rate of 59.94 Hz is an abbreviated reference used for video. The full refresh rate is
60000/1001 Hz and must be supported as such. Systems equipped with analog three-wire
component video output connectors must also implement support for standard definition video
timings defined in EIA/CEA-770.2-C and the May 2005 errata to this standard. Support for highdefinition analog timings is optional.
Design Notes:
The refresh rate of 59-Hz is an abbreviated reference used for video.
Page 392 of 907
Exceptions:
Not Specified
Business Justification:
The TV output from the PC must at least be equal to CE set top boxes available today. Video
playback in Media Center will degrade.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Graphics-0045
Device.Graphics.WDDM.Display.TVOut.DAC
Target Feature: Device.Graphics.WDDM.Display.TVOut
Title: TV out-capable display subsystem connects to a dedicated default DAC and timing generator
Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
For Video quality purposes, TV output must run at a resolution that is different from the VGA output.
A dedicated TV Video subsystem with an independent timing generator must display content at
independent resolutions from other video output connectors. If TV output is supported
simultaneously with another output (DVI, CRT, or LVDS), the TV timing must not be affected by the
timing requirements of the other outputs and vice-versa, so that a user may run TV-out in a multimonitor configuration.
Exceptions:
Not Specified
Business Justification: Video playback in Media Center will degrade.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Graphics-0050
Device.Graphics.WDDM.Display.TVOut.Encoder
Target Feature: Device.Graphics.WDDM.Display.TVOut
Page 393 of 907
Title: TV out-capable display subsystem that supports a TV out encoder as a second head meets
general multiple-monitor requirements Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
The TV-out encoder on the display adapter must be treated as a second or even third independent
head.
Exceptions:
Not Specified
Business Justification:
TV out must act as a secondary or third head if implemented, and must meet a general multimon
requirements.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Graphics-0049
Device.Graphics.WDDM.DisplayRender
Description:
The base feature set implemented by drivers supporting all versions of the WDDM for both Display
and Render DDIs
Related Requirements:



Device.Graphics.WDDM.DisplayRender.Base
Device.Graphics.WDDM.DisplayRender.OutputProtection
Device.Graphics.WDDM.DisplayRender.Stability
Device.Graphics.WDDM.DisplayRender.Base
Target Feature: Device.Graphics.WDDM.DisplayRender
Title:
Graphics drivers must be implemented per WDDM 1.0 spec
Applicable OS Versions:

Windows 8 Client x64
Page 394 of 907






Windows 8 Client x86
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
See requirement Device.Graphics.WDDM.Base
Exceptions:
Not Specified
Business Justification:
In order for testing to be conducted correctly within the Windows Hardware Certification Kit, this
requirement was created to ensure the feature it is associated with is exposed correctly for testing.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.WDDM.DisplayRender.OutputProtection
Target Feature: Device.Graphics.WDDM.DisplayRender
Title: Display adapter supports output connectors with content protection features and provides
control via Protected Media Path-Output Protection Manager (PVP-OPM) and Certified Output
Protection Protocol (COPP).
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
To enable playback of protected DVD content, digital video outputs must support a digital monitor
link protection mechanism such as HDCP to obtain Windows 8 Client Logo. This requirement is
applicable for all Full Graphics devices.
The OPM API and Media Foundation PMP require display drivers to properly implement the OPM
DDIs to handle premium content. High grade premium content will not be passed to the display
driver unless the display driver has a PVP-OPM certificate. Drivers that support the OPM DDIs must
Page 395 of 907
have a driver certificate to testify that the compliance rules, robustness rules, and terms of the PVPOPM legal agreement, have been met.
The display driver must support both the COPP* and PVP-OPM driver interfaces for controlling and
signaling video output protection state.
Output protection behaviors are specified by the PVP-OPM compliance rules. The document is
available to graphics vendors by request to wmla@microsoft.com.
The WDDM driver must implement the necessary Display Mode Management DDIs and structures as
documented in the Windows Driver Kit and the WDDM documentation to enable TV playback. and
Analog Content Protection (ACP) support for Media Center*.
D3DKMDT_VIDPN_PRESENT_PATH_CONTENT: Media center will use this information to change the
TV mode (TV_PLAYBACK vs. WIN_GRAPHICS)
D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE and
D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_SUPPORT: These structures are necessary to
provide ACP support through the LDDM driver.
S-Video and composite video output interfaces must support the following:
CGMS-A on Line 20 as specified by IEC 61880
CGMS-A on Line 21 as specified by EIA-608-B
Component (YPbPr) outputs must support the following:
CGMS-A with redistribution control as specified by EIA-805
When the TV-out interface is enabled, the display driver must expose a 720x480 60-Hz display mode
and/or a 720x576 50-Hz display mode. These display modes must be exposed by the video miniport
and added to the default timings list for Windows applications to set when connected to a standard
definition TV.
Supports SDTV Modes:
The WDDM miniport driver must set this parameter to TRUE for the video output to expose SDTV
modes like NTSC, PAL or SECAM.
Cable Ready systems with CableCARD support with digital video outputs (for example HDMI, or DP)
must support a CableLabs approved digital monitor link protection mechanism such as HDCP.
Design Notes:

S-Video and composite video output interfaces may be implemented through the same
connector. If a proprietary interface is used, an adapter must be made available either
included with the system or available for purchase at point of sale. System or device that
uses 7-pin S-Video connectors is not required to provide an adapter so long as the first four
pins on the 7-pin connector are electrically compatible with a standard 4-pin S-Video
Page 396 of 907
connector. Microsoft recommends including SCART output when appropriate for the region
of sale.
Exceptions:
Not Specified
Business Justification:
Content providers will not allow use of protected content without engaging video output link
protections per the compliance rules in force. For example, protected DVD or Blu-Ray playback will
usually require activating HDCP on HDMI, or DP connectors. _
Scenarios:
User acquires protected content from the Internet, and displays on a monitor or TV User records
protected broadcast TV content, and displays on a monitor or TV User plays protected content from
a DVD or Blu-Ray disc to a monitor or TV
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Win7 Graphics-0001
Device.Graphics.WDDM.DisplayRender.Stability
Target Feature: Device.Graphics.WDDM.DisplayRender
Title: All WDDM graphics drivers must not generate any hangs or faults under prolonged stress
conditions.
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Graphics drivers must function properly, and not generate any hangs or faults throughout the
duration of stress testing as specified in the

"4-hour WDDM Profile"
To "stress" a graphics driver, Comparative Reliability Analyzer for Software and Hardware (CRASH)
launches and terminates other test applications to simulate real-world scenarios.
Page 397 of 907
Exceptions:
Not Specified
Business Justification:
The CRASH tests which are exercised through this logo requirement ensure reliability and stability of
the graphics driver on the Windows platform. These tests which simulate various productivity,
graphics and gaming scenarios exercise various code paths in the graphics stack. They also stress the
system to ensure that the stability is not affected with an increased workload.
Scenarios:
The CRASH tests exercise the following scenarios in a stress environment. It ensures that these
common end-user scenarios work under stress conditions without affecting the end-user
experience, such as productivity, using desktop applications, graphics, and gaming.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0023
Device.Graphics.WDDM.DisplayRender.OutputProtection
Description:
The base optional WDDM feature set for Windows 7 containing requirements for OPM
Related Requirements:

Device.Graphics.WDDM.DisplayRender.OutputProtection.Windows7
Device.Graphics.WDDM.DisplayRender.OutputProtection.Windows7
Target Feature: Device.Graphics.WDDM.DisplayRender.OutputProtection
Title: Display adapter supports output connectors with content protection features and provides
control via Protected Media Path-Output Protection Manager (PVP-OPM) and Certified Output
Protection Protocol (COPP).
Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
Page 398 of 907
To enable playback of protected DVD content, digital video outputs must support a digital monitor
link protection mechanism such as HDCP to obtain Windows 7Logo. This is an if implemented
feature.
The OPM API and Media Foundation PMP require display drivers to properly implement the OPM
DDIs to handle premium content. High grade premium content will not be passed to the display
driver unless the display driver has a PVP-OPM certificate. Drivers that support the OPM DDIs must
have a driver certificate to testify that the compliance rules, robustness rules, and terms of the PVPOPM legal agreement, have been met.
The display driver must support both the COPP and PVP-OPM driver interfaces for controlling and
signaling video output protection state.
Output protection behaviors are specified by the PVP-OPM compliance rules. The document is
available to graphics vendors by request to wmla@microsoft.com.
The WDDM driver must implement the necessary Display Mode Management DDIs and structures as
documented in the Windows Driver Kit and the WDDM documentation to enable TV playback. and
Analog Content Protection (ACP) support for Media Center.
The WDDM driver must implement the necessary Display Mode Management DDIs and structures as
documented in the Windows Driver Kit and the WDDM documentation to enable TV playback and
Analog Content Protection (ACP) support for Media Center.
D3DKMDT_VIDPN_PRESENT_PATH_CONTENT: Media center will use this information to change the
TV mode (TV_PLAYBACK vs. WIN_GRAPHICS)
D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_TYPE and
D3DKMDT_VIDPN_PRESENT_PATH_COPYPROTECTION_SUPPORT: These structures are necessary to
provide ACP support through the LDDM driver.
S-Video and composite video output interfaces must support the following:
CGMS-A on Line 20 as specified by IEC 61880
CGMS-A on Line 21 as specified by EIA-608-B
Component (YPbPr) outputs must support the following:
CGMS-A with redistribution control as specified by EIA-805
When the TV-out interface is enabled, the display driver must expose a 720x480 60-Hz display mode
and/or a 720x576 50-Hz display mode. These display modes must be exposed by the video miniport
and added to the default timings list for Windows applications to set when connected to a standard
definition TV.
Supports SDTV Modes:
The WDDM miniport driver must set this parameter to TRUE for the video output to expose SDTV
modes like NTSC, PAL or SECAM.
Page 399 of 907
Cable Ready systems with CableCARD support with digital video outputs (for example HDMI, or DP)
must support a CableLabs approved digital monitor link protection mechanism such as HDCP.
Design Notes:
S-Video and composite video output interfaces may be implemented through the same connector. If
a proprietary interface is used, an adapter must be made available either included with the system
or available for purchase at point of sale. System or device that uses 7-pin S-Video connectors is not
required to provide an adapter so long as the first four pins on the 7-pin connector are electrically
compatible with a standard 4-pin S-Video connector. Microsoft recommends including SCART output
when appropriate for the region of sale.
Exceptions:
Not Specified
Business Justification:
Content providers will not allow use of protected content without engaging video output link
protections per the compliance rules in force. For example, protected DVD or Blu-Ray playback will
usually require activating HDCP on HDMI, or DP connectors.
Scenarios:
User acquires protected content from the Internet, and displays on a monitor or TV User records
protected broadcast TV content, and displays on a monitor or TV User plays protected content from
a DVD or Blu-Ray disc to a monitor or TV
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0001
Device.Graphics.WDDM.Render
Description:
The base feature set implemented by drivers supporting all versions of the WDDM Render DDIs
Related Requirements:




Device.Graphics.WDDM.Render.Base
Device.Graphics.WDDM.Render.VideoDecoding
Device.Graphics.WDDM.Render.VideoProcessing
Device.Graphics.WDDM.Render.Windows7.VideoDecoding
Device.Graphics.WDDM.Render.Base
Target Feature: Device.Graphics.WDDM.Render
Page 400 of 907
Title:
Graphics drivers must be implemented per WDDM 1.0 spec
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
See requirement Device.Graphics.WDDM.Base
Exceptions:
Not Specified
Business Justification:
In order for testing to be conducted correctly within the Windows Hardware Certification Kit, this
requirement was created to ensure the feature it is associated with is exposed correctly for testing.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.WDDM.Render.VideoDecoding
Target Feature: Device.Graphics.WDDM.Render
Title:
Display driver supports the DirectX VA 2.0 Video Decoder DDI
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
Display WDDM drivers must support the DXVA 2.0 Video Decoder DDI.
WDDM drivers must support at least one of the following sets of MPEG2 GUIDs:
Page 401 of 907

DXVA2_ModeMPEG2_VLD and DXVA2_ModeMPEG2_iDCT

DXVA2_ModeMPEG2_VLD and DXVA2_ModeMPEG2_MoComp

DXVA2_ModeMPEG2_iDCT

DXVA2_ModeMPEG2and1_VLD
And at least one of the H.264 GUIDs:

DXVA_ModeH264_MoComp

DXVA_ModeH264_VLD
In addition, WDDM drivers must support at least one of the following VC1 modes:

DXVA2_ModeVC1_B (Mo-Comp + Post-Proc**)

DXVA2_ModeVC1_C (iDCT + Mo-Comp+ Post-Proc**)

DXVA2_ModeVC1_D (VLD + IDCT + Mo-Comp + Post-Proc**)
If the display adapter supports hardware-accelerated decode of H.264, it must support either the
DXVA_ModeH264_MoComp GUID or the DXVA_ModeH264_VLD GUID.
Finally, WDDM drivers must support Standardized AES 128 for both MPEG2 and H.264***.
** Note that it is not a requirement to implement the "Post-Proc" stage on DXVA2_ModeVC1 GUIDs.
Design Notes

MPEG-2 support is required on x86 and x64 architectures and operating systems only.

*** Standardized AES 128 support is required on x86 and x64 architectures and operating
systems only.
Exceptions:
Not Specified
Business Justification:
Requiring video decode support on all Windows system ensures that consumers can rely upon
Windows as a platform for viewing high-quality video content.
Scenarios:
The end-user wishes to watch video content in the most common video encoding formats: MPEG2,
H.264, and VC1 (Blu-ray). Media Foundation as well as a number of 3rd party applications utilize
DXVA2 for playback of these formats.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Page 402 of 907
Comments:
New; Win7 Graphics-0025
Device.Graphics.WDDM.Render.VideoProcessing
Target Feature: Device.Graphics.WDDM.Render
Title:
Display WDDM driver supports the DirectX VA 2.0 Video Processor DDI
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Display WDDM drivers must support the DXVA 2.0 Video Processor DDI and implement support for
the following Video Processor Device GUIDs:

DXVADDI_VideoProcProgressiveDevice

DXVADDI_VideoProcBobDevice
The following DXVA2 video processor caps must be supported for each of the video processor device
GUIDs:

DXVADDI_VIDEOPROCESS_YUV2RGB

DXVADDI_VIDEOPROCESS_YUV2RGBEXTENDED

DXVADDI_VIDEOPROCESS_STRETCHX

DXVADDI_VIDEOPROCESS_STRETCHY

DXVADDI_VIDEOPROCESS_SUBRECTS

DXVADDI_VIDEOPROCESS_SUBSTREAMS

DXVA2_VideoProcess_SubStreamsExtended

DXVA2_VideoProcess_Constriction
In addition, to support DXVADDI_VIDEOPROCESS_YUV2RGBEXTENDED caps, the following color
parameters must be supported when color-space converting from a YUV surface to a RGB surface:

D3DDDIARG_VIDEOPROCESSBLT.DestFormat.NominalRange
Page 403 of 907

o
DXVADDI_NominalRange_Unknown (should be interpreted as 0_255 if a
sophisticated algorithm is not implemented)
o
DXVADDI_NominalRange_0_255
o
DXVADDI_NominalRange_16_235
D3DDDIARG_VIDEOPROCESSBLT.pSrcSurfaces[].SampleFormat.VideoTransferMatrix
o
DXVADDI_VideoTransferMatrix_Unknown (should be interpreted as BT601 unless
the source surface is greater than 576 height in which case should be interpreted as
BT709)
o
DXVADDI_VideoTransferMatrix_BT709
o
DXVADDI_VideoTransferMatrix_BT601
The following YUV formats must be supported as the video stream:

YUY2 - 8-bit packed 4:2:2

NV12 - 8-bit planar 4:2:0
If the video processor supports 10-bit YUV formats, the following formats must be supported:

Y210 - 10-bit packed 4:2:2

Y410 - 10-bit packed 4:4:4

P210 - 10-bit planar 4:2:2

P010 - 10-bit planar 4:2:0
If the video processor supports 16-bit YUV formats, the following formats must be supported:

Y216 - 16-bit packed 4:2:2

Y416 - 16-bit packed 4:4:4

P216 - 16-bit planar 4:2:2

P016 - 16-bit planar 4:2:0
The following YUV format must be supported as the video sub-streams:

AYUV - 8-bit packed 4:4:4
For these formats, color converting YUV-to-RGB blits executed through the VideoProcessBlt function
must at least be able to utilize BT. 601 and BT. 709 conversion matrices. This process allows the
graphics to switch between the YUV-to-RGB matrix transforms for different color formats, to ensure
proper handling of video that originates from different standard color spaces such as those defined
in ITU-R Recommendations BT. 601 and BT.709, is required.
Page 404 of 907
Design Notes
MPEG-2 support is required on x86 and x64 architectures and operating systems only.
Exceptions:
Not Specified
Business Justification:
Basic functionality of defined in the most common video specifications (e.g., H.264, Blu-ray) require
conversion of all of the specified YUV formats to RGB data for display of video. In order to enable full
support for these encoding formats, all WDDM hardware must support these conversion
capabilities. High quality color conversion ensures comparable video quality can be obtained for
video to competitive platforms.
Scenarios:
The end-user wishes to watch video content in the most common video encoding formats: MPEG2,
H.264, and VC1 (Blu-ray). Media Foundation as well as a number of 3rd party application utilize
DXVA2 for playback of these formats.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Win7 Graphics-0032
Device.Graphics.WDDM.Render.Windows7.VideoDecoding
Target Feature: Device.Graphics.WDDM.Render
Title:
Display driver supports the DirectX VA 2.0 Video Decoder DDI
Applicable OS Versions:



Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Description:
For both Windows Vista Premium Logo and Windows 7 Logo, display WDDM drivers must support
the DXVA 2.0 Video Decoder DDI.
WDDM drivers must support at least the following GUIDs:
((DXVA2_ModeMPEG2_VLD and DXVA2_ModeMPEG2_iDCT) or
(DXVA2_ModeMPEG2_VLD and DXVA2_ModeMPEG2_MoComp) or
(DXVA2_ModeMPEG2_iDCT)) and
Page 405 of 907
(DXVA2_ModeVC1_B (Mo-Comp + Post-Proc**) or
DXVA2_ModeVC1_C (iDCT + Mo-Comp+ Post-Proc**)or
DXVA2_ModeVC1_D (VLD + IDCT + Mo-Comp + Post-Proc**) ) and
If the display adapter supports hardware-accelerated decode of H.264, it must support the following
GUID
(DXVA_ModeH264_MoComp or DXVA_ModeH264_VLD)
** Note that it is not a requirement to implement the "Post-Proc" stage on DXVA2_ModeVC1 GUIDs.
Exceptions:
This requirement is if-implemented for Windows Server 2008 R2 x64
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.Graphics.WDDM11
Description:
The base feature set implemented by drivers supporting WDDM 1.1
Related Requirements:

Device.Graphics.WDDM11.Base
Device.Graphics.WDDM11.Base
Target Feature: Device.Graphics.WDDM11
Title: Graphic drivers written for a discrete graphic adapters or an integrated graphics adapters
devices must meet all requirements defined in the WDDM 1.1 specifications.
Applicable OS Versions:






Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Page 406 of 907

Windows Server 2008 R2 x64
Description:
WDDM 1.1 introduces the following key requirements over WDDM 1.0:

Hardware acceleration of select GDI features.

Implementation of DMM DDIs for Connecting and Configuring Displays

Support for 32-bit BGRA pixel format compatible with GDI. (Through DirectX10 and later
DDIs.)

Provide additional information to aid in debugging VSync TDRs.

Kernel mode drivers must be compiled with Frame Pointer Optimizations (FPO) disabled.

Optional features, if implemented, must be incorporated according to the specifications and
WDK documentation, including Standardized AES128, DXVA-HD, overlays, and Direct3D11.
MSDN documentation is updated based on the WDDM 1.1 Specification. Please consult MSDN
documentation for WDDM 1.1 requirements.
Exceptions:
Not Specified
Business Justification:
Key Benefits from the newly introduced WDDM 1.1 Features include: Reduced memory usage
compared with WDDM1.0 drivers. GDI Hardware acceleration allows resources to be consolidated
into video memory. The need for a separate system memory copy for GDI use is reduced. Improved
user experience in connecting Monitors, TVs, LCD displays and Projectors Support for 32-bit BGRA
pixel formats through Direct3D10 (and later) allows for interop with GDI. Disabling FPO in kernel
mode driver and new VSYNC TDR information improves debugging ability and ultimately improves
driver quality. Optional features introduced with WDDM1.1 provide the following:AES128
Standardized mechanism for encrypting video as it passes from CPU to GPU over the PCI (or other)
bus. DXVA-HD Offloads certain high definition video processing features to the GPU. Overlays
Exposes overlay hardware in a consistent way. Improves security and performance for video player
applications compared with tradition presentation BLT methods. DirectX11 Added support for
compute devices and multi-threaded app support.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.WDDM11.Display
Description:
Page 407 of 907
The base feature set implemented by drivers supporting all versions of the WDDM Display DDIs
Related Requirements:

Device.Graphics.WDDM11.Display.Base
Device.Graphics.WDDM11.Display.Base
Target Feature: Device.Graphics.WDDM11.Display
Title: Graphic drivers written for a discrete graphic adapters or an integrated graphics adapters
devices must meet all requirements defined in the WDDM 1.1 specifications.
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
See requirement Device.Graphics.WDDM11.Base
Exceptions:
Not Specified
Business Justification:
In order for testing to be conducted correctly within the WLK2.0 kit, this requirement was created to
ensure the feature it is associated with is exposed correctly for testing.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.WDDM11.DisplayRender
Description:
The base feature set implemented by drivers supporting all versions of the WDDM for both Display
and Render DDIs
Related Requirements:
Page 408 of 907

Device.Graphics.WDDM11.DisplayRender.Base
Device.Graphics.WDDM11.DisplayRender.Base
Target Feature: Device.Graphics.WDDM11.DisplayRender
Title: Graphic drivers written for a discrete graphic adapters or an integrated graphics adapters
devices must meet all requirements defined in the WDDM 1.1 specifications.
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
See requirement Device.Graphics.WDDM11.Base
Exceptions:
Not Specified
Business Justification:
In order for testing to be conducted correctly within the Windows Hardware Certification kit, this
requirement was created to ensure the feature it is associated with is exposed correctly for testing.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.WDDM11.DisplayRender.D3D9Overlay
Description:
The optional feature implemented by WDDM 1.1 drivers and greater allowing for surfaces to present
in a hardware overlay.
Related Requirements:

Device.Graphics.WDDM11.DisplayRender.D3D9Overlay.D3D9Overlay
Page 409 of 907
Device.Graphics.WDDM11.DisplayRender.D3D9Overlay.D3D9Overlay
Target Feature: Device.Graphics.WDDM11.DisplayRender.D3D9Overlay
Title:
WDDM1.1 driver supports Direct3D 9 Overlays
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
If the WDDM1.1 driver supports Direct3D 9 Overlays the video overlay presentation requirements
are as follows:
1. A WDDM v1.1 driver must set the D3DCAPS_OVERLAY bit in the D3DCaps9.Caps field.
2. A WDDM v1.1 driver must support query type D3DDDICAPS_CHECKOVERLAYSUPPORT to the
user mode pfnGetCaps DDI call.
3. A WDDM v1.1 driver must support overlays in at least one valid configuration (Displaymode,
OverlayFormat, Width, and Height) when called to DDICHECKOVERLAYSUPPORTDATA for
supported overlay and the Max width and height of supported overlay must be greater than
zero.
Exceptions:
Not Specified
Business Justification:
The WDDM v1.1 overlay DDI enables Direct3D9 based applications to use video overlays while
running Aero Glass (DWM On). The feature improves upon the security model for video overlay
presentation as well as performance by eliminating per frame composition.
Scenarios:
A user wishes to pay video using an existing Windows 7 or Windows Vista era video application. The
user can continue to enjoy protected media in the application as the overlay feature used to ensure
copy protection is available in Windows 8.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Page 410 of 907
Device.Graphics.WDDM11.Render
Description:
The base feature set implemented by drivers supporting all versions of the WDDM Render DDIs
Related Requirements:

Device.Graphics.WDDM11.Render.Base
Device.Graphics.WDDM11.Render.Base
Target Feature: Device.Graphics.WDDM11.Render
Title: Graphic drivers written for a discrete graphic adapter or an integrated graphics adapter
device must meet all requirements defined in the WDDM 1.1 specifications.
Applicable OS Versions:







Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
See requirement Device.Graphics.WDDM11.Base
Exceptions:
Not Specified
Business Justification:
In order for testing to be conducted correctly within the WLK2.0 kit, this requirement was created to
ensure the feature it is associated with is exposed correctly for testing.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New
Device.Graphics.WDDM11.Render.ContentProtection
Description:
The optional feature implemented by WDDM 1.1 drivers allowing for D3D9 surfaces to be protected.
Page 411 of 907
Related Requirements:

Device.Graphics.WDDM11.Render.ContentProtection.ContentProtection
Device.Graphics.WDDM11.Render.ContentProtection.ContentProtection
Target Feature: Device.Graphics.WDDM11.Render.ContentProtection
Title:
WDDM1.1 Driver supports GPU-based Content Protection
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
If the WDDM1.1 driver supports GPU based content protection it must support the following
features:

Encryption BLT -- Video to System BLT with encryption

Driver Protections of Shared Surfaces

Encryption on Eviction Encryption of video memory resources when evicted from video
memory.

Decryption BLTSystem to Video BLT with decryption
For more details on each of these features, please refer to the Windows WDK documentation.
Exceptions:
Not Specified
Business Justification:
This WDDM v1.1 content protection DDI enables Windows Media Center as well as 3rd party video
players in windowed mode with DWM on. The feature support scales from driver/software to
driver/hardware protections.
Scenarios:
A user wishes to play video using an existing Windows 7 or Windows Vista era video application. The
user can continue to enjoy protected media in the application as the content protection DDI used to
ensure copy protection is available in Windows 8.
Page 412 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Device.Graphics.WDDM11.Render.DXVAHD
Description:
The optional feature implemented by WDDM 1.1 drivers supporting the new state based video
processing DDIs.
Related Requirements:

Device.Graphics.WDDM11.Render.DXVAHD.DXVAHD
Device.Graphics.WDDM11.Render.DXVAHD.DXVAHD
Target Feature: Device.Graphics.WDDM11.Render.DXVAHD
Title:
WDDM1.1 driver supports DXVA-HD
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Windows 7 Client x64
Windows 7 Client x86
Description:
If the WDDM1.1 driver supports DXVA-HD then the following input formats
(D3DDDICAPS_DXVAHD_GETVPINPUTFORMATS) must be supported:
1. YUY2
2. AYUV
3. NV12
4. X8R8G8B8
5. A8R8G8B8
Also the driver must support the following output formats (
D3DDDICAPS_DXVAHD_GETVPOUTPUTFORMATS)
Page 413 of 907
1. X8R8G8B8
2. A8R8G8B8
Exceptions:
Not Specified
Business Justification:
The WDDM v1.1 DXVA-HD requirements ensure that processing of the common video formats is
enabled for all existing applications that rely on DXVA and DXVA-HD.
Scenarios:
A user wishes to pay video using an existing Windows 7 or Windows Vista era video application. The
user can continue to enjoy media in the application as DXVA-HD is available for the most common
viewing formats.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Win7 Graphics-0032
Device.Graphics.WDDM12
Description:
The base feature set implemented by drivers supporting WDDM 1.2.
Related Requirements:

Device.Graphics.WDDM12.Base
Device.Graphics.WDDM12.Base
Target Feature: Device.Graphics.WDDM12
Title:
Graphics drivers must be implemented per WDDM 1.2 spec
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
Windows 8 also introduces features and capabilities that require graphics driver changes. These
incremental changes range from small changes such as smooth rotation, to large changes such as 3D
Page 414 of 907
stereo, and D3D11 video support. The WDDM driver model that provides these Windows 8 features
is referred to as "WDDM v1.2" WDDM v1.2 is a superset of WDDM 1.1, and WDDM 1.0.
WDDM v1.2 is required by all systems shipped with Windows 8. WDDM 1.0 and WDDM 1.1 will only
be supported with legacy devices on legacy systems. The best experience, and Windows 8 specific
features are only enabled by a WDDM 1.2 driver. A WDDM driver that implements some WDDM 1.2
required features, but not all required features will fail to load on Windows 8.
For Windows 8 XDDM is officially retired and XDDM drivers will no longer load on Windows 8 Client
or Server.
Below is a summary these WDDM versions:
Operating System
Windows Vista
Windows Vista SP1 /
Windows 7 client
pack
Windows 7
Driver Models
Supported
WDDM 1.0
XDDM on Server
and limited UMPC
WDDM 1.05
XDDM on Server
2008
WDDM 1.1
XDDM on Server
2008 R2
WDDM 1.2
D3D versions
supported
D3D9, D3D10
D3D9, D3D10,
D3D10.1
Features enabled
Scheduling, Memory
Management, Fault tolerance,
D3D9 & 10
+ BGRA support in D3D10, D3D
10.1
D3D9, D3D10,
D3D10.1, D3D11
GDI Hardware acceleration,
Connecting and configuring
Displays, DXVA HD, D3D11
Windows 8
D3D9, D3D10,
Smooth Rotation,
D3D10.1, D3D11,
3D Stereo,
D3D11.1
D3D11 Video,
GPU Preemption,
TDR Improvements
Diagnostic Improvements,
Performance and Memory
usage Optimizations,
Power Management,
etc.
WDDM v1.2 also introduces new types of graphics drivers, targeting specific scenarios and is
described below:
a. WDDM Full Graphics Driver: This is the full version of the WDDM graphics driver that
supports hardware accelerated 2D & 3D operations. This driver is fully capable of
handling all the render, display and video functions. WDDM 1.0 and WDDM 1.1 are
full graphics drivers. All Windows 8 client systems must have a full graphics WDDM
1.2 device as the primary boot device.
b. WDDM Display Only Driver: This driver is only supported as a WDDM 1.2 driver and
enables IHVs to write a WDDM based kernel mode driver that is capable of driving
display only devices. The OS handles the 2D or 3D rendering using a software
simulated GPU.
Page 415 of 907
c. WDDM Render Only Driver: This driver is only supported as a WDDM 1.2 driver and
enables IHVs to write a WDDM driver that supports only rendering functionality.
Render only devices are not allowed as the primary graphics device on client
systems.
Table below explains the scenario usage for the new driver types:
Client
Server Client running in a Virtual
Environment
Server
Virtual
Full
Graphics
Required as boot device
Optional Optional
Optional
Display
Only
Not allowed
Optional Optional
Optional
Render
Only
Optional as non-primary
adapter
Optional Optional
Optional
Headless
Not allowed
Optional N/A
N/A
WDDM v1.2 Feature caps
Table below lists the requirements for a WDDM v1.2 driver to specify to Windows the WDDM Driver
Type, version and the feature caps (visible to dxgkrnl) that WDDM v1.2 drivers are required to set. If
a driver has wrongfully claimed itself as WDDM v1.2 or has implemented partial features (only some
of the mandatory features), then it will fail to create an adapter and the system will fall back to the
Microsoft Basic Display Driver.
WDDM Driver Requirements
WDDM
DDI requirements
driver type
Full Graphics Implement all the Render-specific and the Display-specific required DDIs
Display-Only Implement all the Display-specific DDIs and return a null pointer for all the Renderspecific DDIs
Render-Only Implement all the Render-specific DDIs and return a null pointer for all the Displayspecific DDIs
OR
Implement all the DDIs for a full WDDM driver but report
DISPLAY_ADAPTER_INFO::NumVidPnSources = 0 and
DISPLAY_ADAPTER_INFO::NumVidPnTargets = 0
WDDM v1.2 Feature Caps
Page 416 of 907
Feature
WDDM Driver Type
Full
Render
Graphics Only
M
M
M
NA
WDDM version
Bugcheck and PnP
Stop support for
Non VGA
Optimized screen M
rotation Support
GPU Preemption
M
FlipOnVSyncMmIo M
TDR
Improvements
Optimizing the
graphics stack to
improve
performance on
sleep & resume
Stereoscopic 3D:
New
infrastructure to
process and
present
stereoscopic
content
DirectFlip
GDI Hardware
acceleration (This
is a required
WDDM v1.1
feature)
GPU power
management of
idle and active
power
Exceptions:
Feature Caps
Display
Only
M
DXGK_DRIVERCAPS::WDDMVersion
M
DXGK_DRIVERCAPS::SupportNonVGA
NA
M
DXGK_DRIVERCAPS::SupportSmoothRotation
M
M
NA
NA
M
M
NA
DXGK_DRIVERCAPS::PreemptionCaps
DXGK_FLIPCAPS::FlipOnVSyncMmIo
FlipOnVSyncMmIo is NOT a new feature; this
is already documented and has been
available since Windows Vista; the
requirement here is to set FlipOnVSyncMmIo
cap
DXGK_DRIVERCAPS::SupportPerEngineTDR
O
O
NA
DXGK_SEGMENTDESCRIPTOR3::Flags
O
NA
NA
D3DKMDT_VIDPN_SOURCE_MODE_TYPE
M
M
NA
M
NA
NA
DXGK_DRIVERCAPS::SupportDirectFlip
DXGK_PRESENTATIONCAPS::SupportKernelM
odeCommandBuffer
O
O
O
If this feature is supported the DDI functions
must be supported
(SetPowerComponentFState and
PowerRuntimeControlRequest)
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Not Specified
Page 417 of 907
Comments:
New; old id Gfx8078
Device.Graphics.WDDM12.Display
Description:
Display feature requirements for all WDDM12 drivers which support the display specific DDIs.
Related Requirements:






Device.Graphics.WDDM12.Display.Base
Device.Graphics.WDDM12.Display.ContainerIDSupport
Device.Graphics.WDDM12.Display.DisplayOutputControl
Device.Graphics.WDDM12.Display.ModeEnumeration
Device.Graphics.WDDM12.Display.PnpStopStartSupport
Device.Graphics.WDDM12.Display.ProvideLinearFrameBuffer
Device.Graphics.WDDM12.Display.Base
Target Feature: Device.Graphics.WDDM12.Display
Title:
Requirements for a WDDM graphics adapter to support display functionality
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
In Windows 8 and beyond WDDM has been extended to support a WDDM driver that is only
responsible for Display Scan out capabilities. Such a driver is not allowed to support any Rendering
capabilities.
A driver is considered a WDDM Display Only driver if it implements the following DDIs
Common WDDM DDIs
These DDIs are for the common device functionalities such as PnP support and Power support. These
functions are required by all WDDM drivers and if not implemented the driver will not be started by
Windows. These DDIs are already documented in the WDK.
Required:
DxgkDdiAddDevice
DxgkDdiStartDevice
Page 418 of 907
DxgkDdiStopDevice
DxgkDdiRemoveDevice
DxgkDdiDispatchIoRequest
DxgkDdiSetPowerState
DxgkDdiUnload
Optional:
DxgkDdiInterruptRoutine*
DxgkDdiDpcRoutine
DxgkDdiNotifyAcpiEvent
DxgkDdiQueryInterface
DxgkDdiControlEtwLogging
DxgkDdiEscape
DxgkDdiCollectDbgInfo
*DxgkDdiInterruptRoutine function is required if current hardware device reports hardware
interrupt. In this case , if driver did not supply this DDI function, OS would fail the initialization. If
current hardware does not have interrupt and driver supplies this DDI function, OS will still allow this
driver to be loaded and DxgkDdiInterruptRoutine will never be called.
* DdiNotifyAcpiEvent DDI function is used to notify graphics drivers on some ACPI events. It is
optional for rendering device. On normal WDDM graphics devices, this DDI function will return a flag
to indicate dxgkrnl.sys to take some further actions such as reset display mode or poll the connected
monitors. For the rendering only device, these flags are not used and must be set to zero
Display Only DDIs
Following DDI functions are required to be implemented by a Display Only driver. If the driver does
not supply all of these DDIs, Windows will fail to initialize this driver.
DxgkDdiQueryChildRelations
DxgkDdiQueryChildStatus
DxgkDdiQueryDeviceDescriptor
DxgkDdiResetDevice
DxgkDdiQueryAdapterInfo
DxgkDdiSetPalette *
Page 419 of 907
DxgkDdiSetPointerPosition **
DxgkDdiSetPointerShape **
DxgkDdiIsSupportedVidPn
DxgkDdiRecommendFunctionalVidPn ***
DxgkDdiEnumVidPnCofuncModality
DxgkDdiSetVidPnSourceVisibility
DxgkDdiCommitVidPn
DxgkDdiUpdateActiveVidPnPresentPath
DxgkDdiRecommendMonitorModes
DxgkDdiGetScanLine
DxgkDdiQueryVidPnHWCapability
DxgkDdiPresentDisplayOnly
DxgkDdiReleasePostDisplayOwnership
DxgkDdiSystemDisplayEnable
DxgkDdiSystemDisplayWrite
DxgkDdiI2CReceiveDataFromDisplay
DxgkDdiI2CTransmitDataFromDisplay
*DxgkDdiSetPalette is a required DDI. If driver does not support any palette mode, it should still
supply this DDI.
**DxgkDdiSetPointerPosition and DxgkDdiSetPointerShape are required DDIs. If driver does not
support any hardware cursor, it should still supply these two DDIs.
***DxgkDdiRecommendFunctionalVidPn is a required DDI. If driver does not support any ACPI event,
it should still supply this DDI.
Exceptions:
Not Specified
Business Justification:
Microsoft would like Windows to provide a Modern User Experience on all its SKUs. To achieve this,
various parts of the Windows UI and APIs are dependent on the WDDM. Therefore it is important
that WDDM is always available. If WDDM and its APIs are always available, then the ISVs can focus
on one API set. Currently many server system ship with XDDM hardware. Such hardware does not
support the WDDM. The WDDM Display Only driver was designed especially to enable partners to
write WDDM drivers for such hardware to provide the benefits of WDDM to the user.
Page 420 of 907
Scenarios:
User installs Windows Server 2012 on a system that has an XDDM graphics hardware Windows does
not have any XDDM graphics driver in the box, so the Microsoft Basic Display Only Driver (aka
Standard VGA driver) is automatically installed. This is a WDDM driver and the user gets a Modern
Windows UX along with ability to use the WDDM API set The user installs a WDDM Display Only
Driver provided by the IHVAt this time key WDDM features are made available on this system Full
D3D and D2D support for Aero Glass Multi monitor support Hot plug detect
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old ID Gfx8087
Device.Graphics.WDDM12.Display.ContainerIDSupport
Target Feature: Device.Graphics.WDDM12.Display
Title:
Graphics Adapter must support the DDI for Container ID
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
A graphics adapter must implement the DxgkDdiGetDeviceContainer DDI. Windows will use this DDI
to ask the driver for the container ID. The driver must try and obtain the Container ID from the
display hardware.
In case the Display device does not provide a Container ID, then Windows will automatically
manufacture a Container ID for the display. The uniqueness of the Container ID is achieved by using
the Manufacture ID, Product ID and Serial number of the display obtained from the EDID. Using this
information, a driver for another device can generate the same container ID as the display device by
using the RtlGenerateClass5Guid function included in wdm.h.
Exceptions:
Not Specified
Business Justification:
During Windows 7 the concept of Container ID was introduced for devices. Per MSDN, A container ID
is a system-supplied device identification string that uniquely groups the functional devices
associated with a single-function or multifunction device installed in the computer. Starting in
Windows7, the container ID is used to visually group and represent different devices that are
physically related to each other. By supporting Container ID for display devices, it would be possible
Page 421 of 907
to link other functions of a Display like Audio, USB, etc., with the Display device. The container ID of
any device can be obtained using the IoGetDevicePropertyData API.
Scenarios:
Input devices User has a USB hub in his monitor User connects a keyboard and mouse to the monitor
User opens the Device Hub and sees his monitor If the user double clicks on the monitor it will show
him the device stage page which will indicate the presence of other devices like mouse and keyboard
connected to it Audio devices User has 2 monitors connected with HDMI cable User has speakers
connected to one of the monitors User opens the Device Hub and sees his monitors User double
clicks on the monitor and it will show him the device stage page which will indicate the presence of
the speakers along with tasks he can perform on that device Digitizers User has 2 touch capable
monitors connected to the PC User opens the Device Hub and sees his monitors User double clicks
on the monitor and it will show him the device stage page which will indicate the presence of touch
capabilities for the monitor like Calibration etc.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old ID Gfx8092
Device.Graphics.WDDM12.Display.DisplayOutputControl
Target Feature: Device.Graphics.WDDM12.Display
Title:
Support for WDDM taking control of Display output while WDDM driver is running
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
In Windows 8 and beyond, there is a need for a more seamless hand off of the display control
between Windows and the WDDM graphics driver. This means that in some cases Windows needs to
take over the control of the Display scan out without having to PnP Stop the WDDM Driver. One such
scenario is when Windows needs to bug check the system and display the blue screen. This set of
DDIs enables that cleaner hand off.
The following DDIs are required to be implemented by a Full and Display Only WDDM 1.2 driver
DxgkDdiSystemDisplayEnable
DxgkDdiSystemDisplayWrite
Page 422 of 907
These DDIs are documented here on WDK. The following are the requirements for WDDM driver
while implementing these DDIs:
1. When Windows calls DxgkDdiSystemDisplayEnable, driver must cancel all the GPU
operations or reset GPU to an idle state
2. Windows will provide a Target ID as part of the DDI call. The driver must continue to drive
the display associated with the target ID
a. The driver must check the connectivity of the display on the provided Target ID. If
specified target does not have a display connected, driver should fail this call with
STATUS_NOT_SUPPORTED.
b. The driver must disable the signal to all other displays connected to the adapter
except the target ID provided.
i.
If this is not possible, driver should try and put a blank image on all other
displays
ii.
If this is not possible, driver must leave the last image on the screen
unchanged
3. For the selected Target ID, the driver must keep the current display mode and provide this
mode back to Windows as part of the DDI call
a. In case the driver is not able to maintain the current mode OR the target ID is not
part of the active topology, the driver should try and set the native resolution of the
display OR a high res mode. At the very least the driver must reset to a mode which
is larger than or equals to 640x480 24bpp color format on the specified target.
b. It is NOT required that driver should use linear frame buffer mode. But driver should
support the write operation from a D3DDDIFMT_A8R8G8B8 source to this frame
buffer.
4. This function might be called at high IRQL level or after system has been bugcheck. Driver
should put this function in non-paged code section and only use non-paged memory.
a. Windows kernel mode functions might be also NOT available when this function is
called.
5. Once the driver has handed over Display Control to Windows, Windows will use the
DxgkDdiSystemDisplayWrite DDI to update the screen image. Windows will use the DDI to
write a block of image from specified source image to the screen which is reset via
DxgkDdiSystemDisplayEnable function. This function will pass the driver the start address of
source image as well as the stride, width, and height. The color format of source image is
always D3DDDIFMT_X8R8G8B8. Windows guarantees that the source image is in non-paged
memory. Driver must write this source image to current screen at (PostionX, PositionY).
Page 423 of 907
6. This function might be called at high IRQL level or after system has been bugcheck. Driver
should put this function in non-paged code section and only use non-paged memory.
a. Windows kernel mode functions might be also NOT available when this function is
called.
7. It is recommended to use the CPU to write the image from source to the frame buffer, since
the bug check might be caused by repeated TDR and the GPU might be in an unknown
condition.
Exceptions:
Not Specified
Business Justification:
There are 3 main advantages of implementing these DDIs32 bit Windows adds support for UEFI
systems. Even if Windows needs to bug check the system, the user is not returned to low color or
low resolution mode. User gets a less jarring experience when Windows bug checks.
Scenarios:
Bugcheck. Windows detects an error and needs to bug check the system. Windows takes over the
display control from the WDDM driver. Windows maintains the same high resolution on the main
monitor and displays the error message. User gets a better experience
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Old ID Gfx8088
Device.Graphics.WDDM12.Display.ModeEnumeration
Target Feature: Device.Graphics.WDDM12.Display
Title:
Mode enumeration requirements
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
Target modes

Graphics Adapter must be able to scan out any resolution that is greater than or equal to
1024 x 768 progressive at 32 bpp and a maximum timing which is up to 148.5 Mhz pixel
clock per the VESA and Industry Standards and Guidelines for Computer Display Monitor
Page 424 of 907
Timing (DMT) Nov 2007 Update or CEA-861-E specs. The graphics driver may support modes
that are greater than or less then these constraint's but the driver is not required to do so.

The graphics drier is not required to support any interlaced timings, but may choose to do so

During DxgkDdiEnumVidPnCofuncModality DDI call, the supported target modes must be
greater than or equal to the pinned source modes except for analog TV connector type or if
the target cannot support any timing with a resolution of 1024 x 768 or greater. This means
that for all other conditions the driver is only allowed to scale up. Driver can support
downscaling if the user requests it specifically for overscan compensation on TVs.
Source modes

Graphics Adapter must support the native resolution of the integrated panel.

If the Graphics Adapter has enough bandwidth, it must support the native resolution of any
connected display

Graphics driver must enumerate at least one source mode for every achievable Detailed
timing in the EDID of the display

If the only mode supported by the display device is less than or equal to 640 x 480, then the
driver can downscale in this case. However, the source mode must be at least 800 x 600.

Graphics driver must only enumerate sources modes of 32 bpp or higher.
For Duplicate (Clone) mode

If there are 2 displays configured in duplicate mode, the Graphics Adapter must support
setting the following configuration

If there are any common detailed timings between the 2 displays that are less than
or equal to 1920 x 1080 progressive at 32 bpp, the Graphics Adapter must support
driving the displays at this timing in duplicate mode

At a minimum 1024 x 768 must be supported in duplicate mode

For more than 2 displays configured in duplicate mode, the Graphics Adapter may chose an
appropriate mode to support

At a minimum, irrespective of the number of displays in duplicate mode, the Graphics
Adapter must be able to support a Source Mode of 1024 x 768 progressive at 32 bpp in
duplicate mode
For Extend mode

If there are 2 displays configured in extended mode, the Graphics Adapter must support
setting the following configuration
Page 425 of 907


On systems with integrated displays: Native resolution on integrated display and
simultaneously up to 1920 x 1080 progressive at 32 bpp on the non-integrated
display

Up to 1920 x 1080 progressive at 32 bpp on each non-integrated display
For more than 2 displays configured in extended mode, the Graphics Adapter may chose
appropriate set of modes to support based on available bandwidth
Exceptions:
Not Specified
Business Justification:
There is a large and diverse graphic device ecosystem. So the user has many choices when it comes
to buying a graphic device to suit their needs. However, it is important to ensure that the most
common scenarios work on all configurations running Windows. It is becoming more and more
common for users to connect their TV to their PC for streaming videos. Therefore it is very important
that this scenarios works reliably. For TVs, 1080p is the most common setting and therefore it is
important to support that on PCs running Windows.
Scenarios:
Projection User connects a projector to a laptop Windows enumerates the list of supported modes
in duplicate mode and enables the projector in duplicate mode At the very least, a mode of 1024 x
768 is set Watching a movie on TV User connects a TV to his laptop Windows enumerates the list of
supported modes in duplicate mode and enables the projector in duplicate mode User uses Win+P
to go to extend mode Windows sets the integrated panel to native resolution and the TV to
1080p Workstation User has 2 monitors connected to his desktop Both monitors are configured to
their native resolution
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old ID Gfx8079
Device.Graphics.WDDM12.Display.PnpStopStartSupport
Target Feature: Device.Graphics.WDDM12.Display
Title:
Support for PnP Stop in WDDM
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Page 426 of 907
Description:
Since the introduction of WDDM, every driver is required to support PnP Start and Stop. This
requirement enhances the support for PnP start and stop in WDDM.
Once a WDDM driver is stopped, Windows needs to take over the display control and when the
driver is started, Windows needs to hand back display control to the driver.
In Windows 8, WDDM 1.2 introduces a new DDI to add support for UEFI based systems and also to
improve the user experience in such a scenario.
The following DDIs are required to be implemented by a Full and Display Only WDDM 1.2 driver
DxgkDdiReleasePostDisplayOwnership
The following are the requirements for the driver when implementing this DDI
1. Windows will provide a Target ID as part of the DDI call. The driver must continue to drive
the display associated with the target ID
a. The driver must check the connectivity of the display on the provided Target ID. If
specified target does not have a display connected, driver should fail this call with
STATUS_NOT_SUPPORTED.
b. The driver must disable the signal to all other displays connected to the adapter
except the target ID provided.
i.
If this is not possible, driver should try and put a blank image on all other
displays
ii.
If this is not possible, driver must leave the last image on the screen
unchanged
2. If there is an ACPI ID associated with the target ID, then that must be provided back to
Windows as part of the return data structure PDXGK_DISPLAY_INFORMATION
3. For the selected Target ID, the driver must keep the current display mode and provide this
mode back to Windows as part of the DDI call
a. In case the driver is not able to maintain the current mode OR the target ID is not
part of the active topology, the driver should select an alternate active target and try
and maintain the current resolution of that target. If that is not possible the driver
should try and set the native resolution of the display OR a high res mode. At the
very least the driver must reset to a mode which is larger than or equals to 800x600
24bpp (D3DDDIFMT_R8G8B8) or 32bpp (D3DDDIFMT_X8R8G8B8).
b. If no target is active, then the driver should attempt to enable a target. Preferably
the internal panel (if available)
Page 427 of 907
4. Driver must clean the current frame buffer, disable hardware cursor, disable all overlays and
set to default GAMMA ramp.
5. Driver must make the current frame buffer linear (either by using swizzle range or disabling
swizzle mode).
6. Driver must make the current frame buffer accessible by CPU
7. Driver must ensure that visibility is set to enabled on the specified target
Exceptions:
Not Specified
Business Justification:
There are 3 main advantages of implementing these DDIs User gets a better experience during driver
upgrade because window size and position is not changed 32 bit Windows adds support for UEFI
systems User remains at a native resolution even in cases where an IHV provided WDDM graphics
driver is not available
Scenarios:
Boot/Resume User boots a system that runs UEFI in the pre-OS environment UEFI sets the native
resolution of the connected display device Windows starts and continues using the same resolution
as set by UEFI The user always remains in a high resolution mode throughout his boot/resume
experience Driver Upgrade User is running a full WDDM driver User chooses to upgrade the driver
with a new one made available on Windows Update. The driver get un installed and Windows falls
back to Microsoft Basic Display Driver. At this time there is no change in screen resolution or window
position
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old ID Gfx8076
Device.Graphics.WDDM12.Display.ProvideLinearFrameBuffer
Target Feature: Device.Graphics.WDDM12.Display
Title:
Graphics Device can provide a linear frame buffer usable by Windows
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
Page 428 of 907
There are numerous scenarios where components in the Windows OS need to be able to update the
display when an IHV driver is not loaded. Some of these scenarios are: Boot, Bugcheck, safe mode,
driver upgrades, etc. To ensure a graphics device is compatible with these Windows scenarios it
must:
1) Ensure updates to the frame buffer must be scanned out without requiring addition IHV/OEM
software/drivers.
2) Provide a linear frame buffer that is CPU accessible on demand from the IHV driver.
3) On UEFI systems at boot using UEFI 2.3 GOP
4) On BIOS systems using VBE 3.0 standards.
This requirement is intended to provide the necessary support of SYSFUND8081(SystemUEFIDisplay) and SYSFUND-8082(DisplayReqVideoBIOS)
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; OLD ID Gfx8068
Device.Graphics.WDDM12.DisplayOnly
Description:
The optional feature set implemented by WDDM 1.2 drivers which support only the display specific
DDIs.
Related Requirements:

Device.Graphics.WDDM12.DisplayOnly.Base
Device.Graphics.WDDM12.DisplayOnly.Base
Target Feature: Device.Graphics.WDDM12.DisplayOnly
Title:
Requirements for a WDDM graphics adapter to support display functionality
Applicable OS Versions:


Windows 8 Client x86
Windows 8 Client x64
Page 429 of 907



Windows RT
Windows Server 2012
Windows Server 2008 R2 x64
Description:
In Windows 8 and beyond WDDM has been extended to support a WDDM driver that is only
responsible for Display Scan out capabilities. Such a driver is not allowed to support any Rendering
capabilities.
A driver is considered a WDDM Display Only driver if it only implements the following DDIs and does
not implement any of the render DDIs
Common WDDM DDIs
These DDIs are for the common device functionalities such as PnP support and Power support. These
functions are required by all WDDM drivers and if not implemented the driver will not be started by
Windows. These DDIs are already documented in the WDK.
Required:
DxgkDdiAddDevice
DxgkDdiStartDevice
DxgkDdiStopDevice
DxgkDdiRemoveDevice
DxgkDdiDispatchIoRequest
DxgkDdiSetPowerState
DxgkDdiUnload
Optional:
DxgkDdiInterruptRoutine*
DxgkDdiDpcRoutine
DxgkDdiNotifyAcpiEvent
DxgkDdiQueryInterface
DxgkDdiControlEtwLogging
DxgkDdiEscape
DxgkDdiCollectDbgInfo
Page 430 of 907
*DxgkDdiInterruptRoutine function is required if current hardware device reports hardware
interrupt. In this case , if driver did not supply this DDI function, OS would fail the initialization. If
current hardware does not have interrupt and driver supplies this DDI function, OS will still allow this
driver to be loaded and DxgkDdiInterruptRoutine will never be called.
* DdiNotifyAcpiEvent DDI function is used to notify graphics drivers on some ACPI events. It is
optional for rendering device. On normal WDDM graphics devices, this DDI function will return a flag
to indicate dxgkrnl.sys to take some further actions such as reset display mode or poll the connected
monitors. For the rendering only device, these flags are not used and must be set to zero
Display Only DDIs
Following DDI functions are required to be implemented by a Display Only driver. If the driver does
not supply all of these DDIs, Windows will fail to initialize this driver.
DxgkDdiQueryChildRelations
DxgkDdiQueryChildStatus
DxgkDdiQueryDeviceDescriptor
DxgkDdiResetDevice
DxgkDdiQueryAdapterInfo
DxgkDdiSetPalette *
DxgkDdiSetPointerPosition **
DxgkDdiSetPointerShape **
DxgkDdiIsSupportedVidPn
DxgkDdiRecommendFunctionalVidPn ***
DxgkDdiEnumVidPnCofuncModality
DxgkDdiSetVidPnSourceVisibility
DxgkDdiCommitVidPn
DxgkDdiUpdateActiveVidPnPresentPath
DxgkDdiRecommendMonitorModes
DxgkDdiGetScanLine
DxgkDdiQueryVidPnHWCapability
DxgkDdiPresentDisplayOnly
DxgkDdiReleasePostDisplayOwnership
Page 431 of 907
DxgkDdiSystemDisplayEnable
DxgkDdiSystemDisplayWrite
*DxgkDdiSetPalette is a required DDI. If driver does not support any palette mode, it should still
supply this DDI.
**DxgkDdiSetPointerPosition and DxgkDdiSetPointerShape are required DDIs. If driver does not
support any hardware cursor, it should still supply these two DDIs.
***DxgkDdiRecommendFunctionalVidPn is a required DDI. If driver does not support any ACPI event,
it should still supply this DDI.
Design Note:
The only color format supported for display only drivers is D3DDDIFMT_A8R8G8B8 therefore these
drivers should only enumerate source modes of this format.
Exceptions:
Not Specified
Business Justification:
Microsoft would like Windows to provide a Modern User Experience on all its SKUs. To achieve this,
various parts of the Windows UI and APIs are dependent on the WDDM. Therefore it is important
that WDDM is always available. If WDDM and its APIs are always available, then the ISVs can focus
on one API set. Currently many server systems ship with XDDM hardware. Such hardware does not
support the WDDM. The WDDM Display Only driver was designed especially to enable partners to
write WDDM drivers for such hardware to provide the benefits of WDDM to the user.
Scenarios:
User installs Windows Server 2012 on a system that has an XDDM graphics hardware Windows does
not have any XDDM graphics driver in the box, so the Microsoft Basic Display Only Driver (aka
Standard VGA driver) is automatically installed. This is a WDDM driver and the user gets a Modern
Windows UX along with ability to use the WDDM API set The user installs a WDDM Display Only
Driver provided by the IHV At this time key WDDM features are made available on this system:




Full D3D and D2D support
Support for Aero Glass
Multi monitor support
Hot plug detect
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old ID Gfx8087
Page 432 of 907
Device.Graphics.WDDM12.DisplayRender
Description:
The optional feature set implemented by WDDM 1.2 drivers supporting both display and render
DDIs.
Related Requirements:

Device.Graphics.WDDM12.DisplayRender.Base
Device.Graphics.WDDM12.DisplayRender.Base
Target Feature: Device.Graphics.WDDM12.DisplayRender
Title:
Requirements for a WDDM graphics adapter implementing both Render and Display DDIs
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
In Windows 8 and beyond WDDM has been extended to support a WDDM driver that is only
responsible for Display Scan out capabilities. Such a driver is not allowed to support any Rendering
capabilities.
In Windows 8 and beyond WDDM has also been extended to support a WDDM driver that is only
responsible for Rendering and Compute DDIs. Such a driver is not allowed to support any Display
Scan out capabilities.
Driver's implementing both sets of DDI's (Display and Render) are considered full graphics adapters.
Common WDDM DDIs
These DDIs are for the common device functionalities such as PnP support and Power support. These
functions are required by all WDDM drivers and if not implemented the driver will not be started by
Windows. These DDIs are already documented in the WDK.
Required:
DxgkDdiAddDevice
DxgkDdiStartDevice
DxgkDdiStopDevice
DxgkDdiRemoveDevice
Page 433 of 907
DxgkDdiDispatchIoRequest
DxgkDdiSetPowerState
DxgkDdiUnload
Optional:
DxgkDdiInterruptRoutine*
DxgkDdiDpcRoutine
DxgkDdiNotifyAcpiEvent
DxgkDdiQueryInterface
DxgkDdiControlEtwLogging
DxgkDdiEscape
DxgkDdiCollectDbgInfo
*DxgkDdiInterruptRoutine function is required if current hardware device reports hardware
interrupt. In this case , if driver did not supply this DDI function, OS would fail the initialization. If
current hardware does not have interrupt and driver supplies this DDI function, OS will still allow this
driver to be loaded and DxgkDdiInterruptRoutine will never be called.
Display Only DDIs
Following DDI functions are required to be implemented by a Display Only driver. If the driver does
not supply all of these DDIs, Windows will fail to initialize this driver.
DxgkDdiQueryChildRelations
DxgkDdiQueryChildStatus
DxgkDdiQueryDeviceDescriptor
DxgkDdiResetDevice
DxgkDdiQueryAdapterInfo
DxgkDdiSetPalette *
DxgkDdiSetPointerPosition **
DxgkDdiSetPointerShape **
DxgkDdiIsSupportedVidPn
DxgkDdiRecommendFunctionalVidPn ***
DxgkDdiEnumVidPnCofuncModality
Page 434 of 907
DxgkDdiSetVidPnSourceVisibility
DxgkDdiCommitVidPn
DxgkDdiUpdateActiveVidPnPresentPath
DxgkDdiRecommendMonitorModes
DxgkDdiGetScanLine
DxgkDdiQueryVidPnHWCapability
DxgkDdiPresentDisplayOnly
DxgkDdiReleasePostDisplayOwnership
DxgkDdiSystemDisplayEnable
DxgkDdiSystemDisplayWrite
*DxgkDdiSetPalette is a required DDI. If driver does not support any palette mode, it should still
supply this DDI.
**DxgkDdiSetPointerPosition and DxgkDdiSetPointerShape are required DDIs. If driver does not
support any hardware cursor, it should still supply these two DDIs.
***DxgkDdiRecommendFunctionalVidPn is a required DDI. If driver does not support any ACPI event,
it should still supply this DDI.
* DdiNotifyAcpiEvent DDI function is used to notify graphics drivers on some ACPI events. It is
optional for rendering device. On normal WDDM graphics devices, this DDI function will return a flag
to indicate dxgkrnl.sys to take some further actions such as reset display mode or poll the connected
monitors. For the rendering only device, these flags are not used and must be set to zero
Rendering only DDIs
These DDI functions are for the rendering functionalities.
Required:
DxgkDdiInterruptRoutine
DxgkDdiDpcRoutine
DxgkDdiResetDevice
DxgkDdiCreateDevice
DxgkDdiDestroyAllocation
DxgkDdiDescribeAllocation
DxgkDdiOpenAllocation
Page 435 of 907
DxgkDdiCloseAllocation
DxgkDdiGetStandardAllocationDriverData
DxgkDdiSubmitCommand
DxgkDdiPreemptCommand
DxgkDdiBuildPagingBuffer
DxgkDdiResetFromTimeout
DxgkDdiRestartFromTimeout
DxgkDdiQueryCurrentFence
DxgkDdiControlInterrupt
DxgkDdiDestroyDevice
DxgkDdiPresent
DxgkDdiCreateAllocation
DxgkDdiPatch
DxgkDdiRender
DxgkDdiRenderKm
Optional:
If rendering hardware support swizzling ranger, driver should also supply following two functions
DxgkDdiAcquireSwizzlingRange
DxgkDdiReleaseSwizzlingRange
Exceptions:
Not Specified
Business Justification:
Microsoft would like Windows to provide a Modern User Experience on all its SKUs. To achieve this,
various parts of the Windows UI and APIs are dependent on the WDDM. Therefore it is important
that WDDM is always available. If WDDM and its APIs are always available, then the ISVs can focus
on one API set. Currently many server systems ship with XDDM hardware. Such hardware does not
support the WDDM. The WDDM Display Only driver was designed especially to enable partners to
write WDDM drivers for such hardware to provide the benefits of WDDM to the user. Over the years
there has been an increasing focus on GPGPU scenarios for doing vast amount of complex
mathematical or graphical operations. Some of the common examples of this are graphics rendering
for animation, database processing, financial & astronomical calculations and oil and gas
exploration. The use of GPGPU has proved benefits in performance, power consumption and cost.
Page 436 of 907
This feature makes it easier for an OEM to ship a system specifically targeted for such a use without
having the added complexity of supporting a display device
Scenarios:
Display User installs Windows Server 2012 on a system that has an XDDM graphics hardware
Windows does not have any XDDM graphics driver in the box, so the Microsoft Basic Display Only
Driver (aka Standard VGA driver) is automatically installed. This is a WDDM driver and the user gets a
Modern Windows UX along with ability to use the WDDM API set The user installs a WDDM Display
Only Driver provided by the IHV At this time key WDDM features are made available on this
system Rendering Server Render Farm User configures a Server system that only contains one GPU
installed as a Render only device and does not have any display devices connected to the system.
The user accesses this Server by utilizing Remote Desktop Sessions or alternate means. Now the user
launches a DirectX application that needs to use the advanced computing power of the GPU for
some processing (like graphics render farm)Note: GDI based applications will not work in this case
unless, a Full WDDM driver or a Display Only driver is installed along with this OR the user connects
via a Remote Desktop session. The application uses the DirectX APIs to enumerate WDDM GPUs and
finds the Render only device and utilizes it for its computational needs Additional GPU for compute
User configures a system with 2 GPUs. One a full WDDM driver which support Render and Display
functions. The second a WDDM render only driver that only support render functions The user has a
monitor connected to the full WDDM graphics hardware and uses it to log into the system Now the
user launches an application that needs to use the advanced computing power of the GPU for some
processing (like graphics render farm) The application uses the DirectX APIs to enumerate WDDM
GPUs and finds both the GPUs. The application selects the Render only device and utilizes it for its
computational needs but uses the Full WDDM driver for its UI rendering needs.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New full graphics requirement
Device.Graphics.WDDM12.DisplayRender.ProcessingStereoscopicVideoCon
tent
Description:
The optional feature set implemented by WDDM 1.2 drivers which support stereoscopic video
processing.
Related Requirements:

Device.Graphics.WDDM12.DisplayRender.ProcessingStereoscopicVideoContent.ProcessingSt
ereoscopicVideoContent
Page 437 of 907
Device.Graphics.WDDM12.DisplayRender.ProcessingStereoscopicVideoContent.Processi
ngStereoscopicVideoContent
Target Feature: Device.Graphics.WDDM12.DisplayRender.ProcessingStereoscopicVideoContent
Title: If Display adapter supports presentation and processing of stereoscopic video content it
must conform to the DXGI specification for Stereo 3D
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
WDDM 1.2 drivers may optionally process video data encoded for stereo. If the driver publishes that
it can support stereo, it must support processing of content in horizontally and vertically arranged
left and right eye views, as well as separate streams for the left and right eye views.
In addition, if the driver publishes that it can support stereo, it may optionally also process the
following stereo content layouts:

Row interleaved

Column interleaved

Checkerboard

Flipped Configurations
Finally, the driver may optionally support new stereo processing features:

Mono offset

Stereo Eye Adjustment
For all optional content layouts and processing features, the driver must publish the appropriate cap
to indicate if it supports the feature.
Exceptions:
Not Specified
Business Justification:
Enabling physical and streaming 3DS media content on Win8 will allow consumers to watch their
favorite media content on their PCs and utilize their stereo video hardware (TVs, monitors, shutter
glasses, etc.) with Windows. This should also spur the sales of high-end PCs, Monitors and Laptops.
Mono offset provides the ability to generate menus and overlays for stereo displays from non-stereo
content. This is used for stereo Blu-ray menus.
Scenarios:
Page 438 of 907
On capable hardware, stereo video can be processed or displayed if provided in the various
configurations defined in the H.264 MVC specification and other stereo video format specifications.
On capable hardware, an image can be converted into a stereo pair of images in order to provide the
appearance of depth in menus and controls for Blu-ray discs and other interactive elements. On
capable hardware, stereo video can be adjusted by the viewer to have a greater or lesser eye
disparity in order to reduce eye strain for the viewer.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old ID Gfx8069
Device.Graphics.WDDM12.DisplayRender.RuntimePowerMgmt
Description:
The optional feature set implemented by WDDM 1.2 drivers which support the runtime power
management DDIs.
Related Requirements:

Device.Graphics.WDDM12.DisplayRender.RuntimePowerMgmt.RuntimePowerMgmt
Device.Graphics.WDDM12.DisplayRender.RuntimePowerMgmt.RuntimePowerMgmt
Target Feature: Device.Graphics.WDDM12.DisplayRender.RuntimePowerMgmt
Title: If implemented - WDDM 1.2 drivers must use the new WDDM 1.2 GPU Power Management
DDI for F-state and p-state power management.
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
WDDM 1.2 drivers can optionally support F-state and p-state Power Management.
For more details on the use of the SOC GPU Power Management WDDM v1.2 DDI, please refer to
the Windows 8 WDK documentation.
Exceptions:
Not Specified
Business Justification:
Page 439 of 907
Energy Efficiency has become a key distinguishing feature for OEMs today. Given the proliferation of
small form factors, the concept of All day Battery Life is being strived for. The scenario here is that
you carry your mobile device without the power brick and only at the end of the day; you plug it into
the power source for recharging the battery. GPUs and Displays are two of the largest power
consumers in desktops and mobile devices; hence the importance of managing the Idle and Active
power cannot be understated.
Scenarios:
“All Day Battery Life”: Mobile form factor device is able to go into Idle and save power due to
individual system components shutting down if not in use. Systems that support Connected Standby:
New Windows 8 systems that are capable of smartphone-like power model and have sufficiently low
idle power to remain on when the user has completed interacting with the system.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old id Gfx8083
Device.Graphics.WDDM12.Render
Description:
The base feature set implemented by WDDM 1.2 drivers which support the render specific DDIs.
Related Requirements:










Device.Graphics.WDDM12.Render.Base
Device.Graphics.WDDM12.Render.D3D11VideoDecoding
Device.Graphics.WDDM12.Render.D3D11VideoProcessing
Device.Graphics.WDDM12.Render.DirectFlip
Device.Graphics.WDDM12.Render.FlipOnVSyncMmIo
Device.Graphics.WDDM12.Render.OfferReclaim
Device.Graphics.WDDM12.Render.PreemptionGranularity
Device.Graphics.WDDM12.Render.TDRResiliency
Device.Graphics.WDDM12.Render.UMDLogging
Device.Graphics.WDDM12.Render.XPSRasterizationConformance
Device.Graphics.WDDM12.Render.Base
Target Feature: Device.Graphics.WDDM12.Render
Title:
Requirements for a WDDM graphics adapter to support render functionality
Applicable OS Versions:

Windows 8 Client x64
Page 440 of 907



Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
In Windows 8 and beyond WDDM has been extended to support a WDDM driver that is only
responsible for Rendering and Compute DDIs. Such a driver is not allowed to support any Display
Scan out capabilities.
A driver is considered a WDDM Render Only driver if one of the following two conditions is met:
1. The driver implements all the DDIs required for a full WDDM driver but reports 0 sources
and 0 targets
2. The driver implements all the Render specific DDIs and returns a null pointer for all the
Display specific DDIs. The DDIs required for this are called out below
Common WDDM DDIs
These DDI functions are for the common device functionalities such as PnP support and Power
support. These functions are required by all WDDM drivers and if not implemented the driver will
not be started by Windows. These DDIs are already documented in the WDK:
http://msdn.microsoft.com/en-us/library/ff554066(v=VS.85).aspx.
Required:
DxgkDdiAddDevice
DxgkDdiStartDevice
DxgkDdiStopDevice
DxgkDdiRemoveDevice
DxgkDdiDispatchIoRequest
DxgkDdiSetPowerState
DxgkDdiUnload
Optional:
DdiNotifyAcpiEvent *
* DdiNotifyAcpiEvent DDI function is used to notify graphics drivers on some ACPI events. It is
optional for rendering device. On normal WDDM graphics devices, this DDI function will return a flag
to indicate dxgkrnl.sys to take some further actions such as reset display mode or poll the connected
monitors. For the rendering only device, these flags are not used and must be set to zero
Rendering only DDIs
Page 441 of 907
These DDI functions are for the rendering functionalities.
Required:
DxgkDdiInterruptRoutine
DxgkDdiDpcRoutine
DxgkDdiResetDevice
DxgkDdiCreateDevice
DxgkDdiDestroyAllocation
DxgkDdiDescribeAllocation
DxgkDdiOpenAllocation
DxgkDdiCloseAllocation
DxgkDdiGetStandardAllocationDriverData
DxgkDdiSubmitCommand
DxgkDdiPreemptCommand
DxgkDdiBuildPagingBuffer
DxgkDdiResetFromTimeout
DxgkDdiRestartFromTimeout
DxgkDdiQueryCurrentFence
DxgkDdiControlInterrupt
DxgkDdiDestroyDevice
DxgkDdiPresent
DxgkDdiCreateAllocation
DxgkDdiPatch
DxgkDdiRender
DxgkDdiRenderKm
Optional:
If rendering hardware support swizzling ranger, driver should also supply following two functions
DxgkDdiAcquireSwizzlingRange
Page 442 of 907
DxgkDdiReleaseSwizzlingRange
Exceptions:
Not Specified
Business Justification:
Over the years there has been an increasing focus on GPGPU scenarios for doing vast amount of
complex mathematical or graphical operations. Some of the common examples of this are graphics
rendering for animation, database processing, financial & astronomical calculations and oil and gas
exploration. The use of GPGPU has proved benefits in performance, power consumption and cost.
This feature makes it easier for an OEM to ship a system specifically targeted for such a use without
having the added complexity of supporting a display device
Scenarios:
Server Render Farm User configures a Server system that only contains one GPU installed as a
Render only device and does not have any display devices connected to the system. The user
accesses this Server by utilizing Remote Desktop Sessions or alternate means. Now the user launches
a DirectX application that needs to use the advanced computing power of the GPU for some
processing (like graphics render farm) Note: GDI based applications will not work in this case unless,
a Full WDDM driver or a Display Only driver is installed along with this OR the user connects via a
Remote Desktop session. The application uses the DirectX APIs to enumerate WDDM GPUs and finds
the Render only device and utilizes it for its computational needs Additional GPU for compute User
configures a system with 2 GPUs. One a full WDDM driver which support Render and Display
functions. The second a WDDM render only driver that only support render functions The user has a
monitor connected to the full WDDM graphics hardware and uses it to log into the system Now the
user launches an application that needs to use the advanced computing power of the GPU for some
processing (like graphics render farm) The application uses the DirectX APIs to enumerate WDDM
GPUs and finds both the GPUs. The application selects the Render only device and utilizes it for its
computational needs but uses the Full WDDM driver for its UI rendering needs.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old ID Gfx8089
Device.Graphics.WDDM12.Render.D3D11VideoDecoding
Target Feature: Device.Graphics.WDDM12.Render
Title:
Display driver supports the DirectX 11 Video Decoder DDI
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows RT
Page 443 of 907

Windows Server 2012
Description:
Display WDDM 1.2 drivers must support the DirectX 11 Video Decoder DDI.
WDDM drivers must support at least one of the following sets of MPEG2 GUIDs:

D3D11_DECODER_PROFILE_MPEG2_VLD and D3D11_DECODER_PROFILE_MPEG2_IDCT

D3D11_DECODER_PROFILE_MPEG2_VLD and D3D11_DECODER_PROFILE_MPEG2_MOCOMP

D3D11_DECODER_PROFILE_MPEG2_IDCT

D3D11_DECODER_PROFILE_MPEG2AND1_VLD
And at least one of the H.264 GUIDs:

D3D11_DECODER_PROFILE_H264_MOCOMP_NOFGT

D3D11_DECODER_PROFILE_H264_MOCOMP_FGT

D3D11_DECODER_PROFILE_H264_VLD_NOFGT

D3D11_DECODER_PROFILE_H264_VLD_FGT
In addition, WDDM drivers must support at least one of the following VC1 modes:

D3D11_DECODER_PROFILE_VC1_MOCOMP

D3D11_DECODER_PROFILE_VC1_IDCT

D3D11_DECODER_PROFILE_VC1_VLD
WDDM drivers must support Standardized AES 128 (defined in the WDDM v1.1 specifications) for
both MPEG2 and H.264***.
Finally, WDDM drivers must support DXGI_FORMAT_420_OPAQUE and DXGI_FORMAT_NV_12 as
decoder output formats.
Design Notes

MPEG-2 support is required on x86 and x64 architectures and operating systems only.

** Note that it is not a requirement to implement the "Post-Proc" stage on
DXVA2_ModeVC1 GUIDs.

*** Standardized AES 128 support is required on x86 and x64 architectures and operating
systems only.
Exceptions:
Not Specified
Business Justification:
Page 444 of 907
Requiring video decode support on all Windows system ensure us that consumers can rely upon
Windows as a platform for viewing high-quality video content.
Scenarios:
The end-user wishes to watch video content in the most common video encoding formats: MPEG2,
H.264, and VC1 (Blu-ray). Media Foundation as well as a number of 3rd party applications utilize
DXVA2 for playback of these formats.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Old ID Gfx8072
Device.Graphics.WDDM12.Render.D3D11VideoProcessing
Target Feature: Device.Graphics.WDDM12.Render
Title:
Display driver supports appropriate DDIs for DirectX 11 Video Processing
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
The following video processor device capability DDIs must be supported:




BOB Deinterlacing

DXVAHDDDI_PROCESSOR_CAPS_DEINTERLACE_BOB

D3D11_1DDI_VIDEO_PROCESSOR_PROCESSOR_CAPS_DEINTERLACE_BOB
Constriction

DXVAHDDDI_FEATURE_CAPS_CONSTRICTION

D3D11_1DDI_VIDEO_PROCESSOR_FEATURE_CAPS_CONSTRICTION
Rotation

DXVAHDDDI_FEATURE_CAPS_ROTATION

D3D11_1DDI_VIDEO_PROCESSOR_FEATURE_CAPS_ROTATION
Arbitrary stretching/shrinking
Page 445 of 907

Both full and nominal RGB ranges must be supported on the input and the output YCbCr
data, specifically:

0 to 255

DXVAHDDDI_STREAM_STATE_INPUT_COLOR_SPACE_DATA
RGB_Range field is set to 0

DXVAHDDDI_BLT_STATE_OUTPUT_COLOR_SPACE_DATA RGB_Range field is set to 0


D3D11_1DDI_VIDEO_PROCESSOR_COLOR_SPACE RGB_Range field set to 0
16 to 235

DXVAHDDDI_STREAM_STATE_INPUT_COLOR_SPACE_DATA
RGB_Range field is set to 1

DXVAHDDDI_BLT_STATE_OUTPUT_COLOR_SPACE_DATA RGB_Range field is set to 1

D3D11_1DDI_VIDEO_PROCESSOR_COLOR_SPACE RGB_Range field set to 1

BT. 601 and BT. 709 conversion matrices must be supported on the input and the output
YCbCr data, specifically:

DXVAHDDDI_STREAM_STATE_INPUT_COLOR_SPACE_DATA.YCbCr_Matrix


Both setting the field to 0 (representing BT.601) and 1 (representing BT.709)
must be supported.
DXVAHDDDI_BLT_STATE_OUTPUT_COLOR_SPACE_DATA.YCbCr_Matrix


Both setting the field to 0 (representing BT.601) and 1 (representing BT.709)
must be supported.
D3D11_1DDI_VIDEO_PROCESSOR_COLOR_SPACE.YCbCr_Matrix

Both setting the field to 0 (representing BT.601) and 1 (representing BT.709)
must be supported.

Arbitrary background color

Per-stream source rectangle

Per-stream destination rectangle

Overall destination rectangle

At least one stream
The following formats must be supported for input:
Page 446 of 907

D3DFMT_420_OPAQUE

D3DFMT_NV12

D3DFMT_YUY2

Any formats supported as output from DXVA 2.0 decode or DirectX 11 Video decode
Depending on the feature level made available by the driver for Direct3D (e.g., 9.1 9.3 for Direct3D 9
DDIs, 10.0 for Direct3D 10 DDIs, etc.), the following formats must be supported for output:



9.1 9.3 Feature Levels

D3DFMT_A8R8G8B8

D3DFMT_NV12
10.0 10.1 Feature Levels

DXGI_FORMAT_R16G16B16A16_FLOAT

DXGI_FORMAT_R8G8B8A8_UNORM

DXGI_FORMAT_R10G10B10A2_UNORM

DXGI_FORMAT_R8G8B8A8_UNORM_SRGB

DXGI_FORMAT_NV12

The following formats are also required if the driver supports these as a swapchain
format:

DXGI_FORMAT_B8G8R8A8_UNORM

DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
11.0 Feature Level and beyond

DXGI_FORMAT_R16G16B16A16_FLOAT

DXGI_FORMAT_R8G8B8A8_UNORM

DXGI_FORMAT_R10G10B10A2_UNORM

DXGI_FORMAT_R8G8B8A8_UNORM_SRGB

DXGI_FORMAT_NV12, DXGI_FORMAT_B8G8R8A8_UNORM

DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
Page 447 of 907
Design Notes

MPEG-2 support is required on x86 and x64 architectures and operating systems only.
Exceptions:
Not Specified
Business Justification:
Basic functionality of defined in the most common video specifications (e.g., H.264, Blu-ray) require
conversion of all of the specified YUV formats to RGB data for display of video. In order to enable full
support for these encoding formats, all WDDM hardware must support these conversion
capabilities. High quality color conversion ensures comparable video quality can be obtained for
video to competitive platforms.
Scenarios:
The end-user wishes to watch video content in the most common video encoding formats: MPEG2,
H.264, and VC1 (Blu-ray). Media Foundation as well as a number of 3rd party applications utilize
D3D11 for playback of these formats.
Success Metric: Not Specified
Enforcement Date:
Not Specified
Comments:
New; Old ID Gfx8071
Device.Graphics.WDDM12.Render.DirectFlip
Target Feature: Device.Graphics.WDDM12.Render
Title:
Driver must Support the DirectFlip DDI
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
The driver must publish the SupportDirectFlip field as TRUE in the DXGK_DRIVERCAPS structure.
WDDM 1.2 drivers for the Direct3D 11 DDI must implement the
D3D11_1DDI_CHECKDIRECTFLIPSUPPORT DDI and return TRUE from the DDI when it is called with at
least the following parameters:

The app resource matches the DWM resource in format and pixel dimensions

The D3DDDI_CHECKDIRECTFLIP_IMMEDIATE flag not set
Page 448 of 907
WDDM 1.2 drivers for the Direct3D 9 DDI must implement the
D3DDDIARG_CHECKDIRECTFLIPSUPPORT DDI and return TRUE from the DDI when it is called with at
least the following parameters:

The app resource matches the DWM resource in format and pixel dimensions

The D3DDDI_CHECKDIRECTFLIP_IMMEDIATE flag not set
The driver must support the creation of shared primary swapchains, specifically identified as
resources created with:

pPrimaryDesc as non-NULL.

D3D10_DDI_RESOURCE_MISC_SHARED set in MiscFlags.

D3D10_DDI_BIND_SHADER_RESOURCE, D3D10_DDI_BIND_PRESENT, and
D3D10_DDI_BIND_RENDER_TARGET all set in BindFlags.
When the SharedPrimaryTransition bit is set in the DXGK_SETVIDVIDPNSOURCEADDRESS DDI, the
driver must:

Validate that the hardware can seamlessly switch between the two allocations.

Perform a seamless switch to the new primary indicated by the DDI.
Exceptions:
Not Specified
Business Justification:
To ensure optimal power consumption for video playback and other full-screen scenarios, providing
DirectFlip enables a minimum amount of memory bandwidth for displaying full-screen content while
ensuring smooth transitions between full-screen applications, other applications, and the desktop
environment.
Scenarios:
The user wishes to view a video or run an application that covers the entire screen. When the user
enters or exits the application or notifications appear over the application, no mode change is
required and the experience is smooth. Furthermore, the user enjoys extended battery life on
mobile devices as memory bandwidth requirements are reduced for full screen applications like
video.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.WDDM12.Render.FlipOnVSyncMmIo
Target Feature: Device.Graphics.WDDM12.Render
Page 449 of 907
Title: WDDM1.2 drivers supports a memory mapped I/O (MMIO)-based flip that takes effect on
the next vertical sync
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
All WDDM1.2 drivers must publish the FlipOnVSyncMmIo field as TRUE in the DXGK_FLIPCAPS
structure, and implement behavior outlined under FlipOnVSyncMmIo here:
http://msdn.microsoft.com/en-us/library/ff561069(v=VS.85).aspx
Exceptions:
Not Specified
Business Justification:
In Windows 8, the GPU scheduler will attempt to preempt hardware even in the presence of pending
flips. To prevent tearing and rendering artifacts the driver is required to support the MmIoFlip based
model. Explicitly requiring this support upfront will reduce the chance of rendering issues appearing
on customer machines. In addition, support for the hardware flip queue code path is eliminated. In
past operating systems, this led to some reliability problems which were difficult to diagnose.
Scenarios:
The user wishes to play a game on a powerful desktop with multiple GPUs in a Linked adapter (LDA)
configuration, examples of which are AMD PowerExpress, and NVIDIA Hybrid power. The user is
pleased with performance of task switching and absence of rendering artifacts when this happens.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New;
Device.Graphics.WDDM12.Render.OfferReclaim
Target Feature: Device.Graphics.WDDM12.Render
Title:
WDDM 1.2 drivers must use the Offer and Reclaim DDI to reduce memory footprint
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Page 450 of 907
Description:
WDDM 1.2 drivers must use the new UMD Offer and Reclaim DDI to reduce the overhead of memory
resources created for temporary surfaces in local video and system memory. An example is the use
of staging buffers to accelerate the process of uploading data to GPU local memory. By offering
these resources, the operating system can reuse the memory without risking the expense of
destroying and recreating them at high frequency.
WDDM Drivers also often keep allocations that an application is no longer using so that if the
application creates another allocation with the same properties, it can give back the old one. This
reduces the performance impact of rapidly destroying and re-creating allocations, a common bad
behavior for applications, but it also can have a very high memory cost. By offering those allocations,
the WDDM 1.2 driver can keep most of its performance without wasting memory.
Below are detailed sub-requirements:

WDDM 1.2 drivers must always Offer internal staging buffers once they have been used.
These temporary buffers generally hold data being moved or copied from a source to a
destination. In Windows 7 and previous operating systems, these temporary surfaces are left
in memory even though they were no longer in use.

WDDM 1.2 drivers must always Offer the deferred deletions of surfaces which are recycled:
If a driver decides to defer the destruction of a surface, it must at least offer it to the video
memory manager.

WDDM 1.2 driver should only Offer packed allocations when all of the individual resources
contained in the allocation have been Offer-ed. The allocation as a whole should be
reclaimed when any individual resources have been reclaimed.

WDDM 1.2 drivers must always Offer Discarded allocations if it implements its own
Renaming mechanism.

WDDM 1.2 drivers should never pack allocations larger than 64KB with other allocations,
guaranteeing for application that offer will give them the expected benefit.
For more details on the use of the Offer and Reclaim WDDM v1.2 DDI, please refer to the Windows 8
WDK documentation.
Exceptions:
Not Specified
Business Justification:
Use of Offer and Reclaim API by WDDM 1.2 drivers will provide the following benefits: WDDM 1.2
drivers using this API will use less memory resources under memory pressure. More memory will be
available for other applications running on the system and are in need of system memory. Releasing
memory allocations used by temporary staging surfaces once the work is done will result in a lower
memory footprint for WDDM drivers and also applications which use the Offer API. Reduced time to
enter and come out of Hibernate memory resources offered by WDDM 1.2 drivers will be deleted
when the system enters Hibernate. This will reduce the time to enter Hibernation.
Page 451 of 907
Scenarios:
Use of Offer and Reclaim API by WDDM 1.2 drivers will result in efficient use of video and system
memory. On systems with less system memory, more memory will be available to other applications
running on the system as the WDDM v1.2 drivers will Offer back memory resources when not
needed. On systems with sufficient system memory with no memory pressure, the applications will
be able to use generous amounts of memory through extra caches and temporary surfaces to speed
up performance. Under memory pressure, the use of the Offer and Reclaim API will result in prudent
use of memory, making it available to other applications when needed. Temporary memory
resources which are Offered by the WDDM 1.2 driver will be deleted by the Video Memory Manager
when the system goes into Hibernation. This will result in time savings in the event of system
hibernation as these resources do not have to be written to the Hiberfile. Time for system resume
will also be correspondingly less as the Hiberfile is smaller.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Old ID Gfx8086
Device.Graphics.WDDM12.Render.PreemptionGranularity
Target Feature: Device.Graphics.WDDM12.Render
Title:
WDDM 1.2 drivers must report the granularity level of GPU Preemption.
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
A WDDM 1.2 driver must report the GPU Preemption granularity for running Graphics and Compute
scenarios.
The WDDM 1.2 must do the following:

The WDDM 1.2 driver must first set the PreemptionAware flag and the MultiEngineAware
flag in the _DXGK_VIDSCHCAPS structure through the DxgkDdiQueryAdapterInfo DDI.

The WDDM 1.2 driver must set the appropriate GPU Preemption granularity through
D3DKMDT_PREEMPTION_CAPS PreemptionCaps.
There is no mandatory requirement on the actual level of preemption for Graphics or Compute. For
example, if a GPU does not support any level of Mid-DMA Buffer Graphics Preemption such as that
on the triangle boundary or others, then it can report this cap as
D3DKMDT_GRAPHICS_PREEMPTION_DMA_BUFFER_BOUNDARY. Similarly, if it does not support any
Page 452 of 907
level of finer grained preemption for Compute, then it must report the cap as
D3DKMDT_COMPUTE_PREEMPTION_DMA_BUFFER_BOUNDARY.
However, if the GPU does support Mid-DMA Buffer or Packet Preemption, then the WDDM 1.2
driver must choose the appropriate cap in order to take advantage of the benefits offered by finer
grained GPU Preemption for Graphics and/or Compute.
For more details on the use of the GPU Preemption WDDM v1.2 DDI, please refer to the Windows 8
WDK documentation.
Exceptions:
Not Specified
Business Justification:
The goal of GPU Preemption is to improve desktop and touch responsiveness by allowing desktop
compositions and foreground applications low latency access to the GPU even on a busy desktop
with the GPU being used for background compute task. GPU Compute has become more pervasive
over the past decade. GPUs are increasingly used for distributed computing and data-parallel tasks
such as image processing, video encoding and decoding, scientific simulation and several others.
Depending on the exact nature of the workload, some of these tasks take significant amounts of
time to complete execution. When needed, these long-running tasks need to be interrupted as
quickly as possible so that the GPU can be used to render the desktop or response from user touch
input. A WDDM 1.2 driver which supports GPU Preemption as highlighted in the Details section
above will also benefit from better system fault-tolerance through the TDR Improvements feature.
Scenarios:
On capable hardware, the GPU can be preempted in the middle of execution of a DMA buffer if
there is another task waiting on the GPU. Long-running Compute tasks do not interfere with the
responsiveness of the UI of other graphics applications running at the same time.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Old id Gfx8091
Device.Graphics.WDDM12.Render.TDRResiliency
Target Feature: Device.Graphics.WDDM12.Render
Title: WDDM 1.2 drivers for GPUs which support Per-Engine Reset must implement the Windows 8
DDI for TDR Resiliency.
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Page 453 of 907
Description:
A WDDM 1.2 driver for a GPU supporting Per-Engine Reset must implement the TDR DDI for
improved reliability and resiliency.
The WDDM 1.2 must do the following:

The WDDM 1.2 driver must satisfy the WDDM 1.2 GPU Preemption requirement.

The WDDM 1.2 driver must implement the following GPU Engine DDIs:


QueryDependentEngineGroup

QueryEngineStatus

ResetEngine
WDDM 1.2 drivers must continue supporting the pre-Windows 8 TDR behavior of Adapterwide Reset and Restart. Semantics of these existing DDIs remain the same as before
Windows 8.
For more details on the use of the GPU Preemption and TDR Improvements WDDM v1.2 DDI, please
refer to the Windows 8 WDK documentation.
Exceptions:
Not Specified
Business Justification:
The goal of an improved mechanism for GPU Timeout Detection & Recovery (or TDR) is improved
resiliency to GPU hangs which are triggered by long-running graphics workloads taking more than
the allowed time for work completion. On previous Windows operating systems, repeated
operations like these result in repeated TDRs which eventually crash the system. Applications which
do compute on the GPU that can submit work to the GPU can also take much longer to complete
than the allowed timeout. With the Windows 8 feature support for GPU Preemption, these tasks can
execute without interfering with other applications, including the desktop window manager (DWM).
The TDR improvements consist of the following changes: Detection change: Allow applications to opt
out of TDR if they want to (long-running compute scenarios). This class of applications won’t hit a
TDR for running for extended periods of time as long as the application remains pre-emptible and
allows other tasks to run. Recovery change: Only the hung GPU engine is reset and only the device
having submitted the work is put in error; no one else is impacted by the TDR. Repeated TDRs: There
will be no more bugchecks on repeated TDRs in most cases. Applications having caused multiple
successive faults won’t be allowed to touch the GPU for some amount of time. Non-interactive
applications such as Compute applications will be allowed to use as much of the GPU as they need as
long as they don't interfere with other applications which need to share the GPU. In order to keep
the desktop responsive, applications that negatively interfere with DWM will be penalized by
preventing them from accessing the GPU.
Scenarios:
Page 454 of 907
Per-Process TDR: Windows 8 will reset only the offending process which caused the TDR. Other
running processes will not be impacted. Compute applications: Compute applications can utilize the
GPU and keep running for extended periods of time as long as there are no other applications
waiting on GPU resources.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Old ID Gfx8084
Device.Graphics.WDDM12.Render.UMDLogging
Target Feature: Device.Graphics.WDDM12.Render
Title: WDDM 1.2 drivers must implement WDDM User-Mode Driver or UMD Logging to aid
diagnosability.
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows Server 2012
Description:
A WDDM 1.2 driver must expose the relationship between the Direct3D resources and Video
Memory allocations by implementing the UMD logging ETW interfaces. Below are the specific
requirements for the drivers:

UMD must report allocation size specified in CreateResource call, even if size of memory
allocated is greater

UMD must log MapAllocation event for each of its internal allocation and specify purpose of
that allocation

UMD must log MapAllocation event for each renamed surface

UMD must log MapAllocation for every surface that it packs into an existing surface

UMD must log MapAllocation for every surface that currently exists in the event of a
rundown

UMD must log MapAllocation in response to CreateResource call, even if no new memory is
allocated

UMD must log UnmapAllocation each time its internal allocation is destroyed

UMD must log UnmapAllocation each time application destroys and allocation, even if actual
memory allocation is not destroyed
Page 455 of 907

UMD must log UnmapAllocation each time it closes one of the renamed allocations

UMD must log UnmapAllocation for each surface that is packed into a larger allocation
In addition to logging MapAllocation and UnmapAllocation events as they happen, the Graphics
Driver must be able to report all existing mappings between resources and allocations at any point in
time.
For more details on the use of the UMD Logging WDDM v1.2 DDI, please refer to the Windows 8
WDK documentation.
Exceptions:
Not Specified
Business Justification:
With an increasing number of graphics applications utilizing GPU resources, the diagnosability of
graphics performance and video memory related issues has become critical. To get a more
actionable breakdown of video memory, the driver needs to expose the relationship between D3D
resources and VidMm allocations. With this information added to ETW traces it will be possible to
see the video memory allocations from the APIs perspective. For developers, it will clarify memory
costs that are currently very hard to see, like internal fragmentation or the impact of rapidly
discarding surfaces. It will also enable Microsoft to work better with customers and partners who
provide traces for analysis of performance problems. In particular it will help overcome a common
blocking point in investigating memory-related performance issues: the application is using too large
a working set, but cannot tell which API resources or calls are causing the problem.
Scenarios:
Developer Experience: Graphics application developers and system manufacturers will be able to get
insight into video memory usage patterns using tools leveraging ETW tracing. These tools will help
the developers optimize the performance and particularly memory footprint of their applications on
Windows 8 systems.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; old ID Gfx8085
Device.Graphics.WDDM12.Render.XPSRasterizationConformance
Target Feature: Device.Graphics.WDDM12.Render
Title:
WDDM 1.2 drivers must support XPS Rasterization
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Page 456 of 907
Description:
To ensure a quality printing experience on Windows 8 the WDDM1.2 Graphic drivers must support
XPS Rasterization
Exceptions:
Not Specified
Business Justification:
In Windows 8, the XPS Rasterization component uses Direct2D in hardware rendering mode to
rasterize XPS pages into WIC bitmaps whenever the component is invoked on a machine with a
WDDM 1.2 driver. The XPS Rasterization component is used by many print device drivers to produce
device specific PDLs. The XPSRAS Display Conformance Requirement tests whether a WDDM 1.2 GPU
driver produces correct rasterization results when used by Direct2D in the context of the XPS
Rasterizer. The XPS Rasterizer is a system component used heavily by Windows print drivers to
rasterize an XML Paper Specification (XPS) Print Descriptor Language (PDL). To determine the
correctness of rasterization results, a comparison is performed between the results obtained from
the XPS Rasterizer when executed on a system with the subject WDDM 1.2 GPU driver, and results
obtain from baseline use of the XPS Rasterizer.
Scenarios:
Content printed on Windows 8 to a print device that uses the XPS Rasterization component looks the
same as content printed to the same device on Windows 7.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Old ID Gfx8090
Device.Graphics.WDDM12.RenderOnly
Description:
The optional feature set implemented by WDDM 1.2 drivers which support only the render specific
DDIs.
Related Requirements:

Device.Graphics.WDDM12.RenderOnly.Base
Device.Graphics.WDDM12.RenderOnly.Base
Target Feature: Device.Graphics.WDDM12.RenderOnly
Title:
Requirements for a WDDM graphics adapter to support render functionality
Applicable OS Versions:

Windows 8 Client x64
Page 457 of 907



Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
In Windows 8 and beyond WDDM has been extended to support a WDDM driver that is only
responsible for Rendering and Compute DDIs. Such a driver is not allowed to support any Display
Scan out capabilities.
A driver is considered a WDDM Render Only driver if one of the following two conditions is met:
1. The driver implements all the DDIs required for a full WDDM driver but reports 0 sources
and 0 targets
2. The driver implements all the Render specific DDIs and returns a null pointer for all the
Display specific DDIs. The DDIs required for this are called out below
Common WDDM DDIs
These DDI functions are for the common device functionalities such as PnP support and Power
support. These functions are required by all WDDM drivers and if not implemented the driver will
not be started by Windows. These DDIs are already documented in the WDK.
Required:
DxgkDdiAddDevice
DxgkDdiStartDevice
DxgkDdiStopDevice
DxgkDdiRemoveDevice
DxgkDdiDispatchIoRequest
DxgkDdiSetPowerState
DxgkDdiUnload
Optional:
DdiNotifyAcpiEvent *
* DdiNotifyAcpiEvent DDI function is used to notify graphics drivers on some ACPI events. It is
optional for rendering device. On normal WDDM graphics devices, this DDI function will return a flag
to indicate dxgkrnl.sys to take some further actions such as reset display mode or poll the connected
monitors. For the rendering only device, these flags are not used and must be set to zero
Rendering only DDIs
These DDI functions are for the rendering functionalities.
Page 458 of 907
Required:
DxgkDdiInterruptRoutine
DxgkDdiDpcRoutine
DxgkDdiResetDevice
DxgkDdiCreateDevice
DxgkDdiDestroyAllocation
DxgkDdiDescribeAllocation
DxgkDdiOpenAllocation
DxgkDdiCloseAllocation
DxgkDdiGetStandardAllocationDriverData
DxgkDdiSubmitCommand
DxgkDdiPreemptCommand
DxgkDdiBuildPagingBuffer
DxgkDdiResetFromTimeout
DxgkDdiRestartFromTimeout
DxgkDdiQueryCurrentFence
DxgkDdiControlInterrupt
DxgkDdiDestroyDevice
DxgkDdiPresent
DxgkDdiCreateAllocation
DxgkDdiPatch
DxgkDdiRender
DxgkDdiRenderKm
Optional:
If rendering hardware support swizzling ranger, driver should also supply following two functions
DxgkDdiAcquireSwizzlingRange
DxgkDdiReleaseSwizzlingRange
Page 459 of 907
Exceptions:
Not Specified
Business Justification:
Over the years there has been an increasing focus on GPGPU scenarios for doing vast amount of
complex mathematical or graphical operations. Some of the common examples of this are graphics
rendering for animation, database processing, financial & astronomical calculations and oil and gas
exploration. The use of GPGPU has proved benefits in performance, power consumption and cost.
This feature makes it easier for an OEM to ship a system specifically targeted for such a use without
having the added complexity of supporting a display device
Scenarios:
Server Render Farm User configures a Server system that only contains one GPU installed as a
Render only device and does not have any display devices connected to the system. The user
accesses this Server by utilizing Remote Desktop Sessions or alternate means. Now the user launches
a DirectX application that needs to use the advanced computing power of the GPU for some
processing (like graphics render farm) Note: GDI based applications will not work in this case unless,
a Full WDDM driver or a Display Only driver is installed along with this OR the user connects via a
Remote Desktop session. The application uses the DirectX APIs to enumerate WDDM GPUs and finds
the Render only device and utilizes it for its computational needs. Additional GPU for compute User
configures a system with 2 GPUs. One a full WDDM driver which support Render and Display
functions. The second a WDDM render only driver that only support render functions. The user has a
monitor connected to the full WDDM graphics hardware and uses it to log into the system Now the
user launches an application that needs to use the advanced computing power of the GPU for some
processing (like graphics render farm) The application uses the DirectX APIs to enumerate WDDM
GPUs and finds both the GPUs. The application selects the Render only device and utilizes it for its
computational needs but uses the Full WDDM driver for its UI rendering needs.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Old ID Gfx8089
Device.Graphics.WDDM12.StandbyHibernateFlags
Description:
The optional feature implemented by WDDM 1.2 drivers supporting the new stand by hibernation
flags.
Related Requirements:

Device.Graphics.WDDM12.StandbyHibernateFlags.StandbyHibernateFlags
Device.Graphics.WDDM12.StandbyHibernateFlags.StandbyHibernateFlags
Target Feature: Device.Graphics.WDDM12.StandbyHibernateFlags
Page 460 of 907
Title: WDDM v1.2 graphics drivers can optionally specify if they support the Windows 8 optimized
standby or hibernate flags
Applicable OS Versions:




Windows 8 Client x64
Windows 8 Client x86
Windows RT
Windows Server 2012
Description:
To improve performance on sleep & resume for standby and hibernate, a WDDM 1.2 drivers can
utilize the new StandbyHibernateFlags (PreservedDuringStandby, PreservedDuringHibernate, and
PartiallyPreservedDuringHibernate). To utilize this feature drivers must set one or more of the
StandbyHibernateFlags when enumerating segment capabilities. Doing so indicates that eviction
should be skipped during power state transition for the corresponding segments. Verification of
memory retention during power transition will be verified for all WDDM 1.2 driver setting a
StandbyHibernateFlag.
Exceptions:
Not Specified
Business Justification:
Smarter Resource Utilization: Reduction in sleep and resume times by avoiding unnecessary memory
eviction and duplication in Integrated Graphics. End user experience: By reducing the response time
for resume from standby state, PC users will be less frustrated and can become productive faster
with quicker access to their productivity tools.
Scenarios:
Sleep: Whenever a user closes the laptop lid for switching between conference rooms, the user will
notice Windows 8 responds quickly to power down and sleep in comparison with the Windows 7
experience. Resume: PCs are quickly accessible to users when resuming from sleep, while remaining
silent and consuming the least possible power when not actively working.
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Old ID Gfx8093
Device.Graphics.XDDM
Description:
The base feature set implemented by drivers developed using the XDDM
Related Requirements:

Device.Graphics.XDDM.Stability
Page 461 of 907
Device.Graphics.XDDM.Stability
Target Feature: Device.Graphics.XDDM
Title: All XDDM graphics drivers must not generate any hangs or faults under prolonged stress
conditions.
Applicable OS Versions:

Windows Server 2008 R2 x64
Description:
Graphics drivers must function properly, and not generate any hangs or faults throughout the
duration of stress testing as specified in the

"Legacy Stress Profile"
To "stress" a graphics driver, Comparative Reliability Analyzer for Software and Hardware (CRASH)
launches and terminates other test applications to simulate real-world scenarios.
Exceptions:
Not Specified
Business Justification:
The CRASH tests which are exercised through this logo requirement ensure reliability and stability of
the graphics driver on the Windows platform. These tests which simulate various productivity,
graphics and gaming scenarios exercise various code paths in the graphics stack. They also stress the
system to ensure that the stability is not affected with an increased workload.
Scenarios:
The CRASH tests exercise the following scenarios in a stress environment. It ensures that these
common end-user scenarios work under stress conditions without affecting the end-user
experience:Productivity Desktop Graphics Gaming
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
New; Win7 Graphics-0023
Device.Imaging.Printer.Base
Description:
Not Specified
Related Requirements:


Device.Imaging.Printer.Base.applicationVerifier
Device.Imaging.Printer.Base.autoConfiguration
Page 462 of 907

























Device.Imaging.Printer.Base.configurationFiles
Device.Imaging.Printer.Base.connectionRecovery
Device.Imaging.Printer.Base.connectivityRobustness
Device.Imaging.Printer.Base.deviceCapabilities
Device.Imaging.Printer.Base.DocumentProperties
Device.Imaging.Printer.Base.driverCategory
Device.Imaging.Printer.Base.DriverEventFiles
Device.Imaging.Printer.Base.driverIsolation
Device.Imaging.Printer.Base.driverPackage
Device.Imaging.Printer.Base.driverStability
Device.Imaging.Printer.Base.faxModem
Device.Imaging.Printer.Base.faxTIA592
Device.Imaging.Printer.Base.faxV34
Device.Imaging.Printer.Base.GDLFile
Device.Imaging.Printer.Base.infFile
Device.Imaging.Printer.Base.jobCancellation
Device.Imaging.Printer.Base.metadata
Device.Imaging.Printer.Base.portMonitors
Device.Imaging.Printer.Base.PrinterExtension
Device.Imaging.Printer.Base.printerInterfaces
Device.Imaging.Printer.Base.printProcessor
Device.Imaging.Printer.Base.printRegions
Device.Imaging.Printer.Base.printTicket
Device.Imaging.Printer.Base.rendering
Device.Imaging.Printer.Base.TCPMon
Device.Imaging.Printer.Base.applicationVerifier
Target Feature: Device.Imaging.Printer.Base
Title:
Printer driver components must comply with Application Verifier test criteria
Applicable OS Versions:






Windows 8 Client x64
Windows 8 Client x86
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
All user-mode modules (.dll or .exe files) that are part of a printer driver must satisfy the criteria for
Application Verifier tests. During driver testing, Application Verifier must be turned on for processes
Page 463 of 907
in which the driver modules execute. Application Verifier causes a break when Application Verifier
detects an error.
For printer drivers, common applications that must have Application Verifier turned on during
testing are the following:

Splwow64.exe.

Spoolsv.exe. The process loads the rendering and UI portions of the driver during print
testing.

Printfilterpipelinesvc.exe. The process loads the XPS rendering filters.

Any vendor-supplied applications that are part of the driver package, such as a custom
status monitor. All portions of the driver package that is being signed must be robust.

Any tests that load driver modules for rendering or UI purposes. The tests commonly load UI
and rendering modules
The following Application Verifier tests must be turned on for these processes during testing:

Heap

Locks

Handles

FilePaths

HighVersionLie

DFWChecksNonSetup

SecurityChecks

Printing
Design Notes: For information about Application Verifier, see
http://go.microsoft.com/fwlink/?LinkId=58371.
Exceptions:
Not Specified
Business Justification:
Application Verifier tests catch common hard-to-diagnose programming errors during runtime and
make the problems repeatable and explicit. Enabling Application Verifier is very important to making
robustness testing effective.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
July 11, 2008
Page 464 of 907
Comments:
IMAGING-0044
Device.Imaging.Printer.Base.autoConfiguration
Target Feature: Device.Imaging.Printer.Base
Title:
Printers must support autoconfiguration
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
If the print device supports installable hardware options, such as memory, duplex units, or finisher
units, the print driver must support the automatic update of the device configuration that is
registered in the system. Device configuration includes print UIs that are associated with the driver
and the result of platform APIs that report device configuration. Automatic updates must not require
end-user intervention. A device that does not support installable hardware options automatically
satisfies this requirement.
Design Notes:
The next version of Windows supports print driver autoconfiguration as defined in the Windows
Driver Kit documentation. Although this requirement does not require autoconfiguration as defined
in the Windows Driver Kit documentation, it is recommended.
Exceptions:
Not Specified
Business Justification:
Autoconfiguration of printers is a platform advancement feature that is provided for independent
hardware vendors (IHVs).
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Page 465 of 907
Device.Imaging.Printer.Base.ConfigurationFiles
Target Feature: Device.Imaging.Printer.Base
Title:
Version 4 print drivers provide valid configuration files.
Applicable OS Versions:



Windows Server 2012
Windows 8 Client x86
Windows 8 Client x64
Description:
Version 4 print drivers must provide validconfigurationfiles.

These files must be syntactically valid according to the WDK.

When supported by the hardware, the configuration files must support the following
features:

Orientation

Duplexing

Collate

N-Up

Paper Size

Paper Type

Tray

Quality

Color

Stapling

Hole-punches

Binding

GPD or PPD files should define the majority of the features and constraints represented in
the driver's PrintCapabilities. JavaScript implementations should supplement these
capabilities as needed.

JavaScript files must be syntactically valid according to the WDK.

They must be included in the driver package and cannot be in a subdirectory in the
package.
Page 466 of 907

They may be included only with version 4 print drivers

They should be designed securely and validate any untrusted data that will be
parsed; this includes PrintCapabilities, PrintTicket, XPS Documents and Property
Bags.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
Not Specified
Device.Imaging.Printer.Base.connectionRecovery
Target Feature: Device.Imaging.Printer.Base
Title: A printer must continue to operate normally if a computer becomes unavailable during a
print job
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
If a computer becomes unavailable during a print job (for example, if the computer enters a sleep
state or a network failure or other event interrupts the connection between the computer and
printer), the printer must recover so that normal print operations can continue without user
interaction.
Design Notes:
Specifically, the printer must not fail into a state in which the end user must manually power cycle
the printer or clear a paper jam.
The printer does not have to complete or continue the failed print job when the computer becomes
available again. However, when computer-to-printer communication is restored, new print jobs
must be able to spool and complete normally.
Exceptions:
Not Specified
Page 467 of 907
Business Justification:
Because some users do not have immediate access to or sole control of a printer, it is important that
the printer fail gracefully and continue to process print jobs without problems even when a single
job is interrupted. This is especially important in corporate scenarios.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
Not Specified
Device.Imaging.Printer.Base.connectivityRobustness
Target Feature: Device.Imaging.Printer.Base
Title:
A printer must recover from a surprise disconnect or reconnect
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Printers must be able to recover from a surprise disconnect or reconnect from the host or the
network, regardless of what the printer is doing at the time. The disconnect or reconnect must leave
the system in a consistent state. The host must be able to submit the next print job. It is not
acceptable to require a reboot of the host or the printer to re-establish communications. The
existing job does not have to complete after the reconnect occurs.
Design Notes: The printer does not have to finish or resume the current print job or any print jobs
already in the printer’s memory. The printer must behave normally after the computer reconnects.
All print jobs must print normally after communication is restored.
Exceptions:
Not Specified
Business Justification:
This requirement improves device and driver robustness to reduce the need for user or
administrator intervention.
Scenarios:
Not Specified
Page 468 of 907
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Printer.Base.deviceCapabilities
Target Feature: Device.Imaging.Printer.Base
Title: A printer must correctly support the DeviceCapabilities and GetDeviceCaps application
programming interfaces (APIs) based on the guidelines in the Windows Driver Kit
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
This requirement clarifies the use of existing WLK tests. The Print Driver Device Capabilities test
determines whether the printer driver returns the correct information for the DeviceCapabilities
and GetDeviceCaps API calls.
For more information, see http://msdn.microsoft.com/en-us/library/dd183552(v=vs.85).aspx and
http://msdn.microsoft.com/en-us/library/ff566075(v=VS.85).aspx.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Printer.Base.DocumentProperties
Target Feature: Device.Imaging.Printer.Base
Title: A driver must implement the DocumentProperty API according to the guidelines in the
Windows Driver Kit
Page 469 of 907
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
This test clarifies the use of existing WLK tests. The Document Properties test exercises a printer
driver's user interface (UI). The test calls the DocumentProperties API by using various well-formed
and malformed parameters. The test then validates the results. For more information, see
http://msdn.microsoft.com/en-us/library/ff562200(v=vs.85).aspx.
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure that drivers are implemented correctly.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Printer.Base.driverCategory
Target Feature: Device.Imaging.Printer.Base
Title:
Version 4 printer drivers must declare a valid printer category
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows Server 2012
Description:
All V4 printer drivers must declare a validDriverCategory in their driver manifest.
V3 drivers are not required to declare a category. If a V3 driver does declare a DriverCategory, it
must be valid value.
The DriverCategory must be one of the following values:
Page 470 of 907

PrintFax.Printer

PrintFax.Fax

PrintFax.Printer.File

PrintFax.Printer.Virtual

PrintFax.Printer.Service
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
July 10, 2008
Not Specified
Device.Imaging.Printer.Base.DriverEventFiles
Target Feature: Device.Imaging.Printer.Base
Title:
Driver Event files are implemented according to the guidance in the WDK
Applicable OS Versions:



Windows Server 2012
Windows 8 Client x86
Windows 8 Client x64
Description:
Driver Event files are implemented according to the guidance in the WDK

Driver Event files are syntactically valid
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
Not Specified
Device.Imaging.Printer.Base.driverIsolation
Target Feature: Device.Imaging.Printer.Base
Page 471 of 907
Title:
A printer driver that supports driver isolation must do so as defined in Windows Driver Kit
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Print drivers must support driver isolation as defined in the Windows Driver Kit. With driver
isolation, the printer executes print-related plug-ins such as drivers and print processors out of the
spooler process. This increases print system stability.
Design Notes:
The Print Driver Sandboxing technical white paper is planned for a future date. Please send requests
to prninfo@microsoft.com.
Exceptions:
Not Specified
Business Justification:
Driver isolation improves system robustness.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
6/1/2009 Comments:
Not Specified
Device.Imaging.Printer.Base.driverPackage
Target Feature: Device.Imaging.Printer.Base
Title:
Print device drivers must support package installation infrastructure
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Page 472 of 907
A driver that depends on other driver packages must declare that it is package-aware and use the
new dependency definition keywords.
Design Notes: Vendors must use the package installation infrastructure as defined in the Windows
Driver Kit.
Exceptions:
Not Specified
Business Justification:
The new package infrastructure enables several scenarios, such as Secure Point and Print, printer
migration, and system backup.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2007
imaging-0009
Device.Imaging.Printer.Base.driverStability
Target Feature: Device.Imaging.Printer.Base
Title:
Printer driver components do not cause a break in any process in which they are loaded
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
A driver must not cause a break in the spooler service (spoolsv.exe) or in any other process in which
the driver's components are loaded. Breaks must not occur in the driver modules themselves or
indirectly through leaving the process in an inconsistent state, such as by corrupting process
memory.
Exceptions:
Not Specified
Business Justification:
Improving device and device driver robustness reduces the need for user or administrator
intervention.
Page 473 of 907
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2007
Not Specified
Device.Imaging.Printer.Base.faxModem
Target Feature: Device.Imaging.Printer.Base
Title:




Fax modem successfully sets up a connection and transmits pages Applicable OS Versions:
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Description:
A fax modem must meet the following requirements:
The modem must be able to send and receive five faxes of 10 pages in various document formats.
When a service shutdown or hibernate is requested, the modem must abort all ongoing calls (both
send and receive).
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure that faxes are implemented correctly.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Imaging 0003
Device.Imaging.Printer.Base.faxTIA592
Target Feature: Device.Imaging.Printer.Base
Title:
Fax Class 2.0 implementations must comply with the TIA-592 command set
Applicable OS Versions:

Windows 8 Client x64
Page 474 of 907



Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Description:
If the device supports Fax Class 2.0, the fax must comply with the TIA-592 standard.
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure compliance with industry standards.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Printer.Base.faxV34
Target Feature: Device.Imaging.Printer.Base
Title:
Any Fax V.34 implementation must comply with ITU-T recommendation V.34
Applicable OS Versions:




Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Description:
A fax that supports V.34 must adhere to International Telecommunications Union
Telecommunication Standardization Sector (ITU-T) recommendation V.34: "A modem operating at
data signaling rates of up to 33,600 bit/s for use on the general switched telephone network and on
leased point-to-point 2-wire telephone-type circuits".
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure compliance with industry standards.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
June 01, 2006
Page 475 of 907
Comments:
Not Specified
Device.Imaging.Printer.Base.GDLFile
Target Feature: Device.Imaging.Printer.Base
Title:
GDL files must use correct syntax according to the guidelines in the Windows Driver Kit
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
This requirement clarifies the use of existing WLK tests. The Generic Description Language (GDL)
Correctness Test determines whether GDL files use correct syntax according to the WDK.
For more information, see http://msdn.microsoft.com/en-us/library/ff549787(v=VS.85).aspx and
http://msdn.microsoft.com/en-us/library/ff563355(v=VS.85).aspx.
Exceptions:
Not Specified
Business Justification: GDL files must be syntactically correct
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Printer.Base.infFile
Target Feature: Device.Imaging.Printer.Base
Title:
INF files must use the correct syntax according to the guidelines in the Windows Driver Kit
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Page 476 of 907
Description:
This requirement clarifies the use of existing WLK tests.
INFGate determines whether INF files and v4 manifest use correct syntax according to the WDK.
Version 4 print drivers use version 4 INFs and manifest files. V4 driver INF must:

Define a PrinterDriverID for each driver in the INF to indicate when drivers are compatible
for the sake of printer sharing

PrinterDriverID must be GUID

Set a DataFile as a GPD or PPD file

Use only the following DestinationDirs: DriverStore, 66000; or Color directory, 66003

Must specify a filter xml pipeline config file named *-pipelineconfig.xml, OR specify
RequiredClass in the v4 driver manifest
V4 driver manifest files must:

Define a PrinterDriverID for each driver in the manifest to indicate when drivers are
compatible for the sake of printer sharing.

PrinterDriverID must be GUID

Set a DataFile as a GPD or PPD file
V4 drivers must not:
Utilize any of the following INF directives ClassInstall32, ClassInstall32.Services, DDInstall.Services,
DDInstall.HW, DDInstall.CoInstallers, DDInstall.FactDef, DDInstall.LogConfigOverride,
DDInstall.Interfaces, InterfaceInstall32, DefaultInstall, DefaultInstall.Services, AddReg, DelReg,
DelFiles, RenFiles, AddService, DelService, AddInterface, BitReg, LogConfig, UpdateInis,
UpdateIniFields, or Ini2Reg.
Version 3 INF files must use correct syntax according to the WDK.
For more information on v3 INF files, see http://msdn.microsoft.com/enus/library/ff560902(v=VS.85).aspx and http://msdn.microsoft.com/enus/library/ff563414(v=VS.85).aspx.
Exceptions:
Not Specified
Business Justification: This requirement helps ensure that INF files are written correctly.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
June 01, 2006
Page 477 of 907
Comments:
Not Specified
Device.Imaging.Printer.Base.jobCancellation
Target Feature: Device.Imaging.Printer.Base
Title:
A printer must handle software problems or print job cancellations gracefully
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
If a driver encounters a software-related problem when the driver spools or de-spools a print job,
the driver must ensure that jobs can successfully print in the future.
Printers also must be able to handle a job being canceled at any time without wasting consumables,
such as print media, or entering a state that requires human intervention to print.
Exceptions:
Not Specified
Business Justification:
Poorly written drivers can stop print queues on print servers that are under heavy load, preventing
any forward progress. This requirement improves device and device driver robustness to reduce the
need for user or administrator intervention.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
July 10, 2008
Not Specified
Device.Imaging.Printer.Base.metadata
Target Feature: Device.Imaging.Printer.Base
Title:
Printer and MFP driver components must include an authored device metadata document
Applicable OS Versions:

Windows 8 Client x86
Page 478 of 907





Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Devices that provide DeviceStage metadata that includes a photorealistic image of the device,
company logo, and basic task information must do so correctly. Tasks must only appear when the
tasks are available. For example, scanner tasks must not appear on a printer-only connection, and
Internet tasks must not appear if the Internet is unavailable. Design Notes: More information
available in the Windows SDK and in the WDK. Please send questions to prninfo@microsoft.com.
Exceptions:
Not Specified
Business Justification: This requirement helps ensure that devices work with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
Not Specified
Device.Imaging.Printer.Base.portMonitors
Target Feature: Device.Imaging.Printer.Base
Title:
A v4 print driver must use an inbox provided port monitor.
Applicable OS Versions:





Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Windows Server 2012
Description:

Custom port monitors are not allowed for v4 printer drivers. They must use an inbox
provided port monitor. V3 printer driver, print processor, or language monitor may use a
custom port monitor, but must be able to de-spool print jobs when the device is configured
in a queue that uses any port monitor
Exceptions:
Not Specified
Page 479 of 907
Business Justification:
Improving device and device driver robustness reduces the need for user or administrator
intervention.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2007
Not Specified
Device.Imaging.Printer.Base.PrinterExtension
Target Feature: Device.Imaging.Printer.Base
Title:
Printer extensions are implemented according to the guidance in the WDK
Applicable OS Versions:



Windows Server 2012
Windows 8 Client x86
Windows 8 Client x64
Description:
Printer extensions are implemented according to the guidance in the WDK

They must run in the appropriate integrity level

They should be designed securely and validate any untrusted data that will be parsed; this
includes PrintCapabilities, PrintTicket, XPS Documents and Property Bags.

They must not register system services on installation

They must register with the print system for any events they should be invoked for

They must communicate with the print system using the prescribed interfaces
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
Not Specified
Page 480 of 907
Device.Imaging.Printer.Base.printerInterfaces
Target Feature: Device.Imaging.Printer.Base
Title:
A printer device must support at least one non-legacy interface
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Printers and multi-function print (MFP) devices must be able to connect to the computer through a
non-legacy interface such as Ethernet, USB, IEEE 1394, or Bluetooth. Printing devices may offer IEEE
1284 (parallel) ports in addition to a non-legacy connector.
Exceptions:
Not Specified
Business Justification:
Non-legacy ports provide a much better user experience than legacy ports.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Printer.Base.PrintProcessor
Target Feature: Device.Imaging.Printer.Base
Title:
Print processors must be implemented based on the guidelines in the Windows Driver Kit
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Page 481 of 907
This requirement clarifies the use of existing WLK tests. The Print Processor API test helps ensure
that print processors are implemented based on WDK guidelines.
All print processors must support the following endpoints:

OpenPrintProcessor

ClosePrintProcessor

ControlPrintProcessor

EnumPrintProcessorDatatypesW

PrintDocumentOnPrintProcessor
GetPrintProcessorCapabilities For more information, see http://msdn.microsoft.com/enus/library/ff566084(v=VS.85).aspx.
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure that drivers are implemented correctly.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Printer.Base.printRegions
Target Feature: Device.Imaging.Printer.Base
Title:
A printer must support printable regions accurately
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
The printer must be able to print output for the entire area that appears in the printable region that
the user can select in the Windows UI.
Page 482 of 907
Design Notes:
Note that if the printer supports a "borderless" printing feature, this restriction may be relaxed to
allow for devices whose printable region extends beyond the dimensions of the physical media
sheet. In these cases, the printer must be able to print output to the extent of the page dimension.
This test applies to all paper sizes that the printer physically supports. If the printer supports autoscaling and the UI exposes additional paper sizes to the user that cannot be physically loaded into
the printer, the printer must maintain correct aspect ratios during resizing. In this context, "autoscaling" is any feature in the hardware or driver that changes the print job to fit on an available
paper size without user interaction or warning.
If the printer does not support printing on a physical medium that is at least 4" x 4" in size, the
printer is exempt from this requirement.
Exceptions:
Not Specified
Business Justification:
These are the basic requirements for writing a printer driver which works well with windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2007
Not Specified
Device.Imaging.Printer.Base.printTicket
Target Feature: Device.Imaging.Printer.Base
Title:
Printer driver supports PrintTicket/PrintCapabilities
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Print devices must fully support the PrintTicket and PrintCapabilities objects. Depending on your
print driver implementation, this may or may not require implementing certain PrintTicket or
PrintCapabilities interfaces. For more information, see the WDK documentation. Printer drivers
must support the public Print Schema element types for each keyword if the printer driver or print
Page 483 of 907
device includes the specified functionality. Printer drivers must also support the public Print Schema
element types for each keyword if the appropriate functionality is present but non-configurable. The
element types that the printer driver must support for each keyword include all such Features,
Options, ParameterDef, ParameterRef, Property, and ScoredProperty that the public Print Schema
definition contains. Printer drivers do not have to support public Print Schema keywords if the
printer driver or print device does not include the specified functionality.
Printer drivers must support the following basic Print Schema element types:

DocumentCollateJobCopiesAllDocuments

JobDuplexAllDocumentsContiguously

PageColorManagement

PageImageableSize

PageMediaSize

PageMediaType

PageOrientation

PageOutputColor

PageResolution

PageICMRenderingIntent

One of the following: JobInputBin, DocumentInputBin, or PageInputBin
Exceptions:
Not Specified
Business Justification:
Print Ticket is a key feature that will advance the print platform.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
July 12, 2008
Not Specified
Device.Imaging.Printer.Base.rendering
Target Feature: Device.Imaging.Printer.Base
Title:

A printer must correctly render print jobs Applicable OS Versions:
Windows 8 Client x86
Page 484 of 907






Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2008 R2 x64
Windows Server 2012
Description:
This requirement clarifies the use of the following existing WLK tests to ensure that printers correctly
render print jobs:

Pgremlin/Pgremlin2
This test produces numerous pages of output that include shapes, gradient fills, alpha blends and
some complex fonts. The test checks Device Driver Interface (DDI) calls that a driver can make.

WinFX Markup Content Rendering Test
The WinFX Markup Content Rendering test loads eight WinFX XAML files and produces output on
the specified printer.

Photo Print Test
The Photo Print Test prints landscape- and portrait-oriented photos to exercise printer functionality.
For more information about Pgremlin, see http://msdn.microsoft.com/enus/library/ff566081(v=VS.85).aspx.
For more information about Pgremlin2, see http://msdn.microsoft.com/enus/library/ff566079(v=VS.85).aspx.
For more information about the WinFX Markup Content Rendering Test, see
http://msdn.microsoft.com/en-us/library/ff569275(v=VS.85).aspx.
For more information about the Photo Print Test, see http://msdn.microsoft.com/enus/library/ff565234(v=VS.85).aspx.
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure that drivers are implemented correctly.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Page 485 of 907
Device.Imaging.Printer.Base.TCPMon
Target Feature: Device.Imaging.Printer.Base
Title: Network-connected printers that support Port 9100 printing with the Microsoft Standard
Port Monitor (TCPMon) must provide rich status for the device
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
If the printer uses a network interface port connection and supports Port 9100 printing (raw
printing) with the Microsoft Standard Port Monitor (TCPmon), it must also support Simple Network
Management Protocol (SNMP), Host Resource Management Information Base (MIB), and Common
Printer MIB, and Printer Port Monitor MIB 1.0 (IEEE-ISTO5107.1-2005) so that the operating system
can provide rich status for the device.
Exceptions:
Not Specified
Business Justification:
Network printers must follow a standard protocol to work correctly with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 27, 2008
Not Specified
Device.Imaging.Printer.Cluster
Description:
Not Specified
Related Requirements:

Device.Imaging.Printer.Cluster.cluster
Page 486 of 907
Device.Imaging.Printer.Cluster.cluster
Target Feature: Device.Imaging.Printer.Cluster
Title:
Print driver implements cluster requirements
Applicable OS Versions:

Windows Server 2008 R2 x64
Description:
Many printers may be hosted on clustered print servers. To work properly on a cluster, print drivers
must:

Use only one print processor binary, defined in the INF
Implement InitializePrintMonitor2 on any custom port monitors used and access the registry only
through the provided interface.
Design Notes:
Print Processor
Print processor binaries must be a single file and be defined in the driver INF using the
PrintProcessor directive. Other print processor binaries may not migrate or work properly in cluster
failover. Print processors may call into other DLLs if they are:
A system DLL In the print processor's directory A print driver file in the driver's directory AND it
gracefully handles cases where a print driver file no longer exists.
Port Monitors
The InitializePrintMonitor2 interface provides the port monitor with rich information about the
system environment (local-only, cluster-only, or both). It helps isolate the port monitor from
potential compatibility or migration issues. Port monitors should not attempt to access the registry
outside this interface.
Exceptions:
Not Specified
Business Justification: TBA
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
Not Specified
Page 487 of 907
Device.Imaging.Printer.OXPS
Description:
Not Specified
Related Requirements:

Device.Imaging.Printer.OXPS.OXPS
Device.Imaging.Printer.OXPS.OXPS
Target Feature: Device.Imaging.Printer.OXPS
Title: V4 drivers that support OpenXPS must be implemented according to the rules specified in
the WDK.
Applicable OS Versions:



Windows 8 Client x64
Windows 8 Client x86
Windows Server 2012
Description:
For Windows 8, a correctly implemented version 4 print driver will satisfy the XPS requirements. The
v4 driver can support either MSXPS or Open XPS.
V4 print drivers that support OpenXPS, either exclusively or in dual-format support mode with XPS,
must satisfy the following requirements:

Driver manifest must include “OXPS = 0” in the DriverRender section

All filters must be able to consume OpenXPS document format when provided such by the
print filter pipeline manager

All filters must conform to the rendering rules in the ECMA Open XML Paper Specification v.
1.0 (Ecma 388)

All filters must conform to the PrintTicket processing rules in the ECMA Open XML Paper
Specification v. 1.0 (Ecma 388)

The v4 driver filter pipeline must produce a PDL that the target print device can interpret.

Filters in the v4 driver pipeline supporting OpenXPS must NOT do the following:

Call into the Common Language Runtime (CLR) or the WinFX run-time components
for any functionality.

Display user interface (UI) content.
Page 488 of 907

OpenXPS supporting drivers must adhere to all other v4 rules. Dual-format drivers must
adhere to both OpenXPS and MSXPS requirements and successfully handle either format.
Exceptions:
Not Specified
Business Justification: This is needed for compatibility with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
July 12, 2008
Imaging-0010
Device.Imaging.Printer.USB
Description:
Not Specified
Related Requirements:


Device.Imaging.Printer.USB.CompatID
Device.Imaging.Printer.USB.JSBidiExtender
Device.Imaging.Printer.USB.CompatID
Target Feature: Device.Imaging.Printer.USB
Title: Printers must implement a Compatible ID in their IEEE1284 string according to the rules
specified in the WDK.
Applicable OS Versions:






Windows 8 Client x64
Windows 8 Client x86
Windows 7 Client x64
Windows 7 Client x86
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Printers must implement a Compatible ID in their IEEE1284 string for devices that connect over USB
and WSD using the Port Monitor MIB.
The Compatible ID must indicate:

Manufacturer Name or Code
Page 489 of 907

Device Class Description

Recommended:

Include PDL

any other relevant device class information

Example: Fabrikam_XPS_A3_laser
Devices that receive the Windows 7 logo before June 1,2012 are exempt from this requirement.
Link to Compatible ID white paper: http://msdn.microsoft.com/enus/windows/hardware/gg463313.aspx.
Exceptions:
Not Specified
Business Justification:
Using Compatible ID in Printers will enhance device coverage. Users will be more likely to find print
drivers for devices that implement a Compatible ID.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2012
Not Specified
Device.Imaging.Printer.USB.JSBidiExtender
Target Feature: Device.Imaging.Printer.USB
Title:
USB JavaScript Bidi Extenders are implemented according to the guidance in the WDK
Applicable OS Versions:



Windows Server 2012
Windows 8 Client x86
Windows 8 Client x64
Description:
USB JavaScript Bidi Extenders are implemented according to the guidance in the WDK

They must be included in the driver package and cannot be in a subdirectory in the package.
They may only be included with version 4 print drivers.

They should be designed securely and validate any untrusted data that will be parsed. They
must be referenced in the v4 manifest files.
Page 490 of 907
They must use syntactically valid JavaScript, implemented according to the WDK.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
Not Specified
Device.Imaging.Printer.WSD
Description:
Not Specified
Related Requirements:



Device.Imaging.Printer.WSD.CompatID
Device.Imaging.Printer.WSD.Rally
Device.Imaging.Printer.WSD.WSPrint
Device.Imaging.Printer.WSD.CompatID
Target Feature: Device.Imaging.Printer.WSD
Title: Printers must implement a Compatible ID in their IEEE1284 string according to the rules
specified in the WDK.
Applicable OS Versions:






Windows 8 Client x64
Windows 8 Client x86
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Printers must implement a Compatible ID in their IEEE1284 string for devices that connect over USB
and WSD using the Port Monitor MIB.
The Compatible ID must indicate:

Manufacturer Name or Code
Page 491 of 907

Device Class Description

Recommended:

Include PDL

any other relevant device class information

Example: Fabrikam_XPS_A3_laser
Devices that receive the Windows 7 logo before June 1, 2012 are exempt from this requirement.
Link to Compatible ID white paper: http://msdn.microsoft.com/enus/windows/hardware/gg463313.aspx.
Exceptions:
Not Specified
Business Justification:
Using Compatible ID in Printers will enhance device coverage. Users will be more likely to find print
drivers for devices that implement a Compatible ID.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2012
Not Specified
Device.Imaging.Printer.WSD.Rally
Target Feature: Device.Imaging.Printer.WSD
Title:
Network-attached printers and MFPs must implement the Windows Rally Technologies
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Network-connected printers, scanners, and MFPs that implement any of the following Windows
Rally requirements must comply completely with the implemented requirement:
Page 492 of 907

Connect-0098 (optional): Devices that implement 802.3 or 802.11 may implement the Link
Layer Topology Discovery (LLTD) protocol. This requirement applies only if the device
implements LLTD. LLTD implementation is not required.

Connect-0099 (required): A 802.11 network-enabled device that operates as a station must
implement WCN-NET and meet basic 802.11 requirements.

Connect-0100 (required): A network-enabled device that implements Plug and Play
Extensions (PnP-X) must comply with the specification.

IMAGING-0004 (required): A network-connected device must implement Windows networkconnected Web Services for Devices (WSD) correctly for the device type.
Design Notes:
For more information, see the PnP-X: Plug and Play Extensions for Windows specification at
http://go.microsoft.com/fwlink/?LinkID=123172,
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2008
Not Specified
Device.Imaging.Printer.WSD.WSPrint
Target Feature: Device.Imaging.Printer.WSD
Title: Network-connected printers must implement Windows network-connected Web Services
for Devices
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Printers or MFP devices must support the Device Profile for Web Services and the Print Web
Development Partnership (WDP) by using the Microsoft WSD Port Monitor (WSDMon). The printer
or MFP device must support the following events that the Print Service Definition includes:
Page 493 of 907

PrinterElementsChangeEvent

PrinterStatusSummaryEvent

PrinterStatusConditionEvent

PrinterStatusConditionClearedEvent

JobStatusEvent

JobEndStateEvent
In addition, the printer or MFP device must support all required operations that Section 5, Table 2 of
the Print Service Definition outlines. Design Notes: For more information, see the Print Service
Definition 1.0 at http://go.microsoft.com/fwlink/?LinkId=109841.
Exceptions:
Not Specified
Business Justification: Web Services for Devices provides an “it just works” scenario for network
printers.
Scenarios:
IMAGING 0004
Success Metric: Not Specified
Enforcement Date:
Comments:
July 12, 2008
Not Specified
Device.Imaging.Printer.XPS
Description:
Not Specified
Related Requirements:

Device.Imaging.Printer.XPS.XPS
Device.Imaging.Printer.XPS.XPS
Target Feature: Device.Imaging.Printer.XPS
Title:
A printer must have a driver that correctly implements XPSDrv printer driver architecture
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Page 494 of 907
Description:
For Windows 8, a correctly implemented version 4 print driver will satisfy this requirement. The v4
driver can support either MSXPS or Open XPS.
V4 print drivers that support MSXPS, either exclusively or in dual-format support mode with Open
XPS , must satisfy the following requirements:

Driver manifest must include “XPS = 0” in the DriverRender section

All filters must be able to consume XPS document format when provided such by the print
filter pipeline manager

All filters must conform to the rendering rules in the XML Paper Specification

All filters must conform to the PrintTicket processing rules in the XML Paper Specification

The v4 driver filter pipeline must produce a PDL that the target print device can interpret.

Filters in the v4 driver pipeline supporting OpenXPS must NOT do the following:


Call into the Common Language Runtime (CLR) or the WinFX run-time components
for any functionality. Display user interface (UI) content.
OpenXPS supporting drivers must adhere to all other v4 rules. Dual-format drivers must
adhere to both OpenXPS and MSXPS requirements and successfully handle either format.
For Windows 7, Windows Server 2008 R2 and later, a printer must have a driver that correctly
implements XPSDrv printer driver architecture. An XPSDrv driver is not required for Windows Vista
Basic, and Windows Server 2008 and earlier.
A v3 driver that implements the XPSDrv printer driver architecture must do the following:

Implement a Version 3 driver architecture configuration module. The configuration module
must support PrintTicket and PrintCapabilities objects for all functionality.

Include a valid filter pipeline configuration file.
A driver that implements the XPSDrv printer driver architecture must not do the following:

Implement a Version 3 driver architecture rendering module.

Implement a print processor.
If the XPSDrv driver supports a print device that can consume the XPS Document format as a printer
description language (PDL), no filters are required. Otherwise, or if the driver supplies filters, the
driver must satisfy the following requirements:

The first filter in the XPSDrv driver filter pipeline must consume the XPS Document format.

The XPSDrv driver filter pipeline must produce a PDL that the target print device can
interpret.
Page 495 of 907


Filters in the XPSDrv driver filter pipeline must do the following:

Conform to the rendering rules in the XML Paper Specification.

Conform to the PrintTicket processing rules in the XML Paper Specification.
Filters in the XPSDrv driver filter pipeline must not do the following:

Call into the Common Language Runtime (CLR) or the WinFX run-time components
for any functionality.

Display user interface (UI) content.

XPSDrv must fully support the PrintTicket and PrintCapabilities objects. XPSDrv drivers must
also support the following additional keywords in the described under the printTicket
requirement.

PageScaling

JobDigitalSignatureProcessing

PagePhotoPrintingIntent

PageOutputQuality
Exceptions:
Not Specified
Business Justification: This is needed for compatibility with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
July 12, 2008
Imaging-0010
Device.Imaging.Scanner.Base
Description:
Not Specified
Related Requirements:









Device.Imaging.Scanner.Base.dataTransfer
Device.Imaging.Scanner.Base.driverInstallation
Device.Imaging.Scanner.Base.errorHandling
Device.Imaging.Scanner.Base.metadata
Device.Imaging.Scanner.Base.MFPmultiplePorts
Device.Imaging.Scanner.Base.RawFileFormat
Device.Imaging.Scanner.Base.scannerInterfaces
Device.Imaging.Scanner.Base.statusMessages
Device.Imaging.Scanner.Base.wia20
Page 496 of 907


Device.Imaging.Scanner.Base.WIAArchitecture
Device.Imaging.Scanner.Base.WIAProperties
Device.Imaging.Scanner.Base.dataTransfer
Target Feature: Device.Imaging.Scanner.Base
Title:
WIA drivers must support specific data transfer implementations
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Windows Image Acquisition (WIA) drivers must do the following:

Use only the Write, Seek, and SetSizeIStream methods during downloads.

Use only the Read, Seek, and StatIStream methods during uploads.

Send valid lPercentComplete values during calls to the
IWiaMiniDrvTransferCallback::SendMessage<element>. lPercentComplete must be
between 0 and 100 inclusive. Send correct ulTransferredBytes values during calls to
IWiaMiniDrvTransferCallback::SendMessage.

Append new data to the end of streams that the
IWiaMiniDrvTransferCallback::GetNextStream<element> receives if the streams are not
empty.

Return success values from the IWia( SYLVIA PEARCE: Should this be IWia (as it is in other
instances)?) MiniDrv::drvAcquireItemData method ( SYLVIA PEARCE: If this isn't correct,
please replace it with the correct element.) when the driver calls
IWiaMiniDrv::drvAcquireItemData by using good parameters in all supported formats.

Release their references to the application's IStream object before their
IWiaMiniDrv::drvAcquireItemData methods return or call
IWiaMiniDrvTransferCallback::GetNextStream.

Send one stream that contains a multi-page file during downloads by using all supported
TYMED_MULTIPAGE_FILE formats.

Send one stream for each item during downloads by using all supported TYMED_FILE
formats.
Page 497 of 907

Return S_FALSE from IWiaMiniDrv::drvAcquireItemData if
IWiaMiniDrvTransferCallback::SendMessage returns S_FALSE.

Continue to transfer any subsequent items during multi-item downloads after
IWiaMiniDrvTransferCallback::GetNextStream returns WIA_STATUS_SKIP_ITEM.

Return S_OK from IWiaMiniDrv::drvAcquireItemData during single-item and multi-item
downloads after the IWiaMiniDrvTransferCallback::GetNextStream returns
WIA_STATUS_SKIP_ITEM for any item.

Abort transfer of all items after IWiaMiniDrvTransferCallback::GetNextStream returns
S_FALSE.

Return from IWiaMiniDrv::drvAcquireItemData calls during canceled transfers in less time
than during completed transfers.

Return a failure code from IWiaMiniDrv::drvAcquireItemData if
IWiaMiniDrvTransferCallback::GetNextStream fails.

Return a standard COM failure code from IWiaMiniDrv::drvAcquireItemData if
IWiaMiniDrvTransferCallback::GetNextStream returns a NULL stream pointer.

Return a failure code from IWiaMiniDrv::drvAcquireItemData if
IWiaMiniDrvTransferCallback::SendMessage fails.

Successfully transfer items when an identical device is installed and when the identical
device transfers an item simultaneously.

Return a failure code from IWiaMiniDrv::drvAcquireItemData if an IStream method fails.

Seek to the correct stream position after the driver begins the transfer or calls
IWiaMiniDrvTransferCallback::GetNextStream or
IWiaMiniDrvTransferCallback::SendMessage.

Function correctly if the WIA service terminates during a transfer and is then restarted, and
a new transfer is requested.

Ignore calls to the drvNotifyPnPEvent<element> that contain WIA_EVENT_CANCEL_IO if a
transfer is not occurring, and not crash or hang.

Successfully transfer items after a valid WIA_IPA_TYMED property value is written by using a
signed or unsigned variant type.
WIA drivers must not do the following:

Call a method of an application's IStream object other than the IUnknown::Release method
after an application's transfer callback returns S_FALSE, WIA_STATUS_SKIP_ITEM, or an
error.
Page 498 of 907

Call a method of an application's IStream object other than the IUnknown::Release method
after the driver's IWiaMiniDrv::drvAcquireItemData method returns or calls
IWiaMiniDrvTransferCallback::GetNextStream during a multi-item transfer.

Call IWiaMiniDrvTransferCallback::SendMessage by using
WIA_TRANSFER_MSG_END_OF_STREAM and WIA_TRANSFER_MSG_END_OF_TRANSFER
messages.

Call IWiaMiniDrvTransferCallback::SendMessage or
IWiaMiniDrvTransferCallback::GetNextStream after
IWiaMiniDrvTransferCallback::SendMessage returns S_FALSE or an error.

Crash or hang if a device requests an upload by using an invalid or empty stream.
Exceptions:
Not Specified
Business Justification:
This requirement verifies that a driver does not cause applications or the WIA service to crash or
hang in edge conditions when the driver sends a message to an error handler or receives a message
to its error handler. This requirement also helps ensure a consistent and quality experience for the
user.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
Not Specified
Device.Imaging.Scanner.Base.driverInstallation
Target Feature: Device.Imaging.Scanner.Base
Title:
A WIA driver must be installed for scanners and MFPs
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
In cases in which a scanner or MFP that has scanning functionality initiates a plug and play
installation event, a WIA driver must be installed. On a software-first installation for this device, a
Page 499 of 907
WIA driver must be staged to the driver store so that plug and play installations are successful. This
requirement does not prevent the manufacturer from installing other software, such as a TWAIN
data source.
Exceptions:
Not Specified
Business Justification:
This requirement helps ensure that drivers are implemented correctly.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
Not Specified
Device.Imaging.Scanner.Base.errorHandling
Target Feature: Device.Imaging.Scanner.Base
Title: WIA drivers that support error handling must comply with specified error handling
implementations
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Error handling in WIA drivers must comply with the following requirements:

IWiaErrorHandler::GetStatusDescription methods must return S_OK or
WIA_STATUS_NOT_HANDLED when the driver calls the methods by using good parameters.

IWiaErrorHandler::ReportStatus and IWiaErrorHandler::GetStatusDescription methods
must return a standard COM failure code if the driver calls the methods by using a NULL
pWiaItem2 parameter.
WIA drivers must:

Cancel transfers and return S_FALSE when IWiaErrorHandler::ReportStatus is called by using
a device status message and returns S_FALSE.
Page 500 of 907

Cancel transfers and return a standard COM failure code when
IWiaErrorHandler::ReportStatus is called by using a device status message and returns a
failure code.
WIA drivers must not:

Call IWiaMiniDrvTransferCallback::SendMessage by using WIA_STATUS_CLEAR messages.

Call ReportStatus by using failure device status messages when the driver calls
IWiaMiniDrv::drvAcquireItemData by using good parameters.
IWiaErrorHandler::ReportStatus methods must:

Return only S_OK or WIA_STATUS_NOT_HANDLED when called by using good parameters
and without user input.

Return S_OK when called by using good parameters and without user input when a device
status message is sent that is identical to a message that an active modeless window
handles.

Return a standard COM failure code when called by using good parameters and without user
input when a modeless error handler window is open and a device status message is sent
that is not identical to the message that the existing window handles.

Return S_OK when called by using a WIA_STATUS_CLEAR message while an error handler is
either active or inactive.
IWiaErrorHandler::ReportStatus methods must not:

Create or remove any windows when called by using good parameters and without user
input when a device status message is sent that is identical to a message that an active
modeless window handles.
IWIA driver error handlers must:

Return without user input when IWiaErrorHandler::ReportStatus is called by using a success
device status message.

Consistently choose whether to handle specific device status messages for each item
category. For example, a flatbed item may not only sometimes handle the
WIA_STATUS_WARMING_UP message.

Create modeless windows when IWiaErrorHandler::ReportStatus returns S_OK after
IWiaErrorHandler::ReportStatus is called by using a success device status message.

Remove their active modeless windows when IWiaErrorHandler::ReportStatus is called by
using a WIA_STATUS_CLEAR message.

Create modal windows when IWiaErrorHandler::ReportStatus returns S_OK after
IWiaErrorHandler::ReportStatus is called by using a failure device status message.
Page 501 of 907

Return a valid pbstrDescription value when IWiaErrorHandler::GetStatusDescription
succeeds and does not return WIA_STATUS_NOT_HANDLED.

Return S_OK and a valid pbstrDescription value when
IWiaErrorHandler::GetStatusDescription is called by using good parameters and a custom
device status message that the driver sent during a transfer.

Return a standard COM failure code when IWiaErrorHandler::GetStatusDescription is called
by using a NULL pbstrDescription parameter.
IWIA driver error handlers must not:

Return without user input when IWiaErrorHandler::ReportStatus is called by using a failure
device status message and does not return WIA_STATUS_NOT_HANDLED.

Create windows when IWiaErrorHandler::ReportStatus returns
WIA_STATUS_NOT_HANDLED.
Exceptions:
Not Specified
Business Justification:
This requirement verifies that a driver does not cause applications or the WIA service to crash or
hang in edge conditions when the driver sends a message to an error handler or receives a message
to its error handler. This requirement also helps ensure a consistent and quality experience for the
user.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
Not Specified
Device.Imaging.Scanner.Base.metadata
Target Feature: Device.Imaging.Scanner.Base
Title:
Scanner and MFP driver components must include an authored device metadata document
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Page 502 of 907
Description:
Devices that provide DeviceStage metadata must do so correctly. The metadata must include a
photorealistic image of the device, the company logo, and basic task information.
Tasks must only appear when the tasks are available. For example, scanner tasks must not appear on
a printer-only connection. Internet tasks must not appear if the Internet is unavailable.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
Not Specified
Device.Imaging.Scanner.Base.MFPmultiplePorts
Target Feature: Device.Imaging.Scanner.Base
Title:
ports
MFP devices that have multiple identical ports must expose the same functionality on all
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
If an MFP device has identical multiple ports, the device must expose identical functionality on each
port. For example, if one USB port supports print and scan functionality, all other USB ports must
support print and scan functionality. This requirement does not extend to bandwidth concerns (that
is, a device can have a USB 1.1 port and a USB 2.0 port). All other functionality must be exposed on
both ports.
Telephone jacks for fax functionality can behave differently to support line-in and line-out telephony
connections.
Exceptions:
Not Specified
Business Justification:
Page 503 of 907
Multiple similar ports that have dissimilar functionalities confuse consumers. For example, a printer
has two USB ports. One of the USB ports exposes both print and storage functionality. The other
port only allows printing. Consumers become confused and generate support calls for Microsoft.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Scanner.Base.RawFileFormat
Target Feature: Device.Imaging.Scanner.Base
Title: A scanning device that supports the WIA Raw Transfer Image file format must implement it
correctly
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Devices that support WIA Raw Transfer Image File must support transferring data in all supported
WIA_IPA_DATATYPE, WIA_IPA_DEPTH and WIA_COMPRESSION_NONE modes in the WIA Raw
Format (WIA_IPA_FORMAT set to WiaImgFmt_RAW, WIA_IPA_TYMED set to TYMED_FILE). In
other words the uncompressed variant (WIA_RAW_HEADER::Compression set to
WIA_COMPRESSION_NONE) is required.
Exceptions:
Not Specified
Business Justification: TBA
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
Not Specified
Not Specified
Page 504 of 907
Device.Imaging.Scanner.Base.scannerInterfaces
Target Feature: Device.Imaging.Scanner.Base
Title:
A scanning device must support at least one non-legacy interface
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Scanners and MFP devices must be able to connect to the computer through a non-legacy interface
such as Ethernet, USB, IEEE 1394, or Bluetooth.
Exceptions:
Not Specified
Business Justification:
Non-legacy ports provide a much better user experience than legacy ports.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Scanner.Base.statusMessages
Target Feature: Device.Imaging.Scanner.Base
Title:
Scanning device sends device status messages correctly
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Page 505 of 907
A scanning device that sends device status messages must do so correctly. The device must also
implement the error handler correctly if the device implements an error handler.
Design Notes: For more information, see the Windows Driver Kit content on IWiaErrorHandler at
http://msdn.microsoft.com/en-us/library/ff543907.asp.
Alternatively, send an e-mail message to wiainfo@microsoft.com.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
6/1/2006 Comments:
Not Specified
Device.Imaging.Scanner.Base.wia20
Target Feature: Device.Imaging.Scanner.Base
Title: Scanners and multi-function printers that have scanning ability must implement the WIA 2.0
driver architecture according to the Windows Driver Kit guidelines
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Scanners and multi-function printers that have scanning ability must implement the WIA 2.0 driver
architecture according to the guidelines in the Windows Driver Kit. Scanners support stream-based
image transfers. In stream-based transfers, the application gives WIA the stream to use, and then
the driver reads or writes to the stream. The stream may be a file stream, a memory stream, or any
other type of stream. The stream is transparent to the driver. Using streams also provides easy
integration with the image processing filter. This helps prevent complications that occur because of
the destination type (memory or file).
Scanners need to correctly implement the Windows WIA Scanner Item Architecture for flatbed, ADF,
and film scanners and scanners that have storage. The Windows Driver Kit reference documents and
tools outline the WIA scanner item architecture. Device manufacturers must implement WIA support
as described in the Windows Driver Kit.
Page 506 of 907
Design Notes:
WIA 2.0 enables new stream-based transfer models and certain extensions that include an imageprocessing filter, a segmentation filter, and error handling. For more information about WIA 2.0, see
"Introduction to WIA 2.0" at http://www.microsoft.com/whdc/device/stillimage/WIA20-intro.mspx
and "What's new in WIA 2.0" at http://msdn.microsoft.com/en-us/library/ms630379(VS.85).aspx.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2010
Not Specified
Device.Imaging.Scanner.Base.WIAArchitecture
Target Feature: Device.Imaging.Scanner.Base
Title:
A scanner device driver must implement WIA driver architecture
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Scanner device drivers must support still image devices under WIA architecture or ISO/PRF (formerly
PIMA) 15740. The scanner vendor must provide a WIA driver. A WIA driver is required for all local
busses on which a scanner enumerates to Windows. If the device supports network-based scanning
using WS-Scan or Distributed Scan Management, the device must do so as outlined in those
requirements.
Design Notes: An optimal user experience is seamless integration of the imaging peripheral with the
Windows environment. The operating system detects hot-pluggable WIA devices such as digital
cameras, providing a seamless interface with the device. For persistent-connection devices, such as
scanners, implementation of device events through buttons and sensors delivers this functionality
after initial installation. In addition to WIA, scanners can optionally support TWAIN.
See the Windows Driver Kit, "Still Image Drivers."
Page 507 of 907
Exceptions:
Not Specified
Business Justification:
The operating system natively provides WIA support. WIA support helps ensure reliability and an
optimal experience with Windows.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
June 01, 2006
Not Specified
Device.Imaging.Scanner.Base.WIAProperties
Target Feature: Device.Imaging.Scanner.Base
Title:
Scanners must implement support for all required WIA properties and property values
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
The Windows Driver Kit (WDK) reference documents and tools outline the properties and property
values for WIA. Scanners must implement WIA as described in the WDK.
Exceptions:
Not Specified
Business Justification:
This requirement allows the device to adequately represent the device's capabilities and
functionality to the operating system and applications.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
Not Specified
Page 508 of 907
Device.Imaging.Scanner.DistributedScanManagement
Description:
Not Specified
Related Requirements:

Device.Imaging.Scanner.DistributedScanManagement.DistributedScanManagement
Device.Imaging.Scanner.DistributedScanManagement.DistributedScanManagement
Target Feature: Device.Imaging.Scanner.DistributedScanManagement
Title: A scanner that supports the Distributed Scan Management protocols must implement the
protocols correctly
Applicable OS Versions:


Windows Server 2012
Windows Server 2008 R2 x64
Description:
Any device that interacts with Windows Server Active Directory and a Windows Server scan server
that implements the Distributed Scan Management Web service protocols must do so correctly.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2009
Not Specified
Device.Imaging.Scanner.WSD
Description:
Not Specified
Related Requirements:


Device.Imaging.Scanner.WSD.Rally
Device.Imaging.Scanner.WSD.WSScan
Device.Imaging.Scanner.WSD.Rally
Target Feature: Device.Imaging.Scanner.WSD
Title:
Network-attached scanners and MFPs must implement the Windows Rally Technologies
Page 509 of 907
Applicable OS Versions:




Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows 8 Client x86
Description:
Network-connected scanners and MFPs that implement any of the following Windows Rally
requirements must comply with the implemented requirement completely.

Connect-0098 (optional): Devices that implement 802.3 or 802.11 may implement the Link
Layer Topology Discovery (LLTD) protocol. This applies only if the device implements LLTD.
LLTD implementation is not required.

Connect-0099 (required): An 802.11 network-enabled device that operates as a station must
implement WCN-NET and meet basic 802.11 requirements.

Connect-0100 (required): A network-enabled device that implements Plug and Play
Extensions (PnP-X) must comply with the specification.

IMAGING-0004 (required): Network-connected devices must implement Windows networkconnected Web Services for Devices (WSD) correctly for their device type.
Design Notes:
For more information, see the PnP-X: Plug and Play Extensions for Windows Specification at
http://go.microsoft.com/fwlink/?LinkID=123172
Exceptions:
Not Specified
Business Justification:
Web Services provides an "it just works" scenario for network scanners.
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2008
Not Specified
Device.Imaging.Scanner.WSD.WSScan
Target Feature: Device.Imaging.Scanner.WSD
Title:
Scanners that have a network connection must implement WS-Scan protocol
Applicable OS Versions:

Windows 8 Client x86
Page 510 of 907




Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Description:

This requirement applies to scanners or multifunction printers that have scanning ability,
connect to the network, and have a physical scan button on the device. These scanners or
multifunction printers must implement the following WS-Scan protocol requirements as
outlined in the WS-Scan specification v1.0: The device must correctly implement all events
and operations that the specification defines.

The device must support the ScanAvailableEvent so that users can initiate a scan
from the scanner and push the document to a scanning application.

The device must support the Microsoft WSD scan class driver for all device features that WSScan exposes.

If the device has ADF and plate scanning, the device must support those media over WSScan.
For more information, see "Implementing Web Services on Devices for Printing and Scanning" at
http://www.microsoft.com/whdc/connect/rally/wsdspecs.mspx.
Exceptions:
Not Specified
Business Justification: Not Specified
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2011
Not Specified
Device.Input.FingerPrintReader
Description:
Not Specified
Related Requirements:
Device.Input.FingerPrintReader.Base
Device.Input.FingerPrintReader.Extensions
Device.Input.FingerPrintReader.ManagementApps
Device.Input.FingerPrintReader.SensorEngineDB
Device.Input.FingerPrintReader.WBDI
Page 511 of 907
Device.Input.FingerPrintReader.Base
Target Feature: Device.Input.FingerPrintReader
Title:
Biometric Fingerprint Reader General Requirement
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
Biometric fingerprint readers certified under this program must be exposed through the Windows
Biometric Framework (WBF). Biometric fingerprint reader drivers must expose and adhere to the
Windows Biometric Driver Interface (WBDI), as documented on MSDN
(http://msdn.microsoft.com/en-us/library/aa973504.aspx). WBF plug-in components must
implement all entry points and adhere to the WBF plug-in interfaces that are documented on MSDN
(http://msdn.microsoft.com/en-us/library/dd401553(VS.85).aspx).
The following general criteria must be met:
The driver package must contain a WBDI driver, a combination of plug-in adapters, and a
fingerprint management application (FMA) that are required all of which are required to
enroll a user and log on to Windows.
Devices that operate in advanced mode may implement a compound adapter. A compound
adapter may contain a proprietary sensor, engine, and database adapter, or any
combination of these adapters.
The WBDI driver and plug-in components must not contain any malicious software such as
Trojan horse or backdoor software.
Design Notes:
Biometric devices measure an unchanging physical characteristic to uniquely identify an individual.
Fingerprints are one of the most common biometric characteristic measured. Beginning with
Windows7, a new set of components, the Windows Biometric Framework, provides support for
fingerprint biometric devices. These components, created using the Windows Biometric Framework
API, can perform the following tasks:
Capture biometric samples and use them to create a template.
Securely save and retrieve biometric templates.
Page 512 of 907
Map each template to a unique identifier such as a GUID (globally unique identifier) or
SID (system identifier).
Enroll new biometric templates.
To expose a device through WBF, the device must be exposed through a driver that implements the
WBDI driver and an appropriate combination of Sensor, Engine, and Database plug-in components.
For more complete information about WBF and its components, see the "Introduction to the
Windows Biometric Framework (WBF)" white paper at
http://www.microsoft.com/whdc/device/biometric/WBFIntro.mspx
Exceptions:
Not Specified
Business Justification:
The Windows Biometric Framework provides a common driver and application interface for
enrolling, identifying and verifying users as well as a set of common user experiences to allow
control of basic settings and offering standard experiences around logon and UAC and common
integration points for third party applications on the control panel. The framework offers a common
API that allows applications to be developed independent of hardware manufacturer. This in turn
allows the OEM more flexibility in selecting hardware and software suppliers. The framework is also
extensible and customizable. This allows OEMs to provide their own branded enrolment and logon
experiences. It also allows OEMs and IHVs to extending the API for additional features they may wish
to support (e.g., PBA).
Scenarios:
Biometric devices support identifying users to log on their system or access data.
Success Metric: Not Specified
Enforcement Date:
Comments:
12/1/2010
INPUT-0066
Device.Input.FingerPrintReader.Extensions
Target Feature: Device.Input.FingerPrintReader
Title: Vendor-supplied drivers or other extension components must not wrap other extension
components
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
Page 513 of 907
Drivers and adapter plug-ins that extend the Windows Biometric Framework must not wrap other
drivers or adapter plug-ins unless the practice is explicitly permitted by the component
documentation supplied by Microsoft.
Exceptions:
Not Specified
Business Justification:
Wrapping extension components that do not support wrapping can result in system instability,
security vulnerabilities and loss of customer data.
Scenarios:
Biometric devices logging user into system
Success Metric: Not Specified
Enforcement Date:
Comments:
Windows RC
Not Specified
Device.Input.FingerPrintReader.ManagementApps
Target Feature: Device.Input.FingerPrintReader
Title:
Biometric Fingerprint Reader Management Applications
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
A fingerprint management application (FMA) must be included in the driver package and should
follow the guidelines in "Designing Windows Biometric Framework (WBF) Fingerprint Management
Applications" at http://www.microsoft.com/whdc/device/biometric/FMA_Design.mspx
Design Notes:
Biometric devices measure an unchanging physical characteristic to uniquely identify an individual.
Fingerprints are the most common biometric characteristic measured. Beginning with Windows7, a
new set of components, the Windows Biometric Framework (WBF), provides support for fingerprint
biometric devices. These components, created using the Windows Biometric Framework API, can
perform the following tasks:
Capture biometric samples and use them to create a template.
Page 514 of 907
Securely save and retrieve biometric templates.
Map each template to a unique identifier such as a GUID (globally unique
identifier) or SID (system identifier).
Enroll new biometric templates.
To expose a device through the WBF, the device must be exposed through a driver that implements
the Windows Biometric Driver Interface (WBDI) driver as well as an appropriate combination of
sensor, engine, and database plug-in components. For a more complete background on WBF and its
components, see "Introduction to the Windows Biometric Framework (WBF)" at
http://www.microsoft.com/whdc/device/biometric/WBFIntro.mspx.
Exceptions:
Not Specified
Business Justification:
The Windows Biometric Framework provides a common driver and application interface for
enrolling, identifying and verifying users as well as a set of common user experiences to allow
control of basic settings and offering standard experiences around logon and UAC and common
integration points for third party applications on the control panel. The framework offers a common
API that allows applications to be developed independent of hardware manufacturer. This in turn
allows the OEM more flexibility in selecting hardware and software suppliers. The framework is also
extensible and customizable. This allows OEMs to provide their own branded enrolment and logon
experiences. It also allows OEMs and IHVs to extending the API for additional features they may wish
to support (e.g., PBA).
Scenarios:
Biometric devices support identifying users to log on their system or access data.
Success Metric: Not Specified
Enforcement Date:
Comments:
12/1/2010
INPUT-0069
Device.Input.FingerPrintReader.SensorEngineDB
Target Feature: Device.Input.FingerPrintReader
Title:
Fingerprint Reader Sensor, Engine and Database Plug-in requirement
Applicable OS Versions:






Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Page 515 of 907

Windows Server 2008 R2 x64
Description:
All interface entry points must be implemented, and each element must adhere to the definition
of its respective adapter plug-in interface.
Plug-in components must support the sequenced invocation of their interfaces that result from
invoking all the top-level Windows Biometric Framework (WBF) APIs.
The sequence of WBF API calls used by the WBF credential provider for Windows logon must be
completed in 1.5 seconds or less.
All adapters must be digitally signed, as described in the Windows Biometric Framework: CodeSigning Guidelines white paper at
http://www.microsoft.com/whdc/device/biometric/WBF_CodeSign.mspx.
The adapter must run under Application Verifier without generating any errors.
A WBDI driver and plug-in components can support multiple devices but must pass the certification
criteria for each of the supported fingerprint readers separately. A separate submission must be
made for each supported device.
Design Notes:
Biometric devices measure an unchanging physical characteristic to uniquely identify an individual.
Fingerprints are the most common biometric characteristic measured. Beginning with Windows7, a
new set of components, the Windows Biometric Framework, provides support for fingerprint
biometric devices. These components, created using the Windows Biometric Framework API, can
perform the following tasks:
Capture biometric samples and use them to create a template.
Securely save and retrieve biometric templates.
Map each template to a unique identifier such as a GUID (globally unique identifier) or SID
(system identifier).
Enroll new biometric templates.
To expose a device through the Windows Biometric Framework, the device must be exposed
through a driver that implements the Windows Biometric Driver Interface (WBDI) driver as well as an
appropriate combination of sensor, engine, and database plug-in components. For more complete
information about WBF and its components, see the "Introduction to the Windows Biometric
Framework (WBF)" white paper at
http://www.microsoft.com/whdc/device/biometric/WBFIntro.mspx.
Exceptions:
Not Specified
Business Justification:
The Windows Biometric Framework provides a common driver and application interface for
enrolling, identifying and verifying users as well as a set of common user experiences to allow
Page 516 of 907
control of basic settings and offering standard experiences around logon and UAC and common
integration points for third party applications on the control panel. The framework offers a common
API that allows applications to be developed independent of hardware manufacturer. This in turn
allows the OEM more flexibility in selecting hardware and software suppliers. The framework is also
extensible and customizable. This allows OEMs to provide their own branded enrolment and logon
experiences. It also allows OEMs and IHVs to extending the API for additional features they may wish
to support (e.g., PBA).
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
12/1/2010
INPUT-0068
Device.Input.FingerPrintReader.WBDI
Target Feature: Device.Input.FingerPrintReader
Title:
Biometric Fingerprint Reader WBDI Driver Requirement
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Description:
(Change note for Version 2: Deleted references to Terminal Services.)
Windows Biometric Driver Interface (WBDI) drivers must adhere to the following criteria:
All mandatory IOCTLs must be fully implemented and adhere to the WBDI specification.
If an optional IOCTL is implemented, it must adhere to the WBDI specification.
The WBDI driver must support the biometric IOCTL calling sequence.
If the biometric fingerprint reader is not a PnP device, it must create arrival and departure
events as recommended in the WBDI specification.
The WBDI INF installer must set up the associated plug-in components and fingerprint
management applications that are included in the driver package.
Guidelines in this requirement apply equally well to the kernel-mode and user-mode drivers. The
following must be supported:
Page 517 of 907
Backward and forward compatibility. Drivers must have a mechanism that determines different
versions of user-mode and kernel-mode components. When two versions of the same driver
have been installed on the PC, the kernel component must determine the correct driver to
talk to. In remoting scenarios, the mismatch may occur even with a single driver.
The following items must not be used:
Out-of-band communications. Because the user-mode and kernel-mode drivers are running on
the same PC, they might be coupled together through channels different from the I/O
manager APIs. The goal is to ensure that drivers do not have out-of-band communication,
implicit or explicit.
Here are some specific examples that would prevent terminal services redirection:
Shared memory must not be used directly between user-mode applications and either usermode or kernel-mode drivers. For every data item sent and received, there must be a
corresponding I/O request. Share the memory either through a mapped file or through
locked pages of one direct I/O call.
Registry communication (that is, any registry keys that are set from user-mode drivers and read
from kernel-mode drivers or vice versa). It is problematic when an application is running on
the server and drivers are loaded on the client because the registry is set on the server but
not on the client.
Kernel objects (passing any kernel object handles in I/O buffers, such as handles to events or
semaphores).
Data pointers (passing data pointers in I/O buffers). For example, a driver may try to read a
linked list or other complicated data structure from the kernel.
Incompatibility between 32-bit and 64-bit platform implementations of the I/O request packet
(IRP) requests (fields in the data structures that are compiled differently, depending on the
bitness). Incompatibility of the structures based on bitness results in different offsets and
data size for these structures. The data will not be interpreted correctly when a terminal
services client and server are not the same platform.
Reliance on a strict timing expectation about how fast the kernel driver responds. Because
drivers are remoting over the network, additional latency is added to the response from the
hardware. That latency may range from 10 ms to several seconds. A possible cause for this
could be slow network or packet losses. If a driver is programmed for a response that comes
in time less than usual network latency, the remoting fails.
Setting an access control list (ACL) or any other run-time security check that would prevent any
application from opening a device driver. For example, a driver is allowed to accept calls only
from particular service. Because all the calls are done on a TS client PC under security
context of the remoting client process, they can fail.
Design Notes: Biometric devices measure an unchanging physical characteristic to uniquely identify
an individual. Fingerprints are the most common biometric characteristic measured. Beginning with
Page 518 of 907
Windows7, a new set of components, the Windows Biometric Framework (WBF), provides support
for fingerprint biometric devices. These components, created with the WBF API can perform the
following tasks:
Capture biometric samples and uses them to create a template.
Securely save and retrieve biometric templates.
Map each template to a unique identifier such as a GUID (globally unique identifier) or
SID (system identifier).
Enroll new biometric templates.
To expose a device through WBF, the device must be exposed through a driver that implements the
WBDI driver as well as an appropriate combination of sensor, engine, and database plug-in
components. For more complete information about WBF and its components, see the "Introduction
to the Windows Biometric Framework (WBF)" white paper at
http://www.microsoft.com/whdc/device/biometric/WBFIntro.mspx.
Exceptions:
Not Specified
Business Justification:
The Windows Biometric Framework provides a common driver and application interface for
enrolling, identifying and verifying users as well as a set of common user experiences to allow
control of basic settings and offering standard experiences around logon and UAC and common
integration points for third party applications on the control panel. The framework offers a common
API that allows applications to be developed independent of hardware manufacturer. This in turn
allows the OEM more flexibility in selecting hardware and software suppliers. The framework is also
extensible and customizable. This allows OEMs to provide their own branded enrolment and logon
experiences. It also allows OEMs and IHVs to extending the API for additional features they may wish
to support (e.g., PBA).
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
12/1/2010
INPUT-0067
Device.Input.GameController.CommonController
Description:
Device supports use as a Common Controller Game Device
Related Requirements:
Device.Input.GameController.CommonController.XInput
Page 519 of 907
Device.Input.GameController.CommonController.XInput
Target Feature: Device.Input.GameController.CommonController
Title:
Microsoft Common Controller for Windows API support (XINPUT)
Applicable OS Versions:





Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Description:
1. Microsoft Common Controller for Windows complies with requirements defined in the XUSB
specification:
A common controller must meet all requirements and comply with the XUSB Specification.
Support for audio is optional for the common controller. If the controller supports audio, it must also
comply with the device interfaces for audio defined in the XUSB Specification.
2. Microsoft Common Controller for Windows uses the XUSB22.SYS driver:
The common controller must use the Microsoft provided XUSB22.SYS driver to interface with
Windows. Custom drivers or filters are not allowed.
3. Microsoft Common Controller for Windows functions in conjunction with the XInput application
programming interfaces:
The common controller must function correctly when interfacing with the Microsoft XInput APIs.
Exceptions:
Not Specified
Business Justification:
The Microsoft Common Controller Driver is a game input standard that is used for both the Xbox360
console and for Microsoft Windows. The Xbox360 controller or any controllers that utilize this
standard will enable the device to be used on Windows as well.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
6/1/2007
Comments:
INPUT-0003; Version update in paragraph 2 was Xnacc.sys now is Xusb22.sys
Page 520 of 907
Device.Input.GameController.GenericController
Description:
Device supports use as a generic USB game controller
Related Requirements:
Device.Input.GameController.GenericController.DirectInput
Device.Input.GameController.GenericController.DirectInput
Target Feature: Device.Input.GameController.GenericController
Title:
Generic USB Game Controller API Support (DINPUT)
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Description:
An input gaming device must be HID-compliant. The driver must support required functionality
defined for Direct Input.
Exceptions:
Not Specified
Business Justification:
The Microsoft Common Controller driver is a game input standard that is used for both the Xbox360
console and for Microsoft Windows. The Xbox360 controller or any controllers that utilize this
standard will enable the device to be used on Windows as well.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
INPUT-0002
Device.Input.HID
Description:
Not Specified
Related Requirements:
Device.Input.HID.I2CProtocolSpecCompliant
Device.Input.HID.UsbSpecificationCompliant
Page 521 of 907
Device.Input.HID.I2CProtocolSpecCompliant
Target Feature: Device.Input.HID
Title:
All HID devices connected over I2C must comply with MSFT HID I2C Protocol specification
Applicable OS Versions:


Windows 8 Client x64
Windows 8 Client x86
Description:
All HID over I2C compatible devices should comply with the Microsoft published documentation for
the HID I2C protocol specification
Design Notes: See Microsoft published HID I2C protocol specification (link not provided yet)
Exceptions:
This requirement is only enforced for HID I2C devices and not generalized for SPB.
Business Justification:
To maintain a standardized way in which HID I2C devices report data and so that all HID I2C device
vendors and OEMs can utilize the Microsoft provided HID I2C miniport driver instead of writing and
using multiple third party drivers
Scenarios:
Touch, Sensors, Input devices connected over I2C
Success Metric: The device reports data in compliance with the HID I2C specification that the HID I2C
miniport driver is able to understand and pass up to HIDClass.sys
Enforcement Date:
Comments:
Windows 8 RC
New
Device.Input.HID.UsbSpecificationCompliant
Target Feature: Device.Input.HID
Title: All HID devices that are connected over USB , should comply with the USB HID Specification
(V1.1 or later)
Applicable OS Versions:




Windows 8 Client x86
Windows 8 Client x64
Windows Server 2008 x86
Windows Server 2008 x64
Page 522 of 907


Windows 7 Client x86
Windows 7 Client x64
Description:
Version 5: Defines WMC AQ requirements
For WMC AQ, this requirement is
REQUIRED for Desktop systems
REQUIRED for Laptop systems if Laptop system includes remote and receiver.
For non AQ systems, this requirement is
REQUIRED If system (either Desktop or Laptop) includes remote and receiver.
IR Receivers (input only) and IR Transceivers (input and IR emitting/learning) interface with the
Windows Media Center class driver. In a system with a TV tuner, IR Transceivers must be
used that support all functions of the Remote Control and Receiver-Transceiver Specifications
and Requirements for Windows Media Center in Windows Operating Systems document.
For tunerless systems with an IR receiver only IR Input and wake functions are required. The IR
learning and emitting functions are optional.
DVB-T solutions are not required to support learning and emitting. These functions are optional.
In locales that do not use set top boxes, the learning and emitting functions are optional.
In those regions that support secondary 10 foot application, the IR Receiver/Transceivers are not
required to meet the IR Learning requirement.
In those regions that support DVB-S Microsoft strongly recommends the use of IR Transceivers
(input and IR emitting/learning)
If shipping a laptop system, IR learning and IR emitting is optional
For IR receivers (input only) that use Microsoft authorized IR protocols and all IR Transceiver
(input and emitter functions), the device will return IR waveform envelope to software for
software decoding of IR signal. IR signal cannot be decoded in the hardware. The only
exception to this is the wake-from-remote power key.
An IR receiver (input only) is allowed to perform hardware decoding of an IR signal. These IR
receivers (input only) must not receive and respond to any currently authorized Microsoft IR
protocol. IR receivers that use hardware decoding of IR signal also need to support the
wake-from-remote functionality. These devices must comply with the Remote Control and
Receiver-Transceiver Specifications and Requirements for Windows Media Center in
Windows Operating Systems document.
Design Notes:
Page 523 of 907
Microsoft recommends that IR cables be labeled and well documented for end users. An insert
showing a small diagram of the IR control cable and how it connects to the digital cable or satellite
receiver could help prevent support calls.
Exceptions:
Not Specified
Business Justification:
User Experience
Scenarios:
Not Specified
Success Metric: Not Specified
Enforcement Date:
Comments:
6/1/2006
INPUT-0008
Device.Input.Keyboard
Description:
Certification requirements detailing the implementation details of a keyboard important to
Microsoft Operating Systems
Related Requirements:
Device.Input.Keyboard.BrowserMultimediaKeysUseMSApis
Device.Input.Keyboard.DynamicKeyboards
Device.Input.Keyboard.HotKeyFunctionAPI
Device.Input.Keyboard.KernelModeDriversUseWdfKmdf
Device.Input.Keyboard.LogoFlagKey
Device.Input.Keyboard.MultipleKeyboard
Device.Input.Keyboard.ScanCode
Device.Input.Keyboard.BrowserMultimediaKeysUseMSApis
Target Feature: Device.Input.Keyboard
Title:
Keys for Internet browser and multimedia use Microsoft APIs
Applicable OS Versions:







Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Page 524 of 907


Windows Server 2008 x86
Windows Server 2008 x64
Description:
If a keyboard or peripheral implements multimedia or Internet browser keys, it must use the registry
keys associated with the WM_APPCOMMAND API to access those functions as described in the
Windows Driver Kit. Registry keys can be programmed by using INF files to install special entries as
defaults or through a customized interface provided to the user.
Design Notes:
See the Microsoft Platform SDK, "WM_APPCOMMAND."
Exceptions:
Not Specified Business Justification:
The use of this API creates a predictable platform for applications can respond appropriately to
input.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
INPUT-0017
Device.Input.Keyboard.DynamicKeyboards
Target Feature: Device.Input.Keyboard
Title:
Dynamic Keyboards meet the requirements listed here.
Applicable OS Versions:









Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Description:
Page 525 of 907

When system is displaying the security desktop, a keyboard capable of altering the keycaps
to reflect different glyphs or legends dynamically must present a keyboard layout to match
the language the current user has active on the system.

When using a keyboard capable of altering the keycaps to reflect different glyphs or legends
dynamically, the keyboards must reboot in to the default system language layout as selected
in Control Panel -> Regional and Language Options -> Keyboards and Languages.

When using a keyboard capable of altering the keycaps to reflect different glyphs or legends
dynamically, the keyboards must change keyboard layout and language as selected by a user
at the login screen

When using a keyboard capable of altering the keycaps to reflect different glyphs or legends
dynamically, the keyboards reflect the currently selected layout and language preference
when the Windows desktop has focus.

When using a keyboard capable of altering the keycaps to reflect different glyphs or legends
dynamically, the keyboard may allow for the repositioning of the Windows key, however
that key must remain visible to user in all configurations/layouts. By default this key must be
present in the lower left of the keyboard, between the control and alternate keys when at a
login, welcome or password entry screen. Once the user has logged in the location of the key
may be repositioned by user preference.

When using a keyboard capable of altering the keycaps to reflect different glyphs or legends
dynamically, the displayed keyboard layout and language match the installed language of
the Operating System.

A self-powered keyboard capable of altering the keycaps to reflect different glyphs or
legends dynamically, must allow for the keyboard to be reset via a switch or keystroke
sequence, independently of a software reset or power cycling of the device.
Exceptions:
Not Specified
Business Justification:
For login accessibility, if a user needs to enter a password, the keyboard layout should represent the
current language layout for text input. There are implications with passwords in a networked
environment as well, not every system may be equipped the same type of keyboard. When a system
is rebooted a Dynamic Key-cap keyboard to go allow any user to walk up and enter login credentials
based on a “standard” layout. This is especially true for ‘self-powered’ keyboards which may not be
reset during a system reboot. If the user changes the keyboard layout while the security desktop is
active, the keyboard should respond to the layout change. Keyboard shortcuts must function when
“Windows” has focus. Keyboard must give the user a standard input set as recognized by the OS.
Usability and Marketing value of having the Windows key consistently located in the lower quadrant
of the keyboard is rationale for the positioning of the key. User preferences can be reflected but only
when the system is in an unlocked state. Safe Mode is a diagnostic level of the operating system,
designed to provide the customer an environment to make system changes and/or repairs.
Maintaining a layout reflecting the OS language choice during install on a keyboard helps maintain
Page 526 of 907
the basic functionality expected in safe mode. Keyboards that are self-powered will not necessarily
be reset when a system reboots. If the keyboard is 'stuck' in a broken state without the ability to
reset the keyboard after a reboot the only recourse for the user is to power cycle the keyboard.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Not Specified
INPUT-0037
Device.Input.Keyboard.HotKeyFunctionAPI
Target Feature: Device.Input.Keyboard
Title: Devices that implement Hot-Key functionality implement the corresponding API
notifications.
Applicable OS Versions:









Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Description:
Pointing and Drawing devices and Keyboards, that implement buttons used as application or
function hot keys for which there exists WM_APPCOMMAND API shall implement the corresponding
API notification. This includes but is not limited to the following functions:

Volume Up/Down

Mute

Browser Back/Forward

Play/Pause
Design Notes:
Best practices for supporting Pointing and Drawing devices and Keyboards can be found at
http://msdn.microsoft.com/en-us/library/ms997498.aspx.
Page 527 of 907
API for WM_APPCOMMAND notifications can be found at http://msdn.microsoft.com/enus/library/ms646275(VS.85).aspx.
HID Usage Page and ID information for these functions can be found at
http://www.microsoft.com/whdc/archive/scancode.mspx and
http://www.usb.org/developers/hidpage.
Exceptions:
Not Specified
Business Justification:
The goal of this requirement is to ensure the devices work before additional drivers or software are
installed. The scroll wheel working and standard buttons like the calculator key or media keys to
work immediately after the device is plugged in. If IHVs have generic buttons, or extra functionality
we want it enable it with value add software.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
12/1/2010
INPUT-0065
Device.Input.Keyboard.KernelModeDriversUseWdfKmdf
Target Feature: Device.Input.Keyboard
Title:
Keyboard kernel-mode drivers use the WDF-KMDF
Applicable OS Versions:









Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Description:
Third-party keyboard kernel-mode drivers must be ported to the WDF KMDF model.
Exceptions:
Not Specified
Business Justification:
Page 528 of 907
KMDF provides a well-defined object model and controls the lifetime of objects and memory
allocations.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
INPUT-0010
Device.Input.Keyboard.LogoFlagKey
Target Feature: Device.Input.Keyboard
Title: Windows Logo flag key is implemented on all keyboards supporting more than 50 keys, the
Windows Start Button design is required after June 30th 2007
Applicable OS Versions:









Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Description:
All keyboards supporting more than 50 keys must implement the Windows Logo flag key. The
printed Windows flag logo version of the key design may be logo qualified on mobile systems and
standalone keyboards until the transition date. The Windows flag trademark must be clearly
distinguished on the key top according to The Microsoft Windows Logo Key Logo License Agreement
and the "Key Support, Keyboard Scan Codes, and Windows" document at
http://go.microsoft.com/fwlink/?LinkId=116451. Mobile systems and keyboards must implement
the new Windows Vista Start Button and logo artwork on the required Windows flag key (start key)
by the transition date above. The keyboard must support the dome, graphics and other design
requirements as defined in The Microsoft Windows Logo Key Logo License Agreement, and the "Key
Support, Keyboard Scan Codes, and Windows" and "Windows Vista Hardware Start Button"
documents. Vendors of systems or keyboards are encouraged to implement the dome design prior
to this date. All designs must meet the requirements outlined in the specifications. It is
recommended that keyboards supporting 50 or fewer keys implement a Windows Vista Start Button.
Design Notes:
Page 529 of 907
The requirements defined in the "Windows Vista Hardware Start Button" paper call for a polished
dome with a chamfer and a monochrome Windows Logo applied. The dome can be molded directly
into the keycap. Optionally a domed full color Windows Flag insert can be implemented instead of
the polished dome. Laptop and ultra mobile PC options are also defined.
All Windows Flag keys on a keyboard must use the same design implementation option. The updated
Windows Vista Hardware Start Button is implemented using the same PS/2 Scan Codes and USB
Usages as the previous Windows Key. A draft of the "Windows Vista Hardware Start Button" white
paper can obtained on the WHDC website at http://go.microsoft.com/fwlink/?linkid=3757.
Exceptions:
Not Specified
Business Justification:
The Start button is designed to be an easily discoverable to launch both the Windows Start menu
and other experiences in Microsoft Windows starting with Windows Vista and newer operating
systems.
Scenarios:
Launch the start menu as well as different Windows experiences.
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
INPUT-0016
Device.Input.Keyboard.MultipleKeyboard
Target Feature: Device.Input.Keyboard
Title:
No interference occurs between multiple keyboards
Applicable OS Versions:









Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Description:
Page 530 of 907
If the system includes more than one keyboard, there must be no conflicts. For example, a docked
mobile computer can have more than one keyboard attached to the system. The keyboard ports on
a mobile computer and a docking station must be able to resolve conflicts between the two ports
when the mobile computer is docked.
Exceptions:
Not Specified
Business Justification:
Microsoft Windows supports multiple keyboards connected through the registry and determines
which keyboard to enable.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
INPUT-0014
Device.Input.Keyboard.ScanCode
Target Feature: Device.Input.Keyboard
Title:
Scan codes comply with industry standard
Applicable OS Versions:









Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Description:
The following are requirements for a keyboard design that includes any Windows logo keys:
The keyboard must be developed according to technical requirements in "Key Support, Keyboard
Scan Codes, and Windows."
The keyboard must be compatible at the Windows virtual key-code level.
The Windows logo key must function as a modifier (CTRL, SHIFT, or ALT).
Keyboard manufacturers must use consumer control or vendor-specific, top-level collections for
HID hot buttons.
Page 531 of 907
Design Notes:
See "Key Support, Keyboard Scan Codes, and Windows" at
http://go.microsoft.com/fwlink/?LinkId=36767.
Additional software or drivers can be written to provide software remapping functionality.
Exceptions:
Not Specified
Business Justification:
Microsoft has defined extended scan codes for PS/2-compatible multimedia keyboards, and the USB
HID Device Working Group has defined the consumer controls page. Hardware vendors must comply
with these defined values and use their default functionality to ensure a good user experience
following an upgrade or if the user does not install any supplemental software.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
INPUT-0016
Device.Input.PointDraw
Description:
Applies to Mice, touch pads, and other input devices used to move the pointer
Related Requirements:
Device.Input.PointDraw.KernelModeDriversUseWdfKmdf
Device.Input.PointDraw.KernelModeDriversUseWdfKmdf
Target Feature: Device.Input.PointDraw
Title:
Mouse kernel-mode drivers use the WDF-KMDF
Applicable OS Versions:








Windows 8 Client x86
Windows 8 Client x64
Windows 7 Client x86
Windows 7 Client x64
Windows Server 2012
Windows Server 2008 R2 x64
Windows Server 2008 x86
Windows Server 2008 x64
Page 532 of 907
Description:
Third-party mouse kernel-mode drivers must be ported to the WDF KMDF model.
Exceptions:
Not Specified
Business Justification:
KMDF drivers require minimal common code for default operations because most such code resides
in the framework, where Microsoft can ensure that it is compatible with each successive release of
Windows.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
6/1/2006
INPUT-0010
Device.Input.Sensor.Accelerometer
Description:
Not Specified
Related Requirements:
Device.Input.Sensor.Accelerometer.SensorDataType
Device.Input.Sensor.Accelerometer.SensorReportInterval
Device.Input.Sensor.Accelerometer.ShakeEvent
Device.Input.Sensor.Accelerometer.SensorDataType
Target Feature: Device.Input.Sensor.Accelerometer
Title: Accelerometer device drivers shall accurately report the right Data Types for Accelerometers
as defined for the Sensors and Location Platform
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
All accelerometer class sensors need to ensure that they accurately report the following Data Types
to be seamlessly integrated with Windows (through the sensors platform) and exposed to
applications.
Data type
SENSOR_DATA_TYPE_ACCELERATION_X_G
Page 533 of 907
Type
VT_R8
Meaning
X-axis acceleration, in gs.
SENSOR_DATA_TYPE_ACCELERATION_Y_G
VT_R8 Y-axis acceleration, in gs.
SENSOR_DATA_TYPE_ACCELERATION_Z_G
VT_R8 Z-axis acceleration, in gs.
*Clarify what G = Gravitational Constant = 32.2 ft/sec2 and 9.8 m/sec2
Note: Sensor Connection Type = SENSOR_CONNECTION_TYPE_PC_INTEGRATED for hardware that is
built-in to the PC enclosure.
For detailed information regarding sensor driver development, please see the Sensors topic in the
Device and Driver Technologies section of the Windows Driver Kit (WDK).
Exceptions:
Not Specified
Business Justification:
To ensure the accelerometer reports data in the standardized windows Data Types. This will enable
smooth integration into the screen orientation rotation manager and platform APIs.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
New
Device.Input.Sensor.Accelerometer.SensorReportInterval
Target Feature: Device.Input.Sensor.Accelerometer
Title: Accelerometer function driver and firmware report data with minimum report interval of
16ms (for a 60Hz frequency for gaming)
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
All accelerometer class sensors need to ensure that they accurately report the data at the required
sampling rates to be efficient for gaming applications as well as power managed when not in full use.
Sensor Property
Type
SENSOR_PROPERTY_MIN_REPORT_INTERVAL VT_R8
Application Scenario
Augmented Reality / Rich Gaming
Casual Gaming
Rotation Manager
Meaning
The minimum elapsed time
setting that the hardware
supports for sensor data report
generation, in milliseconds
Fidelity
Hertz Report Interval (msec)
High_Fidelity
60
16
Medium_Fidelity 30
33
Low_Fidelity
15
67
Page 534 of 907
All accelerometer type sensors must support these report intervals to ensure a consistent
experience for application categories. Intermediate report intervals may be optionally supported.
Exceptions:
Not Specified
Business Justification:
To ensure the accelerometer reports data in the standardized way that all applications can rely on.
These three categories of report intervals (sampling rate) should satisfy majority of the
accelerometer application categories. Vertical solutions are allowed to support other report interval
rates needed for the specific application.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Comments:
Windows 8 RC
New
Device.Input.Sensor.Accelerometer.ShakeEvent
Target Feature: Device.Input.Sensor.Accelerometer
Title: If an accelerometer device driver (optionally) supports a shake gesture, it must use the
correct Event ID and expose to the Sensors and Location Platform.
Applicable OS Versions:



Windows 8 Client x86
Windows 8 Client x64
Windows RT
Description:
An accelerometer r(or related) sensors may optionally report a shake gesture to the sensor platform,
when the user shakes the embedded sensor in the system. The following is the Data Event to be
seamlessly integrated with Windows (through the sensor's platform) and exposed to applications.
Data Event
Meaning
SENSOR_EVENT_ACCELEROMETER_SHAKE The user has shaken the system to trigger an
application event.
This is validated in code by calling: ISensor::SupportsEvent()
For detailed information regarding sensor driver development, please see the Sensors topic in the
Device and Driver Technologies section of the Windows Driver Kit (WDK).
Exceptions:
Not Specified
Business Justification:
Page 535 of 907
This is an optional properly that could be implemented by an accelerometer. When the system is
shaken, it sends a shake event to the application. Having a consistent way to recognizing shake
allows multiple applications to have a consistent experience. For more details on this event and how
the sensor should detect shake, please visit the Sensors Design Guide.
Scenarios:
Not Specified
Success Metric: Pass/Fail
Enforcement Date:
Windows 8 RC
Comments:
New
Device.Input.Sensor.ALS
Description:
Not Specified
Related Requirements:
Device.Input.Sensor.ALS.SupportRequiredData
Device.Input.Sensor.ALS.SupportRequiredData
Target Feature: Device.Input.Sensor.ALS
Title:
Ambient Light Sensors must support and generate the required data
Applicable OS Versions:





Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Description:
Data Field Support for Ambient Light Sensor
Ambient light sensors identify themselves as SENSOR_TYPE_AMBIENT_LIGHT though Device
Driver Interfaces ISensorDriver::OnGetSupportedSensorObjects and
ISensorDriver::OnGetProperties()).
Ambient Light sensors must support light readings in lux to ensure all light-aware applications
can expect consistent data. This data is queried from Device Driver Interface
ISensorDriver::OnGetSupportedDataFields() and ISensorDriver::OnGetDataFields()).
Built in ambient light sensors can be used by the Adaptive Brightness feature in Windows if they
also set the SENSOR_PROPERTY_CONNECTION_TYPE property (of data type VT_UI4) to
Page 536 of 907
SENSOR_CONNECTION_TYPE_PC_INTEGRATED. This is optional, but recommended for builtin sensors.
Data field
Data
type
SENSOR_DATA_TYPE_LIGHT_LEVEL_LUX VT_R4
Definition
The current light level being measured (in lux).
The requirements below ensure that the driver raises ALS report events in the correct manner. If the
correct behavior is not followed, client applications will not receive data.
Generating Reports
The device must be able to generate a series of reports containing
SENSOR_DATA_TYPE_LIGHT_LEVEL_LUX.
Verify Sensor can provide dynamic data report demonstrating a decrease and subsequent
increase in LUX.
Design Notes: The new Sensor and Location Platform enables sensor and location devices to be
easily accessible through two new APIs: the Sensor API and the Location API. The Sensor API
provides consistent access to information from physical and logical sensor devices. The Location API
is built on the Sensor API and streamlines access to location specific information.
The Sensor and Location Platform will rely on data provided to the platform via device drivers that
have implemented the Sensor Device Driver Interface. This document details the Windows Logo
tests which will be applied against devices (and their supporting drivers) applying for logo
certification for the Sensor and Location Platform. In most cases devices will be verified by using the
Sensor and Location Platform.
Ambient Light sensors must comply with Logo Requirement INPUT-0048 (Sensor and Location
Platform devices must properly support the required set of data and properties) in addition to the
requirements described here. These requirements are designed to help ensure the following goals
are met:
Sensor devices have high quality hardware and drivers.
Sensor devices interact with the APIs in a consistent and reliable manner.
Exceptions:
Not Specified
Business Justification:
To ensure the ALS sensor drivers that receive a logo meet a high quality bar, it is necessary that the
requirements include tests for the behavior of the device. The proposed additions ensure that the
driver raises ALS report events in the correct manner. If the correct behavior is not followed, client
applications will not receive data.
Scenarios:
Not Specified
Success Metric: Not Specified
Page 537 of 907
Enforcement Date:
Comments:
6/1/2009
INPUT-0050
Device.Input.Sensor.Base
Description:
Not Specified
Related Requirements:
Device.Input.Sensor.Base.SupportDataTypesAndProperties
Device.Input.Sensor.Base.SupportDataTypesAndProperties
Target Feature: Device.Input.Sensor.Base
Title: Sensor and Location Platform devices support the set of data types and properties as
defined in this requirement
Applicable OS Versions:





Windows 8 Client x86
Windows 8 Client x64
Windows RT
Windows 7 Client x86
Windows 7 Client x64
Description:
All sensor devices that implement the Sensor Device Driver Interface must meet the following
requirements. See any additional requirements that are specific to the sensor type being tested. For
detailed information regarding sensor driver development, please see the Sensors topic in the
Device and Driver Technologies section of the Windows Driver Kit (WDK).
Required Properties
Applications that use the Sensor API use these properties to manage devices and show
meaningful data to end users. The Sensor and Location Platform uses these properties to
populate the details in Control Panel.
These properties are queried using Device Driver Interfaces
ISensorDriver::OnGetSupportedSensorObjects, ISensorDriver::OnGetSupportedProperties()
and ISensorDriver::OnGetProperties(). Explicit type matching is required data types for these
properties must be the same as in the chart below.
Property
WPD_FUNCTIONAL_OBJECT_CATEGORY
Data type
VT_CLSID
Page 538 of 907
Details
Used by
ISensorManager::GetSensorsByCategor
y() to enable search by sensor category
(such as Location)
SENSOR_PROPERTY_TYPE
VT_CLSID
SENSOR_PROPERTY_STATE
VT_UI4
SENSOR_PROPERTY_PERSISTENT_UNIQUE_
ID
SENSOR_PROPERTY_MANUFACTURER
VT_CLSID
SENSOR_PROPERTY_MODEL
SENSOR_PROPERTY_SERIAL_NUMBER
SENSOR_PROPERTY_FRIENDLY_NAME
SENSOR_PROPERTY_MIN_REPORT_INTERV
AL
VT_LPWST
R
VT_LPWST
R
VT_LPWST
R
VT_LPWST
R
VT_UI4
Used by
ISensorManager::GetSensorsByType()
to enable search by sensor type (such
as GPS)
The current value of the SensorState
enum. Indicates the state of the sensor
(such as Ready or Error)
Enables the Sensor API and clients
uniquely identify the sensor device
Metadata (used by Location and Other
Sensors in Control Panel)
Metadata (used by Location and Other
Sensors in Control Panel)
Metadata for applications
Metadata (used by Location and Other
Sensors in Control Panel)
Metadata for applications
Required Static Properties
The following properties must not change value over time, so that the Sensor and Location
Platform (and applications) can use them to select and manage sensors. These properties
are queried using Device Driver Interfaces ISensorDriver::OnGetSupportedProperties() and
ISensorDriver::OnGetProperties().
Data types for these properties must match those in the following chart.
The following properties are static in the Sensor API.
Property
WPD_FUNCTIONAL_OBJECT_CATEGORY
SENSOR_PROPERTY_TYPE
SENSOR_PROPERTY_PERSISTENT_UNIQUE_ID
SENSOR_PROPERTY_MANUFACTURER
SENSOR_PROPERTY_MODEL
SENSOR_PROPERTY_SERIAL_NUMBER
SENSOR_PROPERTY_FRIENDLY_NAME
SENSOR_PROPERTY_MIN_REPORT_INTERVAL
Data type
VT_CLSID
VT_CLSID
VT_CLSID
VT_LPWSTR
VT_LPWSTR
VT_LPWSTR
VT_LPWSTR
VT_UI4
Settable Properties
Applications can use settable properties to configure the driver (such as optimize for power or
other factors). Other settable properties can be exposed besides the following one, but if
this property is exposed, it must be settable.
Page 539 of 907
Settable properties are optional. It is not required that sensor devices provide settable
properties. These properties are queried by using Device Driver Interface
ISensorDriver::OnGetProperties and set by using Device Driver Interface
ISensorDriver::OnSetProperties.
The following is considered a Settable Properties in the Sensor API.
Property
Data
Details
type
SENSOR_PROPERTY_CURRENT_REPORT_INTERVAL VT_UI4 Sets the minimum frequency (in
milliseconds) that a client wants to
receive data reports from the
sensor.
This property should be tracked on a
per client basis.
The SENSOR_PROPERTY_CHANGE_SENSITIVITY (VT_UNKNOWN) should be settable when present
but is not part of the requirement test.
The SENSOR_PROPERTY_CHANGE_SENSITIVITY property is used to set the threshold of how much a
data field must change before an event is fired.
Data Fields
Sensor devices are useful only when they report data. Each device must report at least one data
field in addition to SENSOR_DATA_TYPE_TIMESTAMP (VT_FILETIME). Data fields are exposed
to the Sensor API by using Device Driver Interface
ISensorDriver::OnGetSupportedDataFields() and ISensorDriver::OnGetDataFields().
Missing Properties
The device driver must correctly handle properties that a sensor device does not support. This
enables the Sensor and Location Platform to correctly notify applications when sensor
properties are missing.
Drivers must return S_FALSE from Device Driver Interfaces ISensorDriver::OnGetProperties and
ISensorDriver::OnSetProperties if one or more of the requested properties is not present on
the device.
For each missing property the PropVariant for the requested property must have a type of
VT_ERROR and a value of HRESULT_FROM_WIN32(ERROR_NOT_FOUND). The driver can
return valid values for properties it does have alongside invalid values.
The follow requirements ensure the sensor drivers that receive a certification can report data
reliably, obey the sensor driver state model and implement data timestamps correctly.
Reliability
The driver must continue to operate after four hours of "get data" and "get property" calls.
Page 540 of 907
The driver must continue to operate when readable/writeable properties are set and read.
The driver must provide data and properties after completion of sleep/resume or
hibernation/resume cycle(s)
Tim