IrDA Protocol Driver
The IrDA protocol driver, irda.sys, is the only protocol driver that opens IrDA miniport drivers. This protocol driver is an implementation of the IrDA Infrared Link Access Protocol (IrLAP). This protocol driver is responsible for detecting infrared devices, establishing a link between local and remote devices, and reliably delivering data between local and remote devices. The IrDA protocol driver uses IrDA miniport drivers to deliver data between local and remote devices.
The services of the IrDA protocol driver are similar to the services that the TCP/IP protocol exposes. Using these services, applications that run on two different computers are able to easily open multiple reliable connections between themselves for the purpose of sending and receiving data. The IrDA protocol driver provides the following services:
Tiny Transport Protocol (TinyTP) is exposed through Winsock to applications. Applications can use TinyTP to make connections and to send and receive data.
Infrared Link Management Protocol (IrLMP) adds multiple session support to IrLAP. Multiple applications can use IrLMP to monitor for incoming connections without interfering with each other. A single application can also use IrLMP to open a control connection and a data connection at the same time. IrLMP also adds per-connection flow control to the flow control provided by the single IrLAP connection. IrLMP lets an application offer data in large blocks to the IrDA protocol stack. The IrDA protocol stack can then send this data at optimal speeds. Using IrLMP, applications are not required to monitor lost data or flow control.
Information Access Service (IAS) runs directly on top of IrLMP. IAS maps an ASCII service name to a LSAP-SEL. LSAP-SEL is a protocol element that is used to select one application from possibly many applications running on the server. This service name is a friendlier abstraction that is exposed to applications.
Infrared Link Printer Transport (IrLPT) communicates with printers. TinyTP is not used with IrLPT. IrLPT uses exclusive mode, which only supports a single IrLMP connection. This single IrLMP connection uses the flow control features of IrLAP. IrLMP defines the exclusive mode service.
The IrDA protocol driver binds to all IrDA miniport drivers that support the NdisMediumIrDA media type. IrDA miniport drivers only bind to the IrDA protocol driver because, unlike other NDIS media, the IrDA protocol layer implements part of the media control algorithm. The media control algorithm precludes multiple protocols.