UFX client function driver in a dekstop?

Hi everyone.
I have been reading about UFX class extension for WDF.

https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/function-client-driver

The only sample I saw “ufxclientsample” mention about installing it on Windows 10 Mobile.
Also, opening the sample, I saw it refers to header files I don’t have on my WDK (10.0.22.621.382).

Can this kind of driver be built using regular WDK or do I need to get the environment for a BSP for WIndows Mobile?
Can it be installed on a regular Windows for desktop instead of Windows Mobile?

Regards,

I don’t see any reason why this wouldn’t work on desktop. Do you REALLY need to create your own USB Function Driver? You’re bringing up an entirely new platform, with an entirely new USB controller? Really?

It’s all pretty well described on the architecture summary page of the WDK, I thought.

Have you just TRIED it? Are we missing something?

Peter

Right. Do you understand what a “function controller” is? Microsoft’s documentation doesn’t provide a clear definition of this term that they invented. A function controller allows your Windows system to act like a USB device, to be plugged into someone else’s USB host. However, that depends on having “USB device” hardware, and desktop systems do not have “USB device” hardware.

Great to hear from you guys.

That’s exactly what I understood. We must interact to a closed system, in which no software should be installed. We must send keyboard and mouse inputs to that system, so that we can make things to happen automatically. So, our plan is to have our system pretending to be such devices (mouse and keyboard), so that we can interact with it the way we must, but without installing any software.

So, it seems I’m on the rigth track. (I hope so)

From the picture at this page:

https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-device-side-drivers-in-windows

What I need is to have my driver using the UFX class extension to make it to behave like a device, handling URBs the way a device would do. However, if the USB controller is not one of the supported by Windows (UfxSynopsys or UfxChipidea), then I also need to write a USB function controller client driver. That would make our mission much harder to achieve.

Am I getting this right?

Thanks for your help.

Regards,

@Tim_Roberts said:
However, that depends on having “USB device” hardware, and desktop systems do not have “USB device” hardware.

I’m expecting to make use of USB Dual Role Driver Stack.

https://learn.microsoft.com/en-us/windows-hardware/drivers/usbcon/usb-dual-role-driver-stack-architecture

I thought this was possible on a dektop system.

“USB Dual Role controllers are now supported in Windows, starting with Windows 10 for desktop editions (Home, Pro, Enterprise, and Education) and Windows 10 Mobile.”

… without installing any software …

Isn’t a third-party driver just software to be installed?

I thought this was possible on a dektop system.

In the same way a network driver can only be used with a network card, a USB Dual Role Driver Stack can only be used with a USB Dual Role host controller, also called “USB-On-The-Go”. Desktop host controllers almost never support USB On-The-Go. Are you designing your own motherboard?

We found a few desktop models which have their motherboards with USB controllers with OTG. Also, we found some PCI adapters with that feature. This is not a general use product, but a specific need to be implemented. Thanks,

Great, then the manufacturer will be supplying the function controller driver. You just have to supply the “function class driver”, for which you will use UFX. Forgive the heresy, but if I were doing what you’re describing, I’d use Linux. The function driver world there is more mature and has wider adoption.

Hi, @Tim_Roberts . Maybe Linux is the path to go, but I know nothing about Linux. However, that is a valuable advise to give to team heads. Thanks for your help. Regards, Fernando.