Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


UFX client function driver in a dekstop?

Fernando_RobertoFernando_Roberto Member - All Emails Posts: 210

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,


Fernando Roberto da Silva
DriverEntry Kernel Development
http://www.driverentry.com.br

Comments

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 9,107

    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

    Peter Viscarola
    OSR
    @OSRDrivers

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 14,658
    edited October 2022

    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.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • Fernando_RobertoFernando_Roberto Member - All Emails Posts: 210

    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,


    Fernando Roberto da Silva
    DriverEntry Kernel Development
    http://www.driverentry.com.br

  • Fernando_RobertoFernando_Roberto Member - All Emails Posts: 210

    @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."


    Fernando Roberto da Silva
    DriverEntry Kernel Development
    http://www.driverentry.com.br

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 14,658

    ... 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?

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • Fernando_RobertoFernando_Roberto Member - All Emails Posts: 210
    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,


    Fernando Roberto da Silva
    DriverEntry Kernel Development
    http://www.driverentry.com.br

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 14,658

    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.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • Fernando_RobertoFernando_Roberto Member - All Emails Posts: 210
    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.


    Fernando Roberto da Silva
    DriverEntry Kernel Development
    http://www.driverentry.com.br

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 16-20 October 2023 Live, Online
Developing Minifilters 13-17 November 2023 Live, Online
Internals & Software Drivers 4-8 Dec 2023 Live, Online
Writing WDF Drivers 10-14 July 2023 Live, Online