I wonder if virtual ports can be made to work with XP (or later). It was possible up to WinME
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\SetupX\INF\OEM Name]
"C:\\WINDOWS\\INF\\INFRARED.INF"="INFRARED.INF"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Infrared]
"ClassProcessingOrder"=hex:00,00,00,40
@="Infrared devices"
"Installer"="infrared.dll"
"Icon"="0"
"SilentInstall"="1"
"DevLoader"="*configmg"
"Enumerator"="irenum.vxd"
"PortDriver"="ircomm.vxd"
"PortSubClass"=hex:00
"Link"="{6bdd1fc5-810f-11d0-bec7-08002be2092f}"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Infrared\0000]
"DevLoader"="*configmg"
"Enumerator"="irenum.vxd"
"InfPath"="INFRARED.INF"
"InfSection"="Generic_Install"
"ProviderName"="Microsoft"
"DriverDate"="06/08/2000"
"DriverDesc"="Infrared Communication Device"
"MatchingDeviceId"="IRDEVICE"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\Infrared\0001]
"AttachedTo"="c"
"DevLoader"="*vcomm"
"Enumerator"="irenum.vxd"
"PortDriver"="ircomm.vxd"
"PortSubClass"=hex:01
"InfPath"="INFRARED.INF"
"InfSection"="ComPort_Install"
"ProviderName"="Microsoft"
"DriverDate"="06/08/2000"
"DriverDesc"="Infrared Serial (COM) Port"
"MatchingDeviceId"="Infrared\\COM"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SessionManager\Known16DLLs]
"infrared.dll"="infrared.dll"
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ASD\Prob\{CF2524C0-29AE-11CF-97EA-00AA0034319D}]
"ROOT\\INFRARED\\0000"=hex:00
"INFRARED\\COM\\ROOT&INFRARED&0000"=hex:00
"INFRARED\\LPT\\ROOT&INFRARED&0000"=hex:00
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ASD\Prob\{9B4E7760-3196-11CF-97EA-00AA0034319D}]
"ROOT\\INFRARED\\0000"=hex:00
"INFRARED\\COM\\ROOT&INFRARED&0000"=hex:00
"INFRARED\\LPT\\ROOT&INFRARED&0000"=hex:00
[HKEY_LOCAL_MACHINE\Enum\Root\Infrared]
[HKEY_LOCAL_MACHINE\Enum\Root\Infrared\0000]
"Class"="Infrared"
"ClassGUID"="{6bdd1fc5-810f-11d0-bec7-08002be2092f}"
"Driver"="Infrared\\0000"
"HardwareID"="IRDEVICE"
"Mfg"="Microsoft"
"DeviceDesc"="Infrared Communication Device"
"ConfigFlags"=hex:00,00,00,00
"Capabilities"=hex:14,00,00,00
[HKEY_LOCAL_MACHINE\Enum\INFRARED]
[HKEY_LOCAL_MACHINE\Enum\INFRARED\KnownDevices]
"IRMINI"="IRMINI"
"SIRESI9680"="SIRESI9680"
"SIRAct200"="SIRAct200"
"SIRAct220"="SIRAct220"
"SIRAct220Plus"="SIRAct220Plus"
"SIRAmp"="SIRAmp"
"SIRAdaptec"="SIRAdaptec"
"SIRParallax"="SIRParallax"
"SIRTekram"="SIRTekram"
"SIRPuma"="SIRPuma"
"SIRTemic"="SIRTemic"
"SIRGirbil"="SIRGirbil"
[HKEY_LOCAL_MACHINE\Enum\INFRARED\COM]
[HKEY_LOCAL_MACHINE\Enum\INFRARED\COM\ROOT&INFRARED&0000]
"Capabilities"=hex:14,00,00,00
"Class"="Ports"
"HardwareID"="Infrared\\COM,INFRARED\\COM"
"FriendlyName"="Virtual Infrared COM Port"
"ClassGUID"="{4d36e978-e325-11ce-bfc1-08002be10318}"
"Driver"="Infrared\\0001"
"PortName"="COM4"
"Mfg"="Microsoft"
"DeviceDesc"="Infrared Serial (COM) Port"
"ConfigFlags"=hex:00,00,00,00
[HKEY_LOCAL_MACHINE\Enum\INFRARED\LPT]
[HKEY_LOCAL_MACHINE\Enum\INFRARED\LPT\ROOT&INFRARED&0000]
"Capabilities"=hex:14,00,00,00
"Class"="Ports"
"HardwareID"="Infrared\\LPT,INFRARED\\LPT"
"FriendlyName"="Virtual Infrared LPT Port"
"ClassGUID"="{4d36e978-e325-11ce-bfc1-08002be10318}"
"Driver"="Infrared\\0002"
"PortName"="LPT3"
"Mfg"="Microsoft"
"DeviceDesc"="Infrared Printing (LPT) Port"
"ConfigFlags"=hex:00,00,00,00
FTDI's USB2 to Serial adaptors have an elegant solution for XP,Vista,& 7.
; FTDIPORT.INF
;
; Copyright © 2000-2011 Future Technology Devices International Limited
;
; USB serial port driver installation file for Windows 2000, XP, Server 2003, Vista, Server 2008,
; Windows 7 and Server 2008 R2 (x86 and x64).
;
;
; THIS SOFTWARE IS PROVIDED BY FUTURE TECHNOLOGY DEVICES INTERNATIONAL LIMITED ``AS IS'' AND ANY EXPRESS
; OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
; FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL FUTURE TECHNOLOGY DEVICES INTERNATIONAL LIMITED
; BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
; BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
; THE POSSIBILITY OF SUCH DAMAGE.
; FTDI DRIVERS MAY BE USED ONLY IN CONJUNCTION WITH PRODUCTS BASED ON FTDI PARTS.
; FTDI DRIVERS MAY BE DISTRIBUTED IN ANY FORM AS LONG AS LICENSE INFORMATION IS NOT MODIFIED.
; IF A CUSTOM VENDOR ID AND/OR PRODUCT ID OR DESCRIPTION STRING ARE USED, IT IS THE RESPONSIBILITY OF
; THE PRODUCT MANUFACTURER TO MAINTAIN ANY CHANGES AND SUBSEQUENT WHQL RE-CERTIFICATION AS A RESULT OF
; MAKING THESE CHANGES.
;
[Version]
Signature="$Windows NT$"
DriverPackageType=PlugAndPlay
DriverPackageDisplayName=%DESC%
Class=Ports
ClassGUID={4d36e978-e325-11ce-bfc1-08002be10318}
Provider=%FTDI%
CatalogFile=ftdiport.cat
DriverVer=02/28/2011,2.08.12
[SourceDisksNames]
1=%DriversDisk%,,,
[SourceDisksFiles]
ftser2k.sys=1,i386
ftserui2.dll=1,i386
ftcserco.dll = 1,i386
[SourceDisksFiles.amd64]
ftser2k.sys=1,amd64
ftserui2.dll=1,amd64
ftcserco.dll = 1,amd64
[DestinationDirs]
FtdiPort.NT.Copy=10,system32\drivers
FtdiPort.NT.CopyUI=10,system32
FtdiPort.NT.CopyCoInst=10,system32
[ControlFlags]
ExcludeFromSelect=*
[Manufacturer]
%FTDI%=FtdiHw,NTamd64
[FtdiHw]
%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6001
%VID_0403&PID_6010.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6010
%VID_0403&PID_6011.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6011
%VID_0403&PID_6014.DeviceDesc%=FtdiPort.NT,FTDIBUS\COMPORT&VID_0403&PID_6014
[FtdiHw.NTamd64]
%VID_0403&PID_6001.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6001
%VID_0403&PID_6010.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6010
%VID_0403&PID_6011.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6011
%VID_0403&PID_6014.DeviceDesc%=FtdiPort.NTamd64,FTDIBUS\COMPORT&VID_0403&PID_6014
[FtdiPort.NT.AddService]
DisplayName = %SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %10%\system32\drivers\ftser2k.sys
LoadOrderGroup = Base
; -------------- Serenum Driver install section
[SerEnum_AddService]
DisplayName = %SerEnum.SvcDesc%
ServiceType = 1 ; SERVICE_KERNEL_DRIVER
StartType = 3 ; SERVICE_DEMAND_START
ErrorControl = 1 ; SERVICE_ERROR_NORMAL
ServiceBinary = %12%\serenum.sys
LoadOrderGroup = PNP Filter
[FtdiPort.NT.AddReg]
HKR,,EnumPropPages32,,"ftserui2.dll,SerialPortPropPageProvider"
[FtdiPort.NT.Copy]
ftser2k.sys
[FtdiPort.NT.CopyUI]
ftserui2.dll
[FtdiPort.NT.CopyCoInst]
ftcserco.dll
[FtdiPort.NT]
CopyFiles=FtdiPort.NT.Copy,FtdiPort.NT.CopyUI
AddReg=FtdiPort.NT.AddReg
[FtdiPort.NTamd64]
CopyFiles=FtdiPort.NT.Copy,FtdiPort.NT.CopyUI
AddReg=FtdiPort.NT.AddReg
[FtdiPort.NT.HW]
AddReg=FtdiPort.NT.HW.AddReg
[FtdiPort.NTamd64.HW]
AddReg=FtdiPort.NT.HW.AddReg
[FtdiPort.NT.Services]
AddService = FTSER2K, 0x00000002, FtdiPort.NT.AddService
AddService = Serenum,,SerEnum_AddService
DelService = FTSERIAL
[FtdiPort.NTamd64.Services]
AddService = FTSER2K, 0x00000002, FtdiPort.NT.AddService
AddService = Serenum,,SerEnum_AddService
DelService = FTSERIAL
[FtdiPort.NT.HW.AddReg]
HKR,,"UpperFilters",0x00010000,"serenum"
HKR,,"ConfigData",1,11,00,3F,3F,10,27,00,00,88,13,00,00,C4,09,00,00,E2,04,00,00,71,02,00,00,38,41,00,00,9C,80,00,00,4E,C0,00,00,34,00,00,00,1A,00,00,00,0D,00,00,00,06,40,00,00,03,80,00,00,00,00,00,00,D0,80,00,00
HKR,,"MinReadTimeout",0x00010001,0
HKR,,"MinWriteTimeout",0x00010001,0
HKR,,"LatencyTimer",0x00010001,16
[FtdiPort.NT.CoInstallers]
AddReg=FtdiPort.NT.CoInstallers.AddReg
CopyFiles=FtdiPort.NT.CopyCoInst
[FtdiPort.NTamd64.CoInstallers]
AddReg=FtdiPort.NT.CoInstallers.AddReg
CopyFiles=FtdiPort.NT.CopyCoInst
[FtdiPort.NT.CoInstallers.AddReg]
HKR,,CoInstallers32,0x00010000,"ftcserco.Dll,FTCSERCoInstaller"
;---------------------------------------------------------------;
[Strings]
FTDI="FTDI"
DESC="CDM Driver Package - VCP Driver"
DriversDisk="FTDI USB Drivers Disk"
PortsClassName = "Ports (COM & LPT)"
VID_0403&PID_6001.DeviceDesc="USB Serial Port"
VID_0403&PID_6010.DeviceDesc="USB Serial Port"
VID_0403&PID_6011.DeviceDesc="USB Serial Port"
VID_0403&PID_6014.DeviceDesc="USB Serial Port"
SvcDesc="USB Serial Port Driver"
SerEnum.SvcDesc="Serenum Filter Driver"