Determine if serial port is normal COM or SPP

You are unable to find this information out via the SerialPort class. You would need to do a WMI query.

Doing something along the lines of this may lead you to it

ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select * 
                                      from WIN32_SerialPort");

foreach(ManagementObject Port in searcher.Get()) {

       string a = (string) Port.GetPropertyValue("Name");

}

I haven't got this code loaded so I don't know what further properties you can obtain. However if there was anyway, WMI would be the way to do it.