Device.Imaging Requirements

Device.Imaging.Printer.Base

Related Requirements
Device.Imaging.Printer.Base.applicationVerifier
Device.Imaging.Printer.Base.autoConfiguration
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

Printer driver components must comply with Application Verifier test criteria

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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 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 https://go.microsoft.com/fwlink/?LinkId=58371.

Additional Information

Enforcement Date
Jul. 11, 2008

Device.Imaging.Printer.Base.autoConfiguration

Printers must support autoconfiguration

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.configurationFiles

Version 4 print drivers provide valid configuration files.

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Version 4 print drivers must provide valid configuration files.

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.

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.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Imaging.Printer.Base.connectionRecovery

A printer must continue to operate normally if a computer becomes unavailable during a print job

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.connectivityRobustness

A printer must recover from a surprise disconnect or reconnect

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.deviceCapabilities

A printer must correctly support the DeviceCapabilities and GetDeviceCaps application programming interfaces (APIs) based on the guidelines in the Windows Driver Kit

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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 https://msdn.microsoft.com/library/dd183552(v=vs.85).aspxand https://msdn.microsoft.com/library/ff566075(v=VS.85).aspx.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.DocumentProperties

A driver must implement the DocumentProperty API according to the guidelines in the Windows Driver Kit

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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 https://msdn.microsoft.com/library/ff562200(v=vs.85).aspx.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.driverCategory

Version 4 printer drivers must declare a valid printer category

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

All V4 printer drivers must declare a valid DriverCategory 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:

PrintFax.Printer

PrintFax.Fax

PrintFax.Printer.File

PrintFax.Printer.Virtual

PrintFax.Printer.Service

Additional Information

Enforcement Date
Jul. 10, 2008

Device.Imaging.Printer.Base.DriverEventFiles

Driver Event files are implemented according to the guidance in the WDK

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

Description

Driver Event files are implemented according to the guidance in the WDK

Driver Event files are syntactically valid

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Imaging.Printer.Base.driverIsolation

A printer driver that supports driver isolation must do so as defined in Windows Driver Kit

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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 whitepaper is planned for a future date. Please send requests to prninfo@microsoft.com.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Imaging.Printer.Base.driverPackage

Print device drivers must support package installation infrastructure

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

Description

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.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Imaging.Printer.Base.driverStability

Printer driver components do not cause a break in any process in which they are loaded

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Imaging.Printer.Base.faxModem

Fax modem successfully sets up a connection and transmits pages

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64

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).

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.faxTIA592

Fax Class 2.0 implementations must comply with the TIA-592 command set

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64

Description

If the device supports Fax Class 2.0, the fax must comply with the TIA-592 standard.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.faxV34

Any Fax V.34 implementation must comply with ITU-T recommendation V.34

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64

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".

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.GDLFile

GDL files must use correct syntax according to the guidelines in the Windows Driver Kit

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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 https://msdn.microsoft.com/library/ff549787(v=VS.85).aspx and https://msdn.microsoft.com/library/ff563355(v=VS.85).aspx.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.infFile

INF files must use the correct syntax according to the guidelines in the Windows Driver Kit

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

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 https://msdn.microsoft.com/library/ff560902(v=VS.85).aspx and https://msdn.microsoft.com/library/ff563414(v=VS.85).aspx.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.jobCancellation

A printer must handle software problems or print job cancellations gracefully

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jul. 10, 2008

Device.Imaging.Printer.Base.metadata

Printer and MFP driver components must include an authored device metadata document

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Imaging.Printer.Base.portMonitors

A v4 print driver must use an inbox provided port monitor.

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

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

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Imaging.Printer.Base.PrinterExtension

Printer extensions are implemented according to the guidance in the WDK

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 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

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Imaging.Printer.Base.printerInterfaces

A printer device must support at least one non-legacy interface

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.printProcessor

Print processors must be implemented based on the guidelines in the Windows Driver Kit

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

Description

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, seehttps://msdn.microsoft.com/library/ff566084(v=VS.85).aspx.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.printRegions

A printer must support printable regions accurately

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.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 auto-scaling 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, "auto-scaling" 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.

Additional Information

Enforcement Date
Jun. 01, 2007

Device.Imaging.Printer.Base.printTicket

Printer driver supports PrintTicket/PrintCapabilities

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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 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:

DocumentCollate

JobCopiesAllDocuments

JobDuplexAllDocumentsContiguously

PageColorManagement

PageImageableSize

PageMediaSize

PageMediaType

PageOrientation

PageOutputColor

PageResolution

PageICMRenderingIntent

One of the following: JobInputBin, DocumentInputBin, or PageInputBin

Additional Information

Enforcement Date
Jul. 12, 2008

Device.Imaging.Printer.Base.rendering

A printer must correctly render print jobs

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

Description

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, seehttps://msdn.microsoft.com/library/ff566081(v=VS.85).aspx.For more information about Pgremlin2, seehttps://msdn.microsoft.com/library/ff566079(v=VS.85).aspx.For more information about the WinFX Markup Content Rendering Test,seehttps://msdn.microsoft.com/library/ff569275(v=VS.85).aspx.For more information about the Photo Print Test, see https://msdn.microsoft.com/library/ff565234(v=VS.85).aspx.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.Base.TCPMon

Network-connected printers that support Port 9100 printing with the Microsoft Standard Port Monitor (TCPMon) must provide rich status for the device

Target Feature
Device.Imaging.Printer.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 27, 2008

Device.Imaging.Printer.Cluster

Related Requirements
Device.Imaging.Printer.Cluster.cluster

Device.Imaging.Printer.Cluster.cluster

Print driver implements cluster requirements

Target Feature
Device.Imaging.Printer.Cluster
Applies to
Windows Server 2008 Release 2 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 ProcessorPrint 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 MonitorsThe 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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Printer.OXPS

Related Requirements
Device.Imaging.Printer.OXPS.OXPS

Device.Imaging.Printer.OXPS.OXPS

V4 drivers that support OpenXPS must be implemented according to the rules specified in the WDK.

Target Feature
Device.Imaging.Printer.OXPS
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 x64

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 specify either "XpsFormat=OpenXPS", "XpsFormat=OpenXPS, XPS" or "XpsFormat=XPS, OpenXPS" in the DriverRender section

The first filter 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 PrintSchema Specification 1.0.

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.

Additional Information

Enforcement Date
Jul. 12, 2008

Device.Imaging.Printer.USB

Related Requirements
Device.Imaging.Printer.USB.CompatID
Device.Imaging.Printer.USB.JSBidiExtender

Device.Imaging.Printer.USB.CompatID

Printers must implement a Compatible ID in their IEEE1284 string according to the rules specified in the WDK.

Target Feature
Device.Imaging.Printer.USB
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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

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 Whitepaper: https://msdn.microsoft.com/windows/hardware/gg463313.aspx

Additional Information

Enforcement Date
Jun. 01, 2012

Device.Imaging.Printer.USB.JSBidiExtender

USB JavaScript Bidi Extenders are implemented according to the guidance in the WDK

Target Feature
Device.Imaging.Printer.USB
Applies to
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2012 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.

They must use syntactically valid JavaScript, implemented according to the WDK.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Imaging.Printer.WSD

Related Requirements
Device.Imaging.Printer.WSD.CompatID
Device.Imaging.Printer.WSD.Rally
Device.Imaging.Printer.WSD.WSPrint

Device.Imaging.Printer.WSD.CompatID

Printers must implement a Compatible ID in their IEEE1284 string according to the rules specified in the WDK.

Target Feature
Device.Imaging.Printer.WSD
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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

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 Whitepaper: https://msdn.microsoft.com/windows/hardware/gg463313.aspx

Additional Information

Enforcement Date
Jun. 01, 2012

Device.Imaging.Printer.WSD.Rally

Network-attached printers and MFPs must implement the Windows Rally Technologies

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

Description

Network-connected printers, scanners, and MFPs that implement any of the following Windows Rally requirements must comply completely with the implemented requirement:

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 network-connected 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 https://go.microsoft.com/fwlink/?LinkID=123172,

Additional Information

Enforcement Date
Jun. 01, 2008

Device.Imaging.Printer.WSD.WSPrint

Network-connected printers must implement Windows network-connected Web Services for Devices

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

Description

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:

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 https://go.microsoft.com/fwlink/?LinkId=109841.

Additional Information

Enforcement Date
Jul. 12, 2008

Device.Imaging.Printer.XPS

Related Requirements
Device.Imaging.Printer.XPS.XPS

Device.Imaging.Printer.XPS.XPS

A printer must have a driver that correctly implements XPSDrv printer driver architecture

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

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 specify either "XpsFormat=OpenXPS", "XpsFormat=OpenXPS, XPS" or "XpsFormat=XPS, OpenXPS" in the DriverRender section

The first filter 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 PrintSchema Specification 1.0?

The v4 driver filter pipeline must produce a PDL that the target print device can interpret.

Filters in the v4 driver pipeline supporting XPS 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.

XPS 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 GDI rendering module. Is this what we used to say?

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.

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

Additional Information

Enforcement Date
Jul. 12, 2008

Device.Imaging.Scanner.Base

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
Device.Imaging.Scanner.Base.WIAArchitecture
Device.Imaging.Scanner.Base.WIAProperties

Device.Imaging.Scanner.Base.dataTransfer

WIA drivers must support specific data transfer implementations

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

Description

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.

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.

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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Scanner.Base.driverInstallation

A WIA driver must be installed for scanners and MFPs

Target Feature
Device.Imaging.Scanner.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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 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.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Imaging.Scanner.Base.errorHandling

WIA drivers that support error handling must comply with specified error handling implementations

Target Feature
Device.Imaging.Scanner.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

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.

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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Scanner.Base.metadata

Scanner and MFP driver components must include an authored device metadata document

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

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.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Imaging.Scanner.Base.MFPmultiplePorts

MFP devices that have multiple identical ports must expose the same functionality on all ports

Target Feature
Device.Imaging.Scanner.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Scanner.Base.RawFileFormat

A scanning device that supports the WIA Raw Transfer Image file format must implement it correctly

Target Feature
Device.Imaging.Scanner.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 26, 2013

Device.Imaging.Scanner.Base.scannerInterfaces

A scanning device must support at least one non-legacy interface

Target Feature
Device.Imaging.Scanner.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Scanner.Base.statusMessages

Scanning device sends device status messages correctly

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

Description

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 https://msdn.microsoft.com/library/ff543907.aspAlternatively, send an e-mail message to wiainfo@microsoft.com.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Scanner.Base.wia20

Scanners and multi-function printers that have scanning ability must implement the WIA 2.0 driver architecture according to the Windows Driver Kit guidelines

Target Feature
Device.Imaging.Scanner.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.Design Notes: WIA 2.0 enables new stream-based transfer models and certain extensions that include an image-processing filter, a segmentation filter, and error handling. For more information about WIA 2.0, see "Introduction to WIA 2.0" at https://www.microsoft.com/whdc/device/stillimage/WIA20-intro.mspx and "What's new in WIA 2.0" at https://msdn.microsoft.com/library/ms630379(VS.85).aspx.

Additional Information

Enforcement Date
Jun. 01, 2010

Device.Imaging.Scanner.Base.WIAArchitecture

A scanner device driver must implement WIA driver architecture

Target Feature
Device.Imaging.Scanner.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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."

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Scanner.Base.WIAProperties

Scanners must implement support for all required WIA properties and property values

Target Feature
Device.Imaging.Scanner.Base
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2006

Device.Imaging.Scanner.DistributedScanManagement

Related Requirements
Device.Imaging.Scanner.DistributedScanManagement.DistributedScanManagement

Device.Imaging.Scanner.DistributedScanManagement.DistributedScanManagement

A scanner that supports the Distributed Scan Management protocols must implement the protocols correctly

Target Feature
Device.Imaging.Scanner.DistributedScanManagement
Applies to
Windows Server 2012 R2 x64
Windows Server 2008 Release 2 x64
Windows Server 2012 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.

Additional Information

Enforcement Date
Jun. 01, 2009

Device.Imaging.Scanner.WSD

Related Requirements
Device.Imaging.Scanner.WSD.Rally
Device.Imaging.Scanner.WSD.WSScan

Device.Imaging.Scanner.WSD.Rally

Network-attached scanners and MFPs must implement the Windows Rally Technologies

Target Feature
Device.Imaging.Scanner.WSD
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64
Windows 8.1 Client x86, x64

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 network-connected 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 https://go.microsoft.com/fwlink/?LinkID=123172

Additional Information

Enforcement Date
Jun. 01, 2008

Device.Imaging.Scanner.WSD.WSScan

Scanners that have a network connection must implement WS-Scan protocol

Target Feature
Device.Imaging.Scanner.WSD
Applies to
Windows 7 Client x86, x64
Windows 8 Client x86, x64, ARM (Windows RT)
Windows 8.1 Client x86, x64, ARM (Windows RT 8.1)

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 WS-Scan exposes.

If the device has ADF and plate scanning, the device must support those media over WS-Scan.

For more information, see "Implementing Web Services on Devices for Printing and Scanning" at https://www.microsoft.com/whdc/connect/rally/wsdspecs.mspx.

Additional Information

Enforcement Date
Jun. 01, 2011