This document is not being updated, it remains to document the situation at the time of its writing.  The information in it may have been superceded and/or subsequent better solutions may exist, see my FAQ etc.  One example is that IrComm2k’s web site is now always up and accessible (at http://www.ircomm2k.de/).  Alan

Microsoft IrCOMM in Windows XP and 2000

Alan J. McFarlane

29th September 2001

(7th June 2003  IrCOMM Modem Virtual COM Port note added.)

Introduction

As discussed in my previous document “Windows 2000 Infrared and Mobile Phones”[1] in Windows 2000 the Virtual COM Port support to allow communication with IrCOMM in Mobile phones was no longer present.  Other solutions were available but were not always satisfactory.  This made using Mobile phones with Windows 2000 difficult and was widely complained about.

This document contains some information about the third-party IrCOMM replacements and Microsoft’s solution in XP and as retrofitted to Windows 2000.

Third-party IrCOMM Virtual COM ports

As discussed previously Extended Systems produced software to reinstitute the IrCOMM Virtual COM port functionality, thought they did not seem keen to make this available.  It was for a long time only available in beta form from third-party sites and then commercially only from their German site.  However it is now available from their main (USA) site[2] at $17 but they don’t offer support.  It also appeared in other companies products e.g. Nokia PC Suite.  Not all users were able to use this software successfully.

Another version of this called IrCOMM2k appeared from a individual in Germany under the GPL (its free).  However its web sites[3] are generally inaccessible…

Microsoft provide a solution!

Microsoft however seems to have been listening.  In Windows XP (I’ve used Release Candidate 2) there is IrCOMM Modem functionality included.  When I placed my Nokia 6210 in front of my laptop’s Infrared port XP immediately installed the IrCOMM Modem and configured it correctly from the 6210.  True Plug and Play!

More discussion on the XP support is at “Networking over IrDA in Windows XP”[4].

The driver is now also available for Windows 2000 as of 21st August 2001, see Q252795[5].  This also fixes a “buffer overflow vulnerability”[6] that causes a denial of service.

Note, this statement is perhaps not as precise as it could be.  A Virtual COM Port for the IrCOMM Modem does exist when the phone is present and can be used in similar ways to the old Virtual COM Port.  It is true though that this is not a general Virtual COM Port as it is only usable in this single scenario.

As noted above, see the FAQ for more, and more current, information.  It contains, for instance, a screenshot of the Modem Control Panel showing COM4 present for a Nokia 6210.

Note Microsoft have NOT added the IrCOMM support as a general Virtual COM Port.  The support is as a Modem[7].  This means the problems with multiple applications using the COM Port are not reintroduced, or as Microsoft put it in Q252795:

Windows 2000 does not support virtual serial ports and does not provide a general implementation of IrCOMM to map the ports. There are several reasons for this:

·        Multiple applications cannot share a virtual serial port. The problem presented here, is that an IrCOMM-based program, such as the Microsoft H/PC Explorer or an IrTran-P-based file transfer program running as a background service can open the single virtual serial port and hold it open until you shut down the computer. No other IrDA program or driver is able to run on that computer. This is true, even though the underlying IrDA protocols provide support to allow multiple programs to wait for incoming connections.

·        Windows 2000 IrDA connections must be supported by multiple device connections. Windows 2000 supports multiple concurrent adapters and IrDA connections to different devices, and cannot support an API and protocol that uses a single device connection.

Attempting to do IrCOMM would have inherit limitations that would not work through the existing serial API, which would prevent the ability to do full error-correction in the IrDA stack and create unreliable connections.

 

 

Copyright © 2001 Alan J. McFarlane. All rights reserved.

Document for information only, no warranties blah de blah, all trademarks etc.

This document is at: http://www.alanjmcf.me.uk/comms/infrared/MicrosoftIrCommInXPand2000.html



[1] Window 2000 with Mobile phones (lack of Virtual COM port support)

[2] “Virtual COM port Driver for Windows 2000” at http://www.extendedsystems.com/ESI/Products/Wireless+Connectivity+Products/IrDA+Windows+Applications/Product+Detail/IrCOMM.htm from Extended Systems

[3] IrCOMM2k at http://www.ircomm2k.de/ or http://gimli.gatrobe.uni-hannover.de/~jan/IrCOMM2k/

[4] “Networking over IrDA in Windows XP” at http://www.microsoft.com/hwdev/infrared/WinXP-IrDA.htm

[5] “Windows 2000 Does Not Support Mapping Virtual COM Ports to Infrared Ports (Q252795)” at http://support.microsoft.com/support/kb/articles/Q252/7/95.asp

[6] “Microsoft Security Bulletin MS01-046” at http://www.microsoft.com/technet/security/bulletin/ms01-046.asp

[7] Though when the phone is “present” a COM Port mapping does exist.  This allows HyperTerminal for instance to connect to the phone both through the Windows Modem and in the raw (e.g. AT…)