About IrDA Miniport Drivers
The interface between IrDA hardware (infrared transceivers) and the core IrDA protocol stack is through Network Driver Interface Specification (NDIS) and IrDA miniport drivers. The IrDA protocol stack expects that IrDA hardware and IrDA miniport drivers handle framing, transparency, error detection, and support commands for sensing media activity and changing speed. IrDA miniport drivers are responsible for discarding incoming frames that contain bad cyclic redundancy checks (CRC); these frames must never be forwarded to the IrDA protocol stack.
The operating system supplies an implementation of the core IrDA protocol stack. The IrDA protocol stack is loaded dynamically by the Plug and Play system when an IrDA miniport driver is installed. The IrDA Tiny Transport Protocol (TinyTP) layer of the IrDA protocol stack is exposed to applications through Windows Sockets (WinSock) with the support of the user-space component wshirda.dll. Applications can only use WinSock to communicate with IrDA miniport drivers. For more information about programming IrDA with WinSock, refer to the Microsoft Windows SDK documentation.
For most purposes, the operating system treats IrDA miniport drivers as miniport drivers that bind only to the IrDA protocol stack. An IrDA co-installer displays these drivers to the user as IrDA adaptersand handles IrDA-specific user interface and setup issues.
Unlike NDIS drivers for other media, an IrDA miniport driver is never simultaneously bound to more than one protocol, and it is always bound to the same protocol. This is because, unlike other NDIS media, the IrDA protocol stack implements part of the media-control algorithm. This algorithm precludes multiple protocols.
System-supplied and vendor-supplied INF files are used to install IrDA miniport drivers and the IrDA protocol stack. These INF files must adhere to the Net INF and IrDA INF conventions.
The operating system supplies one IrDA miniport driver, irsir.sys, which is used to communicate with existing external Universal Asynchronous Receiver/Transmitter (UART)-attached SIR adapters and internal SIR IrDA adapters. Vendors should ensure that their SIR hardware is supported correctly through irsir.sys.
High-quality IrDA miniport drivers and INFs can be included with the operating system. This practice is encouraged because it improves the user IrDA installation experience.
The IrDA protocol stack can support multiple IrDA NICs concurrently. Vendors who wish to exploit this feature should expose multiple IrDA NICs through their IrDA miniport driver. Each exposed NIC should represent a unique transceiver and supporting hardware, capable of running a separate infrared connection.
There are a number of Plug and Play issues that must be considered when implementing IrDA miniport drivers for various IrDA hardware configurations. The Plug and Playsection explores these issues.