Specifications

Remote Control and Receiver-Transceiver Specifications and Requirements
for Windows Media Center in Windows Operating Systems
137
Note that there is no direct connection (that is, no attachment) between the CIRClass and
USBCIR drivers. As a result, CIRClass engages in a handshaking exchange (described later in
this document) with each CIR Port driver as that port driver is started.
CIR Version 1 DDI and Version 2 DDI
A newer version of the Consumer IR Device Driver Interface (CIR DDI), called the version 2 DDI,
is being introduced with the release of Windows 7. The version 2 DDI is meant to replace and
augment the first CIR DDI, which was distributed with Windows Media Center in Windows Vista.
The version 2 DDI is a designed as a superset of the version 1 DDI with backwards and forwards
compatibility, which was designed for from the beginning. This compatibility will be discussed in
future sections.
Note on Documentation Conventions
Throughout this section, the version of the CIR DDI that was distributed with Windows Media
Center in Windows Vista will be referred to as the version 1 DDI. The newer DDI will be referred
to as the version 2 DDI.
If a section does not explicitly specify which version of the DDI it refers to, it can be assumed that
it applies to both the version 1 DDI and the version 2 DDI.
New sections that only apply to the version 2 DDI will be labeled version 2 DDI only.
Backwards and Forwards Compatibility
The version 2 DDI is designed to be both backwards and forwards compatible. This means that
the DDI that the port driver implements and the DDI that the class driver implements may be two
different versions, but if the port driver is written with backwards compatibility in mind, the drivers
should be able to adapt gracefully to these differences in versions.
Specifically, this means:
A port driver that is written for the version 1 DDI will work with the version 2 DDI class driver with
absolutely no modification.
A port driver that is written for the version 2 DDI is required to be aware that it may run on a
system with the version 1 DDI class driver and adjust its behavior accordingly.
Because version 2 DDI is a superset of the version 1 DDI, the first assertion is virtually
guaranteed. This works because the version 2 class driver inside of Windows Media Center is
aware of both the version 1 DDI and the version 2 DDI. If the version 2 class driver sees a
version 1 port driver, it is able to treat it as a port driver with limited capabilities. See the Proper
Implementation of Version 1 and Version 2 Devcaps section for more information about how DDI
versioning is accomplished.
On the other hand, a version 2 port driver may have capabilities that are unknown to the version
1 class driver. Specifically, a version 2 port driver may support features such as programmable
wake, blast-only, or narrow band pass filter (BPF). Because the version 1 class driver does not
implement these features, the driver writer needs to be aware that their port driver may run with a
version 1 class driver, but their device may not be able to function correctly in all circumstances.
Features Added to Version 2 DDI
The version 2 DDI was created to support additional device capabilities, allowing OEM partners
to create a wider variety of CIR devices with a wider variety of hardware capabilities.
Note that you will be bound by the requirements in the Windows Logo Program when building
your device.