usbfnClx.sys driver details needed

Hello Experts
I am developing USB Device side drivers based on the folowing link An Overview on USB Support and Dual Role for Windows 10 IoT Core - Windows IoT | Microsoft Learn, From the link I understand ufx01000.sys is the USB function class extension. And what is the other driver(usbfnClx.sys) all about which is available in the same package Microsoft-IoTUAP-USBFN-Class-Extension-Package.cab as ufx01000.sys.

How it wil be useful in the usb stack and what are the APIs which are associated with usbfnClx.sys if any.

I am not finding any information regarding this driver. Any information from any of you is greatly appreciated.

Thank you & Regards
Lokesh

You may find it annoying, but you don’t need to worry about that. As the diagram implies, ufx01000.sys and usbfnclx.sys are a matched set; two drivers that combine to offer a single service. Nowhere have they documented the division of labor between the two. MAYBE ufx01000.sys provides a WDM interface and usbfnclx.sys adds the KMDF support to that. I just made that up, but that’s probably the kind of thing going on here.

All you need to know is that both drivers need to be there.

1 Like

Hello Tim,
Thank you very much for the response. I understand that, in our case ufx01000.sys running as FDO when I run ufxsynopsys.sys. So it is expected to do all the relevent tasks expected by ufxsynopsys as well as Class driver (in our case genericusbfn.sys). Am I right?

Look, all I’m working from is the documentation, and the documentation is extremely unclear.

I believe you will have genericusbfn.sys as the class driver, talking to ufx01000 and usbfnclx as class driver extensions, talking to ufxsynopsys.sys as the controller driver.

1 Like

Hi Tim, Thank you for the response. > @Tim_Roberts said: > I believe you will have genericusbfn.sys as the class driver, talking to ufx01000 and usbfnclx as class driver extensions, talking to ufxsynopsys.sys as the controller driver.< < Yes Tim, by your statement I understand both ufx01000 and usbfnclx together work as class extension. Then i get the same questions again. When will UsbfnClx come to running state. It is always in stopped state I am seeing. Other hand ufx01000 will be always in running state when I install ufxsynopsys driver.

Hello Tim Thank you for your response. > @Tim_Roberts said: > I believe you will have genericusbfn.sys as the class driver, talking to ufx01000 and usbfnclx as class driver extensions, talking to ufxsynopsys.sys as the controller driver. > > From the above statement, I understand both ufx01000 and UsbfnClx will together works as class extension. However my confusion is, I could see only ufx01000 will come to running state whenever I install ufxsynopsys driver. And in the other hand UsbfnClx always in stopped state. What would be the condition to bring it into running state.