none
Windows 7 Virtual PC (XP) and parallel port dongle

    Question


  • I have an older technical application that uses a parallel port hardware dongle. The software vendor has been updating its software and is moving to Win7 friendly application, however I still need to use my older version of the application which only runs under XP or earlier (including DOS). 

    I have installed 64 bit Windows 7 and Virtual PC XP on my Core i7 machine, the newer version of the application runs well under Win7, but I cannot start the older version. I need to be able to open up the older version for some time in order export data between versions. Under the virtual PC device manager, the normally hidden non-plug and play device driver for the dongle seems to be loaded and started.

    I tried without any joy to get the PCI based parallel port  to read the hardware dongle. Device manager under Win7 and XP (Virtual PC) both have the parallel port listed as LPT1 working correctly, the Win7 has the correct driver installed, the Virtual PC only has a Microsoft driver (cannot install the real driver).

    The application cannot see the hardware dongle. The dongle will not work with a USB to parallel converter.

    Am I doing anything wrong, any tips on how to get access to the parallel port under Win7 and  XP (Virtual PC) on the same machine.
    Sunday, July 26, 2009 5:27 PM

All replies

  • Can you use PowerShell to list the ParallelPort properties of the Virtual Machine?

    $vpc = New-Object -ComObject "virtualpc.application"
    $vm = $vpc.FindVirtualMachine("Name of your virtual machine")
    $vm.ParallelPorts

    This would help us know if the parallel port of the virtual machine is attached to the host parallel port.
    Tuesday, July 28, 2009 1:10 AM
  • Hi,

    Thanks for your reply.

    I ran the following, no result

    Windows PowerShell
    Copyright (C) 2009 Microsoft Corporation. All rights reserved.

    PS C:\Users\mirrabookaq> $vpc = New-Object -ComObject "virtualpc.application"
    PS C:\Users\mirrabookaq> $vm = $vpc.FindVirtualMachine("Virtual Windows XP")
    PS C:\Users\mirrabookaq> $vm.ParallelPorts

    Name
    ----

     

    PS C:\Users\mirrabookaq>

    also ran

    PS C:\Users\mirrabookaq> Get-WmiObject -Class Win32_ParallelPort

    with no result.

    I am able to print from Virtual Windows XP to a printer attached to the parallel port.

    Wednesday, July 29, 2009 9:53 AM
  • Are you saying that the Windows 7 host itself is not recognizing the parallel port device? In that case can you give us device details(like manufacturer).


    If windows 7 host is detecting the device,

    Can you try to do the following:

    1) Disable Integration Features.
    2) Using powershell, set the name of the parallel port in the virtual machine.

    $vpc = New-Object -ComObject "virtualpc.application"
    $vm = $vpc.FindVirtualMachine("Name of your virtual machine")
    $par1 = $vm.ParallelPorts.Item(1)
    $par1.Name = "LPT1 (378h-37Fh)"

    After doing this, can you see if your parallel port is accessible from guest?

    Saturday, August 01, 2009 4:39 AM
  • Hi ,

    Can you you please answer the question above? We need to hear from you within 3 days or we will need to close this thread.

    Thanks for your cooperation.

    Nitin
    Check out the Engineering blog of Windows Virtual PC and Winodws XP Mode here: http://blogs.technet.com/windows_vpc/
    Tuesday, August 11, 2009 5:43 AM
  • <!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:10.0pt; margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-fareast-language:EN-US;} .MsoPapDefault {mso-style-type:export-only; margin-bottom:10.0pt; line-height:115%;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 72.0pt 72.0pt 72.0pt; mso-header-margin:35.4pt; mso-footer-margin:35.4pt; mso-paper-source:0;} div.Section1 {page:Section1;} -->

    Hi,

    I am travelling at the moment, I am not due back until after the 18th. I will give you an answer as soon as I am in front of the computer again.

    Regards

    Tuesday, August 11, 2009 9:09 AM
  • Ran it as requested, will be away for another 7 days


    PS C:\Users\mirrabookaq> $vpc = New-Object -ComObject "virtualpc.application"
    PS C:\Users\mirrabookaq> $vm = $vpc.FindVirtualMachine("Virtual Windows XP")
    PS C:\Users\mirrabookaq> $par1 = $vm.ParallelPorts.Item(1)
    PS C:\Users\mirrabookaq> $par1.Name = "LPT1 (378h-37Fh)"
    Exception setting "Name": "Windows Virtual PC could not complete the operation due to an unexpected error (0x80004005)
    "
    At line:1 char:7
    + $par1. <<<< Name = "LPT1 (378h-37Fh)"
        + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : PropertyAssignmentException

    PS C:\Users\mirrabookaq>

    Thursday, August 20, 2009 2:29 AM
  • What happened to this question? I'm having a similar problem, not sure if a parallell dongle might work or not, is it worth trying to install a pci card with a parallel port or is it not supported? The usb dongle worked fine though.
    Friday, November 20, 2009 12:59 PM
  • Nothing, so went back to using XP giving up on Windows 7.

    Another solution maybe to try VMWare, seems to be popular and free.
    Friday, November 20, 2009 8:20 PM
  • I have just a similar response on my platform. It is clearly a serious shortcoming with Win7:s XP mode. It seem that coding two way parallel port interface, required by the dongles, is a difficult task. W7 XP mode doesn't have it (working), Sun's VirtualBox doesn't have it, either. It seem that demand for dongle support is overseen by the virtualization vendors- they seem to think that dongle-protected software slowly fade away. Only VMware seem to have working two-way dongle support currently. Too bad, that VMware is not free for commercial use, but luckily not prohibitively expensive either.

    I purchased VMware for my laptop with Vista 64 and run the affected software in that environment. Not a perfect, but a working solution.

    Finally, I just cannot figure out why dongle support is not regarded seriously by the virtualization software manufacturers. One of the main causes of using virtualization is the possibility to continue using software for obsolete platforms. Dongle support should be considered as one of the main features to be implemented.
    Sunday, November 22, 2009 9:05 AM
  • I am trying to run a legacy Windows 98 SE application that requires an LPT dongle.  So far, I have had no success using Windows Virtual PC 2007 on Windows XP.

    The original computer's parallel port is configured for 3BC in the BIOS.  The software also appears to install some program/driver during installation to interface with the dongle.  I downloaded PortMon, which I ran on the original computer to see what was going on.  PortMon shows activity on COM4 while the program starts up.  However, the serial port is disabled in the BIOS (which is curious because the software also must connect using the serial port?!).

    The previous post says that VMware solved the problem.  However, VMware sells several virtualization products.  From his discription, it sounds as though he is referring to VMware Workstation.  Yes?

    Any thoughts on this would be appeciated.  I will have to return to the client to test, as I can not take the dongle, nor do I have a parallel port on my computer.
    Friday, December 18, 2009 12:14 PM
  • I'm experiencing the same problem.  Trying to run an application I wrote in c# that works fine on XP but can't get it to run on Windows 7.  I'll give it a few more hours and trash the Windows 7 and go back to XP...  The ap runs the heating system in my house so I need to get it up and running soon..
    Saturday, December 19, 2009 2:25 PM
  • I also have the same problem. I'm trying to migrate off of my older XP platform. Just spent lots of $ on new Asus P7P55D-E mobo, i7 870, 8GDDR3, Radeon Video, Intel SSD, Roswell PCI to LPT card, and Win7 Pro 64b. Now I find out my three legacy applications won't work because I can't install LPT1 or LPT2 in virtual XP mode. These applications need hardware dongle security keys to run. Has anyone found a solution short of walking away from Win7?
    Monday, March 22, 2010 4:57 AM
  • I also have the same problem. I'm trying to migrate off of my older XP platform. Just spent lots of $ on new Asus P7P55D-E mobo, i7 870, 8GDDR3, Radeon Video, Intel SSD, Roswell PCI to LPT card, and Win7 Pro 64b. Now I find out my three legacy applications won't work because I can't install LPT1 or LPT2 in virtual XP mode. These applications need hardware dongle security keys to run. Has anyone found a solution short of walking away from Win7?
    Monday, March 22, 2010 4:57 AM
  • We have just finished assessing Win7 for corporate wide update (1284 PC's) but have decided to stick with XP due to this issue. Hopefully Win7 successor will not overlook the need for parallel dongle support on legacy systems (XP in our case).

    Thursday, March 24, 2011 10:54 AM
  • use the Windows Virtual PC COM API:

    http://msdn.microsoft.com/en-us/library/dd796756(VS.85).aspx

    IVMParallelPort
    Defines a parallel port inside a VM.

    IVMParallelPortCollection
    Defines the collection of parallel ports within the VM.

    Sample of a .vmc file:

    <parallel_port>
    <port_shared type="boolean">false</port_shared>
    <port_type type="integer">0</port_type>
    </parallel_port>
    <parallel_port id="0">
    <port_name type="string">LPT1 (378h-37Fh)</port_name>
    <port_type type="integer">1</port_type>
    </parallel_port>

    Credits go to Andrei Talmaciu (<abbr class="affil">Microsoft</abbr><abbr class="affil">)</abbr>


    "A programmer is just a tool which converts caffeine into code"

    Want to install RSAT on Windows 7 Sp1? Check my HowTo: http://www.msfn.org/board/index.php?showtopic=150221
    Thursday, March 24, 2011 1:22 PM
  • I'm having the same problem. Our entire h/w dev team's ERPROM programmers are a parallel port devices and until Microsoft have a solution for this our Win7 rollout is effectively dead in the water. Come on Microsoft sort it out. VMWare has managed it, why can't you?

    Cheers,

    James.

    Tuesday, April 05, 2011 11:06 AM
  • Hi,

    This is exactly the same issue I'm having but I can actually see the parallel port been displayed on the PowerShell:

    $vpc = New-Object -ComObject "virtualpc.application"
    $vm = $vpc.FindVirtualMachine("7872 XXXXX LA")
    $vm.ParallelPorts

    Name:

    LPT1 (378h-37Fh)

    But for some reason it seems that the software is not detecting the dongle, when I was using Virtual PC 2007 I always had to disable "Enable Virtualization" to make it work.  Any ideas?

     

    Tuesday, June 14, 2011 12:04 AM
  • This sounds promising.  Exactly how do we "use the Windows Virtual PC COM API" on behalf of our legacy software?
    Wednesday, August 31, 2011 10:42 PM
  • Not sure if this ever got resolved, but I have the exact same issue.

    I currently have a Dos based program that requires a parallel port dongle and have migrated to a laptop running Windows 7 x64 bit.  The laptop does not have a parallel port, but the docking station does.  Company policy has pushed us away from 32 bit systems, and this software is absolutely critical and does not exist for anything other than DOS, so lets just skip over that.  I had this software previously working on DosBox with my last XP laptop and utilized the "porttalk" drivers which do not work on Windows 7, so it seems that is not an option for me.  I have also tried VBox with no luck.  I am hoping to have success with Windows XP mode.

    I have succesfully used powershell to map the LPT1 port to the 378h-37Fh addresses, and when I do the following command I get the following results:

    $vm.ParallelPorts

    Name:

    LPT1 (378h-37Fh)

    Which is correct. Also, the .vmc file shows:

                <parallel_port id="0">
                    <port_name type="string">LPT1 (378h-37Fh)</port_name>
                    <port_type type="integer">1</port_type>
                </parallel_port>

    Which looks right as well.  But the software still does not see the dongle (THe LPT1 port is there with a 378 address within the guest).  Looking at the host device manager resources tab I see the following:

    I/O Range 0378-037F

    AND

    I/O Range 0778-077A

    So I'm thinking I should try the 778h-77Ah range, but now I cannot use powershell to change the settings.  I have also tried to change them from within the .vmc file and it does not work, then when I check with powershell it still reports the 378 range.  Do I nee to wipe out the current assignment from Powershell and then reassign with a different address?  How do I do that?  See below:

    ---------------------------------------------------------------------------------------------------------

    PS H:\> $par1 = $vm.ParallelPorts.Item(1)
    PS H:\> $par1.Name = "LPT1 (778h-77Ah)"
    Exception setting "Name": "Windows Virtual PC could not complete the operation d
    "
    At line:1 char:7
    + $par1. <<<< Name = "LPT1 (778h-77Ah)"
        + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
        + FullyQualifiedErrorId : PropertyAssignmentException


    Friday, March 15, 2013 3:29 PM
  • And not that it changes much, I have confirmed by booting with a USB stick into DOS that the software will acknowledge the dongle on the docking station without issues.  What complicates that is HIMEM.SYS will not goto high-memory and causes all kinds of performance issues.
    Friday, March 15, 2013 7:06 PM
  • Useless, what is this? You maybe a programmer but I am not. You showing code without a word how to use it or how to apply it.

    Perhaps is obvious to you but not to rest of us. I cant belive that Microsoft did not came up with that code. There must be tons of frustrated users like me who need to user LPT port with dongle and it can not.

    You did not say if you use this code in XP or Windows 7 screen.

    Thursday, March 21, 2013 9:42 PM