Question about network adapters and drivers in Win10 Qube


I have been tracking down some performance issues in my Win10 Qube and had some questions about how the emulated network driver stack works. I presume, by default, when Win10 is installed, it is using the emulated Realtek adapter passed up from QEMU. However, when QWT is installed with the XenNet and XenVIF drivers, how should it change that stack? Should Win10 still use the emulated Realtek driver, with the Xen network drivers altering the stack at the low level, or do the Xen drivers replace the Realtek driver with a different one?

Right now, even though both Xen drivers are installed, the system is still using the Realtek driver, and I get a LOT of blocking whenever I do a lot of network I/O, which is killing performance and causing sound breakups. LatencyMon complains that ndis.sys (among other things) is the source of a lot of my high latency issues. I do not believe it is ndis.sys itself, but when it calls down to lower-level drivers, and eventually going through the emulated layers to the real drivers managed in the sys-net and sys-firewall qubes. For some reason, it seems like network calls are blocking the OS at a very low level, rather than just using some kind of non-blocking request-callback scheme, like they normally should. I would expect delays in request handling due to all the extra layers, but in no case should they be blocking like this.

So I guess I have two questions: 1) How do the Xen Windows network PV drivers interact with the existing QEMU Realtek driver when installed, and 2) Is there some way to stop the blocking request behavior (or at least identify the cause?)

Thank you in advance for any info!

1 Like

Is there anyone who knows more about this, or someplace else I can ask? I’d try the Xen IRC again, but it’s pretty hit and miss getting any info there.


I have reinstalled the correct XenPV Net and VIF drivers, and the proper network connection device has re-appeared in my Device Manager list. (the Realtek one is gone). It seems to have done the trick to resolve network-related lag. The reason I had not done this sooner is that I did not have the old version of the Xen PV drivers (the 8.x versions) available at the time. I wanted to make sure I had those first, since I don’t think the 9.x versions would work with the other 8.x ones, and I didn’t want to guinea pig redoing the whole stack in 9.x right now.

Just for reference, the 8.x drivers are installed via QWT in the C:\Program Files\Invisible Things Lab\Qubes Tools\Drivers. You won’t have an install program for some of them, just uninstall them via Apps and Features, then reinstall by right-clicking the INF file in the correct driver directory under the one listed above, and then select Install. The drivers require a restart to function fully.

Now, just have to figure out my mouse lag issue, and I will have clean fps, finally!

1 Like