[Windows Mobile Apps and Games] :
Why implementing a serial port emulation firstly?

We want to make it possible to handle data and signals from a single serial device (GPS device) by a number of different applications (for example GpsModDriver, GpsTracker, etc), thus several legacy applications can share data from this one GPS device.

Using serial port emulation one can split a real COM port between a number of virtual serial ports. This makes it possible to supply data from a single serial device to a number of different applications. Such necessity arises when several applications compete for a single GPS connection and the user must close one program to allow another to access a single GPS device.

That's what the freeware VirtComNG ( I am using) can do for you.

My Windows CE 5.0 CORE registry entries hence look as these:

[HKEY_LOCAL_MACHINE\Drivers\VirtComNG]
"Copyright"="Hasotec GmbH, Hans-Gerhard Flohr"
"NMEAFilter"=dword:00000000
"InStopBits"=dword:00000000
"InParity"=dword:00000000
"InBits"=dword:00000008
"InBaud"=dword:000012C0
"Order"=dword:00000002
"DeviceArrayIndex"=dword:00000005
"DeviceType"=dword:00000001
"Index"=dword:00000004
"File"=""
"InPortName"="COM2:"
"InPortIndex"=dword:00000002
"Prefix"="COM"
"Dll"="\\Windows\\VirtComNG.dll"
"FriendlyName"="VirtComNG on COM2:"

[HKEY_CURRENT_USER\Software\Hasotec]

[HKEY_CURRENT_USER\Software\Hasotec\VirtComMgr]
"DriverActivated"=dword:00000001
"NMEAFilter"=dword:00000000
"DriverResident"=dword:00000001
"BaudRate"=dword:000012C0
"ModuleFileName"="\\VirtComMgr.exe"
"OutPort"="COM4:"
"SourceFile"=""
"Source"="COM2:"

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Serial5]
"Copyright"="Mach2003"
"Index"=dword:00000003
"Flags"=dword:00000000
"Order"=dword:00000002
"FriendlyName"="GpsModDriver"
"Prefix"="COM"
"Dll"="GpsModDriver.dll"

[HKEY_LOCAL_MACHINE\Software\Mach2003]

[HKEY_LOCAL_MACHINE\Software\Mach2003\GpsModDriver]
"Uninstall"=dword:00000000
"GpsComPort"=dword:00000004
"MagLand"=dword:00000000
"MagVal"=dword:00000000
"EnableSpeed"=dword:00000002
"EnableCourse"=dword:00000002
"EnableDop"=dword:00000001
"LagAdvance"=dword:000007D0
"DeltaTime"=dword:00002710
"DeltaSpeed"=dword:00000032
"DeltaDistance"=dword:00000032
"SleepTime"=dword:000003E8
"EnableSmooth"=dword:00000001
"EnableLogs"=dword:00000000
"Profile2Name"="Walking"
"Profile1Name"="Driving"
"CurrentProfile"=dword:00000001

[HKEY_LOCAL_MACHINE\Software\Mach2003\GpsModDriver\Profile2]
"MagLand"=dword:00000000
"MagVal"=dword:00000000
"EnableSpeed"=dword:00000001
"EnableCourse"=dword:00000001
"EnableDop"=dword:00000001
"LagAdvance"=dword:000007D0
"DeltaTime"=dword:000007D0
"DeltaSpeed"=dword:00000032
"DeltaDistance"=dword:00000005

[HKEY_LOCAL_MACHINE\Software\Mach2003\GpsModDriver\Profile1]
"MagLand"=dword:00000000
"MagVal"=dword:00000000
"EnableSpeed"=dword:00000002
"EnableCourse"=dword:00000002
"EnableDop"=dword:00000001
"LagAdvance"=dword:000007D0
"DeltaTime"=dword:00002710
"DeltaSpeed"=dword:00000032
"DeltaDistance"=dword:00000032

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate Driver]
"CurrentLogFile"=""
"IsEnabled"=dword:1
"MaxLogFileSize"=dword:0
"OldLogFile"=""

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate
Driver\Drivers]
"CurrentDriver"="FakeGPSDevice"
"InputBufferSize"=dword:400
"OutputBufferSize"=dword:400
"RetryWaitOnError"=dword:3
"SleepOnNoData"=dword:3f8

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate
Driver\Multiplexer]
"DriverInterface"="COM4:"

[HKEY_LOCAL_MACHINE\System\CurrentControlSet\GPS Intermediate
Driver\Multiplexer\ActiveDevice]
"Index"=dword:4

May be this is of interest.