Merge pull request #439 from mono-soc-2012/garyb/iconfix
[mono.git] / mcs / class / System / System.IO.Ports / WinSerialStream.cs
index 19fbfc51fbface441fb2a18e2dd33a821567adf3..f30973fc3462568fcd3a81548aa90d56eb13dd3f 100644 (file)
@@ -14,8 +14,6 @@ using System.Runtime.InteropServices;
 using System.Threading;
 using System.ComponentModel;
 
-#if NET_2_0
-
 namespace System.IO.Ports
 {
        class WinSerialStream : Stream, ISerialStream, IDisposable
@@ -78,7 +76,9 @@ namespace System.IO.Ports
                                bool dtr_enable, bool rts_enable, Handshake hs, int read_timeout, int write_timeout,
                                int read_buffer_size, int write_buffer_size)
                {
-                       handle = CreateFile (port_name, GenericRead | GenericWrite, 0, 0, OpenExisting,
+                       handle = CreateFile (port_name != null && !port_name.StartsWith(@"\\.\")
+                                       ? @"\\.\" + port_name : port_name,
+                                       GenericRead | GenericWrite, 0, 0, OpenExisting,
                                        FileFlagOverlapped, 0);
 
                        if (handle == -1)
@@ -109,21 +109,13 @@ namespace System.IO.Ports
                        // Init overlapped structures
                        NativeOverlapped wo = new NativeOverlapped ();
                        write_event = new ManualResetEvent (false);
-#if NET_2_0
                        wo.EventHandle = write_event.Handle;
-#else
-                       wo.EventHandle = (int) write_event.Handle;
-#endif
                        write_overlapped = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (NativeOverlapped)));
                        Marshal.StructureToPtr (wo, write_overlapped, true);
 
                        NativeOverlapped ro = new NativeOverlapped ();
                        read_event = new ManualResetEvent (false);
-#if NET_2_0
                        ro.EventHandle = read_event.Handle;
-#else
-                       ro.EventHandle = (int) read_event.Handle;
-#endif
                        read_overlapped = Marshal.AllocHGlobal (Marshal.SizeOf (typeof (NativeOverlapped)));
                        Marshal.StructureToPtr (ro, read_overlapped, true);
                }
@@ -574,7 +566,7 @@ namespace System.IO.Ports
        }
 
        [StructLayout (LayoutKind.Sequential)]
-       class CommStat
+       struct CommStat
        {
                public uint flags;
                public uint BytesIn;
@@ -582,5 +574,4 @@ namespace System.IO.Ports
        }
 }
 
-#endif