C# SerialPort#Open() method throws ArgumentException because of port name?
===

On my local machine,

 - Windows XP
 - Ports (COM & LPT)
    - RIM Virtual Serial Port v2 (COM4)
    - RIM Virtual Serial Port v2 (COM5)

the following code,

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.IO.Ports;
    using System.Threading;
    
    namespace OpenSerialPortTest
    {
        class Test
        {
            static void Main(string[] args)
            {
                foreach (String serialPortName in SerialPort.GetPortNames())
                {
                    SerialPort serialPort = new SerialPort(serialPortName);
                    try
                    {
                        serialPort.Open(); // Line 19
                        Console.WriteLine(serialPort.PortName);
                    }
                    catch (Exception ex1)
                    {
                        Console.WriteLine(ex1);
                        try
                        {
                            serialPort.Close();
                        }
                        catch (Exception ex2)
                        {
                            Console.WriteLine(ex2);   
                        }
                    }
                }
                Console.ReadLine();
            }
        }
    }

will throw the following `ArgumentException`,

![enter image description here][1]

[1]: http://i.stack.imgur.com/qFswh.png

That is,

> The given port name does not start with COM/com or does not resolve to
> a valid serial port.


Does anybody know why this is happening?