Professional Documents
Culture Documents
in Printing Devices
Compatible ID Support Guidelines
for Printing Devices
September 18, 2013
Abstract
Windows 8
Windows 7
References and resources discussed here are listed at the end of this
paper.
For the latest information, see:
How to Implement Compatible IDs in Printing Devices
Disclaimer: This document is provided as-is. Information and views expressed in this document, including
URL and other Internet website references, may change without notice. Some examples depicted herein are
provided for illustration only and are fictitious. No real association or connection is intended or should be
inferred.
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.
2013 Microsoft. All rights reserved.
Document History
Date
Change
January 20,
2009
April 18, 2013
September 18,
2013
First publication
Update to compatible ID character selection
Update to Updating the Printer Devices INF File
section
Contents
Overview............................................................................................ 3
Choosing a Compatible ID..................................................................3
Updating the Printers Firmware.........................................................4
Updating the Printing Devices INF File...............................................5
Resources........................................................................................... 7
Overview
In Windows 7, the parsing of IEEE 1284 identifier (ID) strings that
are reported by printing devices has expanded to include compatible
IDs. Compatible IDs let independent hardware vendors (IHVs) specify
a generic ID for a family or class of devices that a single driver
supports. This does not affect or change the existing hardware ID
that is generated for printers. Therefore, legacy printing devices and
drivers continue to function correctly.
Device manufacturers can categorize new printing devices through a
single compatible ID and associate devices generically to a single
driver without a specific hardware ID match. This lets device
manufacturers ship a driver package that will continue to support
devices that have not yet been developed, without requiring an
update to the packages information (INF) file.
For more information about compatible IDs and hardware IDs, see
Device Identification Strings.
Choosing a Compatible ID
Construct a compatible ID by using the following guidelines, which
are explained in detail later in this paper. This section provides a
summary of these guidelines:
The compatible
ID should always
start with the
name of the
organization that
defines the
compatible ID.
This helps
ensure that no
collisions occur
between values
from different
companies. For
example, any
compatible ID
that is defined
by a company
named Contoso
would start with
Contoso.
The compatible
ID must contain
only the
following ASCII
characters:
Lowercase
Uppercase
characters (0 through 9)
Numeric
Underscores,
same driver.
The compatible
ID must not
exceed 180
characters long.
The compatible
ID should be
chosen to
represent a
family or class of
devices that can
all be used with
the same driver.
Generally,
printing devices
should be
assigned the
same compatible
ID if:
They use the
They are
managed by the same application or service that the IHV
developed.
Any functional
differences between printing devices can be resolved by the
driver during device installation or ordinary operation.
COMPATIBLEID:CONTOSOClass1
Lowercase
alphabetical
characters (a
through z)
Uppercase
alphabetical
characters (A
through Z)
Numeric
characters (0
through 9)
Underscores,
dots and dashes
Colon character
(:)
Comma
character (,)
Semicolon
character (;)
For a USB
attached device,
the compatible
ID is
USBPRINT\1284_
CID_CONTOSOCl
ass1
For a WSD
attached device,
the compatible
ID is
WSDPRINT\1284_
CID_CONTOSOCl
ass1
more information about the INF Models section, see INF Models
Section.
The following shows an example of an INF Models section for a print
device that has a hardware ID of USBPRINT\CONTOSOModel_7:
Contoso Printer Model 7 = InstallSection,
USBPRINT\CONTOSOModel_7
The format for supporting compatible IDs is similar.
For typical print drivers, we require the following. This ensures that
these drivers outrank any print class drivers.
For print class drivers, we require the following. This ensures that
these drivers have the lowest possible rank for the hardware.
The printer
description
should be
generic so that it
applies to any
printer that
might load the
driver.
The hardware ID
field should be
left blank. This
helps ensure
that specific
drivers that are
written for the
specific device
always take
precedence over
the more generic
compatible ID
match.
The compatible
ID should be
after the blank
hardware ID,
including the bus
enumerator and
CID keyword that
are added to the
original value
that was
specified in the
printer firmware.
Multiple
compatible IDs
should never be
specified in the
same line in an
INF. This will
result in a lower
ranking which
could cause
behavior issues.
Resources
Windows Hardware Developer Center: