Intel xHCI USB 3.0 Controller – USB Passthrough with VMware Workstation 9 in Windows 7
WaheGuru G Ka Khalsa, WaheGuru G Ki Fateh
In this Post, we illustrate how to get Intel USB 3.0 Extensible Host Controller Interface (xHCI) Controller USB Passthrough working with VMware Workstation 9, when using Windows 7.
VMware Workstation introduced support for USB 3.0 xHCI controllers with version 8 – but with version 8 – support has been limited to NEC USB 3.0 Controllers, and hence, with version 8, we don’t get native support for Intel USB 3.0 xHCI.
Starting with version 9, Workstation introduced support for all the USB 3.0 Controllers provided that you are running Windows 8, and Windows 8 specifically, because Windows 8 introduces NATIVE USB 3.0 support, and Workstation relies on Windows 8 Native USB Driver stack to get working with all USB 3.0 Controller (as per documentation).
Now what’s more interesting is how Microsoft has implemented USB 3.0 support in Windows 8 – rather than adding the support on top of the current USB 1.1 and USB 2.0 software stack (which, as Flanagan notes, has its roots in Windows 95), Microsoft’s engineers have chosen to write an entirely new software stack for USB 3.0, retaining the older stack for 1.1 and 2.0 devices separately.”
Also note that Windows 7 till now hasn’t provided NATIVE support for USB 3.0 controllers unlike Windows 8, and VMware Workstation 9 Documentation states that Workstation version 9 requires NATIVE USB 3.0 support in Windows OS in order to get Guaranteed USB Passthrough with all USB 3.0 controllers, and since NATIVE support for USB 3.0 is only being offered in Windows 8 – chances are certain, that we may face USB Passthrough ISSUE in Windows 7.
For more Information about Microsoft USB 3.0 implementation in Windows 8, follow below listed URL.
Now in order to get Intel USB 3.0 Passthrough working with VMware Workstation 9 in Windows 7, make sure that you are running
- VMware Workstation Version 9.0.1 with Build Number 894247 OR HIGHER
- Intel USB 3.0 xHCI Drivers – version 184.108.40.206 OR HIGHER
Also make sure that you have installed Intel USB 3.0 Controller and USB 3.0 Root Hub Drivers using “Device Manager” GUI and NOT USING the installable Binary Package version 220.127.116.11 (SETUP.exe).
The Intel® USB 3.0 eXtensible Host Controller Driver Installer “Setup.exe” will install the following drivers and application on the system:
Just extract the drivers from the Installable Binary Package – version 18.104.22.168, and install these extracted Drivers manually using Device Manager GUI, reboot your System, and VOILA, Intel USB 3.0 Passthrough works without any hiccups.
If we had installed Intel USB 3.0 Controller and USB 3.0 Root Hub Drivers using SETUP.exe (Installable Binary Package), then USB Passthrough won’t work. VMware.exe prompts MSG. “Driver Error / Device is being used” (details of which can be found in vmware.LOG).
A noticeable difference in SETUP.exe method and Device Manager method (manual method) driver installation – is that – Intel USB 3.0 Monitor binary – iusb3mon.exe – isn’t installed/incorporated with Device Manager method (manual method).
Intel USB 3.0 Monitor binary – iusb3mon.exe – gets installed with SETUP.exe method, creates a HKLM Startup entry, and it can also be found under Extracted Drivers Directory PATH.
Now even if we remove/disable HKLM Startup of iusb3mon.exe, USB Passthrough doesn’t work at all – with SETUP.exe method.
If you had previously installed Intel USB 3.0 Drivers using SETUP.exe installable image, just uninstall “Intel® USB 3.0 eXtensible Host Controller Driver” using Control Panel Applet – Programs and Features (appwiz.cpl), reboot system, and then reinstall Intel USB 3.0 Controller and USB 3.0 Root Hub Drivers, manually using Device Manager GUI.
We tested this procedure using USB 2.0 Devices on two Mobile (PCH – HM77) and one Desktop (PCH – H77) System , all them equipped with Intel USB 3.0 xHCI Controllers in Windows 7 Sp1 x64 running VMware Workstation 9.0.1 894247.
Update | 07-Apr-2013 When we Install Drivers using SETUP.exe Package - it will install the following: 1) Intel® USB 3.0 eXtensible Host Controller Driver | iusb3xhc.sys 2) Intel® USB 3.0 Root Hub Driver | iusb3hub.sys 3) Intel® USB 3.0 Host Controller Switch Driver | iusb3hcs.sys 4) Intel® USB 3.0 Monitor | iusb3mon.exe All this can be verified by viewing Log File - created by - Intel USB 3.0 Setup.exe Package - "IntelUSB3 - Install.log" Intel® USB 3.0 Host Controller Switch Driver | iusb3hcs.sys --- is installed on a PCI BUS --- This Driver is a LowerFilter WDF Driver - and this Driver starts at BOOT Time [START=0] [Category=Boot Bus Extender].
Main Function of this iusb3hcs.sys - Host Controller Switch Driver - is to detect Super Speed USB Devices[by parsing USB Device Descriptors]and attach that device to Intel USB 3.0 xHCI Controller. When we attach a USB Device - which is Super Speed [USB 3.0] Capable - then this HCS Driver will route/attach the Device to Intel USB 3.0 extensible Host Controller. Below is a USB Device Tree Viewer ScreenShot highlighting a USB 3.0 Device attached to xHCI controller - courtesy of iusb3hcs.sys.
USB 1.1 - Full Speed | USB 2.0 - High Speed | USB 3.0 - Super Speed Now when we Uninstall Intel USB Driver Package, it removes all of the following: 1) Intel® USB 3.0 eXtensible Host Controller Driver | iusb3xhc.sys 2) Intel® USB 3.0 Root Hub Driver | iusb3hub.sys 3) Intel® USB 3.0 Host Controller Switch Driver | iusb3hcs.sys 4) Intel® USB 3.0 Monitor | iusb3mon.exe All of Uninstall activity logged by Intel Installer - and attached below: "IntelUSB3 - Install and then Uninstall.log" And with our MANUAL Device Driver Installation method - we install 1) and 2) and skip 3) and 4) - BUT - as we leave 3) - we are skipping USB 3.0 Host Controller entirely. That is to say - in our Manual Method - even if we installed USB 3.0 Controller and 3.0 HUB drivers - and we attach a USB 3.0 Device - then our Device won't adhere to USB 3.0 Bus speeds but 2.0 - because - we had skipped LowerFilter Driver - iusb3HCS - function of which to Direct/Route USB 3.0 Capable Devices to xHCI controller (and in MANUAL Case - USB 3.0 devices will be Directed/Routed to Intel USB 2.0 Controller). Intel USB 2.0 Host Controller is labelled in Device Manager as: i) Intel 7 Series/C216 Chipset Family USB Enhanced Host Controller (OR) ii) Standard Enhanced PCI to USB Host Controller i) and ii) use the same Device Drivers (Microsoft Generic USB 2.0 - usbehci.sys) and i) STRING/Label will be shown in Device Manager only if we had installed Intel INF Package Update - Setup.exe (Intel INF Update). So, with MANUAL Method, we loose USB 3.0 capability on Systems with all of the USB 3.0 Ports in order to gain USBPassthrough with VMware Workstation 9.x on Win 7. Now we Demonstrate HCS Driver functionality - first we remove Intel HCS Driver from Driver Store or Update (more Convenient) this PCI BUS [ACPI\PNP0A08] - Update it with Microsoft PCI Bus Driver - as shown below:
Below is a USB Device Tree Viewer ScreenShot highlighting a USB 3.0 Device attached to Intel USB 2.0 (EHCI) controller - due to absent iusb3hcs.sys on PCI BUS (i.e. with Microsoft PCI Bus Driver).
Now - if you have a System with all of the USB 3.0 Ports (as mine) - then all of the above Scenario is applicable - BUT - if you have both USB 2.0 and USB 3.0 Ports - then in your Case - This Scenario is only applicable to your 3.0 Ports and thus you can simply use 2.0 Ports to avail USBPassthrough without any Errors.
Now we talk about VMware USB 3.0 Controller Support in Guest/Virtual Machines:
1) VMware Workstation 9 introduced USB 3.0 Host Controller Support. 2) Drivers of USB 3.0 Host Controller are not provided by VMware Tools. 3) VMware USB 3.0 Host Controller will work only if your Virtual Machine OS has Native USB 3.o Support. Examples of such OS are - Windows 9, Windows Server 2010 [Windows OS Version 6.2] and Linux Kernel 2.6.31 and above. 4) So, If you a System with all of the USB 3.0 Ports (as mine) and want USB 3.0 Support inside VMware Guests - So you will need atleast Windows 8 / Linux on HOST System (NATIVE USB 3.0 Support) and a Virtual/Guest Machine OS with Native USB 3.0 Support (such as Windows 8, Windows Server 2012 or Linux 2.6.31 or above.) 5) And If you a System with all of the USB 3.0 Ports (as mine) and want to stick with Windows 7 as HOST OS - then - BLAME/SUE your System Manufacturer / Vendor for providing only USB 3.0 Ports. 6) And And, If we try to get Smart and Disable - Intel's USB 2.0 EHCI Controller - to leave the Lower Filter Driver with only a Single Destination USB Controller i.e. 3.0 xHCI Controller - even then, USB Passthrough won't work - Cause - Issue lies with the Presence of Lower Filter Driver (iusb3HCS.sys) and as long as HCS is there in Equation, epic Fail.
Hope this helps and Cheers | Your feedback is highly appreciated.
WaheGuru G Ka Khalsa, WaheGuru G Ki Fateh
Copyright © 2013
For copyright purposes, VirtualizationMaximus.com is not in the public domain. The fact that this blog owner publishes an RSS feed does not grant any rights for republication or re-use of the material except in the manner described below.
All content in this blog created by the blog owner and his guest authors is the property of the blog owner and his guest authors and protected by international copyright laws and cannot be stored on any retrieval system, reproduced, reposted, displayed, modified or transmitted in any form, electronic or otherwise without written permission of the copyright owner except as noted below.
A brief excerpt of content that does not exceed 128 words or 512 characters may be quoted as long as a link is provided back to the source page on this blog and authorship is properly attributed.
Posted on January 8, 2013, in VMware and tagged 894247, 9, 9.0.1, acpi, build, BUS, controller, driver, driver error, EHCI, error, extensible, filter, get, H77, HCS, HM77, host, intel, iusb3hcs.inf, iusb3hcs.sys, iusb3hub.inf, iusb3hub.sys, iusb3mon.exe, iusb3xhc.inf, iusb3xhc.sys, lower, NATIVE, NEC, not, passthrough, PCI, pci.sys, PNP0A08, support, Switch, usb, usb 3.0, usb3.0, USBView, version, View, vmware, vmware 9, vmware.log, windows, windows 7, Windows 8, Windows Server 2012, working, workstation, xHCI. Bookmark the permalink. 55 Comments.