Specifications
Remote Control and Receiver-Transceiver Specifications and Requirements
for Windows Media Center in Windows Operating Systems
136
Figure 28: The device object relationship
In the preceding diagram, each device object is represented by either a circle or a square. Circles
represent Functional Device Objects (FDOs) and squares represent Physical Device Objects
(PDOs). The driver that creates each device object is shown on the left of the diagram, on the
same line as the device object that it creates. Attachment between device objects is illustrated by
a solid line between the attached device objects. Note that only the device objects that are
directly relevant to CIRClass and USBCIR are shown.
In the preceding diagram, note that CIRClass and USBCIR are separate drivers, each with its
own FDO. While not specifically shown in the preceding diagram, it's also important to note that
there is only one instance of the CIRClass driver (and one CIRClass FDO) irrespective of the
number of CIR Port drivers that are installed on a system. Thus, CIRClass does not provide a
"mini-driver"-based framework such as that provided by, for example, the HIDClass or StorPort
drivers. Rather, CIRClass supports CIR Port drivers that are independent function drivers. Thus,
CIR Port drivers are entirely responsible for controlling their hardware and act as the power policy
owner for their hardware devices.
CIR Port drivers are instantiated by the Windows Plug and Play Manager once the hardware
device that they support is detected. For example, the USBCIR driver is instantiated as a result of
the (standard Microsoft-supplied) USBHUB driver detecting that a supported USBCIR remote
control device has been plugged in. Thus, when the USBHUB driver detects a USBCIR remote
control device, it creates a PDO that describes this device and informs the Plug and Play
Manager of the device's existence. The Plug and Play Manager then loads the appropriate
function driver for the CIR device. In the preceding diagram, the driver that is loaded as a result
of this action is the USBCIR driver. When USBCIR starts, it creates an FDO and attaches that
FDO to the underlying device stack, according to the standard Windows practice.
Even though the CIRClass driver is available on all Windows systems, it is not installed until a
CIR Port driver is installed. Whenever a CIR Port driver is installed, a device- specific coinstaller
is invoked to install and start the CIRClass (if it has not already been installed and started). This
device-specific coinstaller, which is provided by Microsoft, must be invoked by all CIR Port drivers
as part of their installation procedure.










