Signing of Firmware Download Driver for a USB Device

The first time the system detects our USB device, it loads a preliminary driver that downloads the firmware. Once the firmware is loaded, the device is reset, causing the system to enumerate the device a second time. After the second enumeration the system loads the principal device driver for the device.

My question is how to WHQL tests on the preliminary driver, because it is loaded only till the firmware is downloaded to the device.

Appreciate any suggestions. Thanks

xxxxx@yahoo.com wrote:

The first time the system detects our USB device, it loads a preliminary driver that downloads the firmware. Once the firmware is loaded, the device is reset, causing the system to enumerate the device a second time. After the second enumeration the system loads the principal device driver for the device.

My question is how to WHQL tests on the preliminary driver, because it is loaded only till the firmware is downloaded to the device.

WHQL doesn’t test any drivers at all. YOU do all of the testing, using
the DTM tests. You send in the logs, and if the logs are valid, WHQL
signs the driver package. The firmware loader is part of the driver
package.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

>

The first time the system detects our USB device, it loads a
preliminary
driver that downloads the firmware. Once the firmware is loaded, the
device is
reset, causing the system to enumerate the device a second time. After
the
second enumeration the system loads the principal device driver for
the
device.

My question is how to WHQL tests on the preliminary driver, because it
is
loaded only till the firmware is downloaded to the device.

Appreciate any suggestions. Thanks

Make it the same driver? Detect the ID on driver init and execute the
correct code path depending on whether you are initialising the device
or actually using the device. It’ll save you on logo costs too.

James

James Harper wrote:

Make it the same driver? Detect the ID on driver init and execute
the correct code path depending on whether you are initialising
the device or actually using the device. It’ll save you on logo costs too.

Not always possible. Example: firmware downloader is “bulkusb”, function driver is NDIS-USB. I don’t think you can really combine those, since they are in different setup classes (not to mention different driver models).