Hello,
I am trying to create a system image for Windows 7 32-bit that has support for both USB 3.0 eXtensible Host Controllers (the first being the 8/9 Series, and the second being the 7 Series). After creating an image that has both drivers integrated, I get a BSOD when Windows tries to install the USB 3.0 Root Hub.
Taking a look into this issue, I found that Windows is picking the wrong driver package. In other words, on a PC with the 7 Series controller, Windows is installing the 8 Series driver.
Taking a look into that, I found that the INF files for the USB 3.0 Root Hub are not specifying which hardware the driver is for. Taking a look at line 50 of iusb3hub.inf (it's the same in both driver packages), I see the following line:
%IUsb3HubDeviceDescRoot% = IUsb3HubModel, IUSB3\ROOT_HUB30
To me, this says that as long as the hardware ID starts with "IUSB3\ROOT_HUB30", this driver package is applicable to your device. This allows Windows to attempt installation of the wrong driver, thus causing the BSOD. I modified the INF files to contain full hardware IDs (see below), and the issue of installation of the wrong driver was fixed. Unfortunately, Windows now says the driver is unsigned (which is understandable).
8/9 Series Hardware ID - IUSB3\ROOT_HUB30&VID_8086&PID_8C31
7 Series Hardware ID - IUSB3\ROOT_HUB30&VID_8086&PID_1E31
Can Intel update their driver packages with full hardware IDs? I fear I will have the same issue when I try to integrate these drivers into my Windows PE images.
Thanks,
Mike