SERIAL PORT PAIR X64 (Win Vista,7,8) 23.3.2014
SERIAL PORT PAIR W32 (Win Vista,7,8) 23.3.2014
SERIAL PORT PAIR Win XP 23.3.2014


Serial Port Pair is a virtual COM port pair simulating a nullmodem for Windows XP, Win Vista, Win 7 and Win 8. There are x64 and w32 versions for Win Vista, Win 7 and Win 8. It is based on a Microsoft VC++ sample. The driver framework UMDF 1.X is used for these operating systems. Windows 8.1 introduces UMDF 2.0 but still includes 1.X.

[Only Windows 8]
The driver is unsigned. Win 8 can't install unsigned drivers with testsigning turned off, which is the default, because of security reasons. Because the driver isn't signed and should't look suspicious, its source is included in this binary package. You can compile it with Visual Studio 2012 Professional (commercial) and Windows Driver Kit 8.0 (Microsoft, free).
To turn the installation of unsigned drivers on, process the following steps:
1. Open Control Panel
2. Open Update and Recovery
3. Choose Recovery
4. Choose Restart for Advanced startup
5. Choose Troobleshoot
6. Choose Advanced option
7. Choose Startup settings
8. Select Restart
9. After the restart disable driver signing enforcement with the F1...F12-keys
[Only Windows 8: end of instruction list]

The serial port pair can't transmit I/O requests, which start with a special sequence, which is 31 byte long. This sequence is very unlikely and was introduced to avoid using I/O control with large amounts of data. Install the serial port pair server and the serial port pair client with the windows "add legacy hardware" function (located in the device manager). The device manager can be accessed in the control panel. You must select an item in the device list, if you want to access the menu item for adding legacy hardware.

You can install only one port pair with the binaries. If you want more Pairs, you must change device.h and recompile with Visual Studio Professional 2012 and Windows Driver Kit 8.0.
Find device.h in SolutionServer and SolutionClient. Find the following line:

DEFINE_GUID(GUID_DEVINTERFACE_COMPORTSERVER, 0x86e0d1e0L, 0x8089, 0x11d2, 0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73);
DEFINE_GUID(GUID_DEVINTERFACE_COMPORTCLIENT, 0x86e0d1e0L, 0x8089, 0x11d1, 0x9c, 0xe4, 0x08, 0x00, 0x3e, 0x30, 0x1f, 0x73);


Change the number in both files. Both files must be equal. Recompile for your system and install the driver package located in the output directory with the device manager menu. You can install the server first or the client, it doesn't matter.