WDf and USB3.0 Developing Functional Driver

Hi Guys,

I have tried looking this up, both here and around the net, but I can’t seem to figure out a correct answer.

Suppose I have a simple propriatry USB 3.0 device, which doesn’t have MS class driver.

Lets also assume that it’s a standart device with one configuration and several interfaces with an alterative to several of them.

Now I would like to develop a WDF driver for this device, based on FX2 skeleton.
This driver works perfectly when the device is plugged in to USB 2.0 bus.
What will actually happen when I plug in the device to USB 3.0 bus of Windows 8, which has a built in native USB 3.0 host controller ?

I mean, do WDF USB related routines, specially the configuration relates ones, e.g. WdfUsbTargetDeviceRetrieveConfigDescriptor, WdfUsbTargetDeviceSelectConfig, still work ?
What about “WdfUsbTargetPipeFormatRequestForRead” ?

Also, will WDF built in USB BULK reader work ?

Is this issue even documented anywhere ?

Thanks in advace,
Sagi

The win8 usb3 stack is compatible with the usb 2 APIs, so your driver should work. If you are doing custom usb3 stuff specific to a diff vendor’s usb3 stack, there is no guarantee that part will work

d

debt from my phone


From: xxxxx@walla.co.il
Sent: 2/2/2012 2:50 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] WDf and USB3.0 Developing Functional Driver

Hi Guys,

I have tried looking this up, both here and around the net, but I can’t seem to figure out a correct answer.

Suppose I have a simple propriatry USB 3.0 device, which doesn’t have MS class driver.

Lets also assume that it’s a standart device with one configuration and several interfaces with an alterative to several of them.

Now I would like to develop a WDF driver for this device, based on FX2 skeleton.
This driver works perfectly when the device is plugged in to USB 2.0 bus.
What will actually happen when I plug in the device to USB 3.0 bus of Windows 8, which has a built in native USB 3.0 host controller ?

I mean, do WDF USB related routines, specially the configuration relates ones, e.g. WdfUsbTargetDeviceRetrieveConfigDescriptor, WdfUsbTargetDeviceSelectConfig, still work ?
What about “WdfUsbTargetPipeFormatRequestForRead” ?

Also, will WDF built in USB BULK reader work ?

Is this issue even documented anywhere ?

Thanks in advace,
Sagi


NTDEV is sponsored by OSR

For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars

To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer

xxxxx@walla.co.il wrote:

I have tried looking this up, both here and around the net, but I can’t seem to figure out a correct answer.

Suppose I have a simple propriatry USB 3.0 device, which doesn’t have MS class driver.

Lets also assume that it’s a standart device with one configuration and several interfaces with an alterative to several of them.

Now I would like to develop a WDF driver for this device, based on FX2 skeleton.
This driver works perfectly when the device is plugged in to USB 2.0 bus.
What will actually happen when I plug in the device to USB 3.0 bus of Windows 8, which has a built in native USB 3.0 host controller ?

There should be no change.

However, your terminology is a bit off. USB 3.0 is hardware. The term
“host controller” refers to the bus hardware. Windows 8 does not
magically bring USB 3.0 to a computer with a USB 2.0 bus.

You can certainly have a USB 3.0 host controller on a machine today.
It’s just that the driver stack you’re running was written by the
controller manufacturer. What Windows 8 brings is an in-the-box host
controller driver for USB 3.0 host controllers.

I mean, do WDF USB related routines, specially the configuration relates ones, e.g. WdfUsbTargetDeviceRetrieveConfigDescriptor, WdfUsbTargetDeviceSelectConfig, still work ?
What about “WdfUsbTargetPipeFormatRequestForRead” ?

For my own curiousity, what leads you to think they would change? The
USB concepts have not changed. USB 1.0 drivers all continued to work
just fine when USB 2.0 was introduced. USB 3.0 hardware continues to
support low-speed, full-speed, and high-speed devices.

Now, having said that, I do have to admit that at least one of the USB
2.0 web cameras I helped design does not operate correctly when plugged
into a USB 3.0 host controller port. The client has not wanted to pay
to chase that down, preferring to wait until there is Microsoft support.

Is this issue even documented anywhere ?

It’s not an issue. The USB specification describes how older devices
interact with the new bus. In practical terms, Microsoft cannot
possibly afford to invalidate all of the millions and millions of USB
devices that exist in the wild.


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