(Note: the following is a long version of the story. If you want the short version, just the solution, skip to the last paragraph below.)
As I wrote before, I use virtual machines extensively to do work on my computer. I used Windows XP Pro as the host OS for several years now, and it worked quite well. I skipped Vista and kept using XP, mainly because it did not seem like Vista would add any significant benefits to my host computer. However, a few months ago, Windows 7 became available, and while testing my products with it, I was so impressed with its speed, stability, the look and feel, that I decided it was time to upgrade my main host computer to Windows 7.
So, a week or so ago, after backing everything up, I took the plunge and installed a fresh copy of Windows 7 Ultimate. It went well, I was happy. Of course the first application I added to it was Virtual PC, because I needed it to run my virtual machines that do the real work for me. It went well, except for a few surprises, such as the new user interface of the Virtual PC console, that looked like a regular folder rather than a separate program. Also, it upgraded the integration components of my virtual machines and as a result it started using the Remote Desktop to display the virtual machine desktop. It added the ability for the virtual machines to recognize the USB drives attached to the host, but at the same time it downgraded the display capability of the virtual machine to display 16-bit colors only, that caused the fonts on the virtual displays not to be anti-aliased quite as nicely as before.
Those were minor things, though, and after trying my virtual machines for a couple of days, I decided I could live with the new version of Virtual PC. One thing did bother me, though: when I tried to browse the shared network folders from within the virtual machines, the browsing was quite slow. Literally, it took a few seconds just to navigate from a directory to a subdirectory. It was especially bad if the directories contained a lot of files. Copying files over the network was painfully slow, too. However, the network was slow only when using it from within the virtual machines. Outside, the network was as fast as it was before: I could browse the virtual machines from my host computer, and connect to other “real” computers from it, the speed was as usual.
I searched the web and found a few reports from people describing the same problem, but no real solution. The only suggestion was to replace the new version of Virtual PC software with the previous one, Virtual PC 2007. Although Microsoft does not officially support Virtual PC 2007 on Windows 7, a few posts I found suggested that it was quite possible to install and use VPC 2007 on Windows 7.
After contemplating it a bit, I decided that having fast network access from within the virtual machines was worth the trouble and did just that: uninstalled the new Virtual PC, and installed the previous VPC 2007 with SP1. The good news was that even though the virtual machines were previously updated with the new version of the integration components, they kept working well with VPC 2007, as before: the full 32-bit colors of the display were available, the old console window was back, and most importantly, the network access was as fast as before.
I was happy for a couple of days, until I noticed a strange problem happening: after using the virtual machines for some time, while switching back and forth between them and the host computer, at some point the virtual machines would stop accepting the TAB and ESC keys. That was a new problem that I did not experience before. Again, I started searching the web for a solution, and found a couple of suggestions, such as the one about creating a local security policy for the file VPCKeyboard.dll, but none of the suggestions worked: after several minutes, the TAB and ESC keys would stop working in the virtual machines (all of them at once), and the only way to restore them was to shut down all virtual machines, and restart the Virtual PC console application. Then work for a few minutes and do the restart again. Needless to say, that was extremely annoying.
Having spent two days trying every possible thing I could come up with, including searching for the updated drivers, reinstalling the virtual machine additions, trying alternative ALT+TAB managers, turning the Aero theme on and off, and so on, I decided that having the slow network was not as bad as it seemed after all. I removed VPC 2007, and reinstalled the new version of Virtual PC software. The TAB/ESC keys problem went away, the slow network access returned, and I started searching the web for a solution again. Accidentally, I came across of an old Microsoft support article that applied to Virtual PC 2004 and Virtual Server 2005, that mentioned a solution to a problem of a slow network access similar to what I’ve experienced. Out of desperation, I decide to give it a try, and … it worked! I guess, this problem was fixed in VPC 2007, but resurrected in the new version of Virtual PC (the old bugs are had to die, it seems). Anyway, here is what solved the slow network access in Virtual PC for me (from the Microsoft support article , Method 2):
– On the host computer, backup the Registry, just in case, and then:
– Run Registry Editor (regedit.exe) and select the following key:
– Create new DWORD value named DisableTaskOffload and set its value to 1.
– Restart the computer.
After I did the above, the network speed from within the virtual machines became as fast as it was before. Hope this helps someone!
Did you know? Our USB Encryption Software can protect any USB flash drive or any other external drive with a password and strong encryption. Try it free for 30 days! Read more…
You are welcome, Tobias!
This has been bugging me for weeks. The DisableTaskOffload change from MS worked like a charm. Thanks!
Fixed the issue perfectly for my fresh install of Windoz 7
This may be a silly question, but when I did my clean install of Win 7 64 bit, I didn’t see a Virtual PC client so I installed the Virtual PC 2007. Where do you find the version to go with Win 7?
LJ: you can download VPC for Windows 7 from the Microsoft’s web site:
And I didn’t even have to restart, instant relief.
Gold! thanks for your work, I was about to go down the same track
So glad you found a solution to this! I opted to use method 3 and disable the task offloading in the NIC driver itself since all my virtual machines connect through one NIC. Incredibly slow network performance problem solved! Thanks!
Excellent! This worked for me too! I’m running Win 7 64bit on the host, and a few VMs using the new Windows Virtual PC (not VPC2007). One VM is Win 2003 server, and another is Win XP pro SP3. Both had exhibited the same problem with slow network in VM. Although I mostly noticed it when trying to copy files between the HOST and a VM (and vice-versa). Oddly, copying a file from a VM to a different network drive (one sitting on a different physical server), it worked pretty fast. But it was pretty impossible trying to move even a 5MB file between the host and guest VM, using a mapped drive. it works fine using Integrated services mapping, but that doesn’t work for everything I need.
One thing I wasn’t sure about whether I needed to add a 64bit or 32bit DWORD value into the registry, so I just went with 64bit (it gave me an option to create either one). When I rebooted, everything was snappy!!!! :-)
Thanks very much. Found this article with the first Google search.
If only this would be a global concept of mutual help. Life would be much easier. ;) Without internet (people sharing experiences and knowledge) I would never be able to copy files between host and guest VM, using a mapped drive. ;)
Thank you so much!!!
Amazing! I can’t thank you enough.
outstanding solution. my customer is very happy.
Works for me, too. Thanks!!!
GREAT!, I was getting crazy with this problem!!!, it works!!
Me too! In my case, the registry setting also cured slow performance of some applications that are not obviously connecting to the network, such as MS Word.
I’ve been looking for a fix to this for MONTHS. Thank you!!
Worked Perfectly . Thanks for this.
That brought the end of blood, sweat and tears for me.
Great work, great research, complete documentation.
Thank you very much.
Thank you so much! This is a life saver!
This was about to drive me crazy … Just made the change, posting this before reboot, if it works, Thank You! If it doesn’t, thank you anyway for sharing the result of your efforts!
It worked… Holy obscure setting batman!
That is an enormous time saver, thanks a lot!
Thx a looooooooot!!
Word up! Where do the smart people pull this from? It makes life so much richer for the Googlerati :) Killer fix … Worked like a charm.
You saved my bacon!
You saved me hours of troubleshooting this issue as well as hours waiting for the slow copies to complete. Thanks for taking the time to write this up and share.
Awsom, fixed and fast, good work.
Pingback: Langsamer Netzwerkzugriff unter Virtual PC und Windows 7 | BlaBlubBlog
Thanks, works for me!
Thanks a lot. it worked
Brilliant! I gave up copying a few files half way through after about 8 hours and found your blog. They all copied in about 2 minutes afterwards.
When I tried this on my Windows XP Mode VM, I noticed that DisableTaskOffload is already set to 1 and the networking is still considerably slower than it should be.
Thank you! I was having slow copying into my Win98 virtual machine, this fixed it nicely.
Thanks, works like a charm!
unable to copy text from virtual pc xp to windows 7 (host machine) after some time from bootup restarting helps but virtual pc takes ever to boot)
I implemented the registry fix to no avail. I then found that connecting to the network share via IP address, instead of network name, provided 100x better results. Just wanted to share my revelation. Perhaps manually adding the PC to the hosts file would work too, but IP works for now, so I’m sticking with it.
I don’t see a slot for any value to set. I created the name but the only option is “OK” and the top box is greyed out saying “default” Win 7 Pro X64