Basic CIR Architecture

Infrared deprecation warning

Important

The Infrared driver stack is deprecated starting in Windows 10, version 1803 and should no longer be used.

Support for consumer infrared (CIR) remote controls is implemented in the Microsoft Windows operating systems by using a stack of drivers. Starting in Windows Vista, the architecture of this driver stack has been both extended and simplified to facilitate support of non-Microsoft CIR remote controls. The following diagram shows the overall architecture of the CIR driver stack.

The preceding diagram shows the components that are used to support remote control operations in Windows. Components provided by Microsoft are shown as blue-shaded blocks; Windows Media Center partner-developed components are shown as white blocks. Both user-mode and kernel-mode components are illustrated.

Support in the Windows operating system for CIR remote controls is anchored by the CIRClass driver. As shown in the preceding diagram, the upper edge of this driver provides the interface to the rest of the Windows system. As CIRClass receives data from underlying CIR Port drivers (such as USBCIR in the diagram), it routes that data (according to its own algorithms) to user-mode Windows Media Center components, to the human interface device (HID) stack, or to both of these destinations. During IR blasting operations, CIRClass sends data to one or more specific CIR Port drivers.

The lower edge of CIRClass provides an interface to one or more CIR Port drivers, including the Microsoft-supplied USBCIR driver. CIR Port drivers are responsible for controlling their CIR remote control hardware and for translating data for that hardware between the standard format that CIRClass uses (see Data Format) and their hardware's proprietary format.

The USBCIR driver supports standard Microsoft-defined CIR devices that connect to the computer through USB. USBCIR interfaces with CIRClass at its upper edge and with the standard Microsoft USB driver stack at its lower edge.

Also, the preceding diagram shows how an arbitrary, non-Microsoft-developed CIR remote control fits into the Windows system of CIR support. Non-Microsoft CIR Port drivers interface with the standard CIRClass driver at their upper edge, and with their hardware at their lower edge. Note that the CIR Port driver can interact with its hardware directly or indirectly, through an additional set of drivers that Microsoft might supply. For example, a non-Microsoft CIR Port driver would directly interface with a PCI-based non-Microsoft CIR remote control (with the support of the standard Microsoft-supplied PCI bus driver). Alternatively, a non-Microsoft USB-based CIR remote control would interact with its device indirectly through the standard Microsoft-supplied USB driver stack.

 

 

Send comments about this topic to Microsoft