Looking for documentaion on Ufx (Windows 10 OTG Device)

All I have found is this page:
https://msdn.microsoft.com/en-gb/library/windows/hardware/mt188008(v=vs.85).aspx

That describes the IOCTls of the Ufx Class Extension (picture here: https://msdn.microsoft.com/en-gb/library/windows/hardware/mt187890(v=vs.85).aspx)

There isnt much in the documentation though.

Breaking on nt!IoCreateDevice() \Driver\Ufx01000 is creating a FILE_DEVICE_UNKNOWN named as “\Device\UfxCx0”

To access the stack I could put in an upper filter as the “Class Driver”, or call IoGetDeviceObjectPointer() on the name to get a device object pointer for example. Is there any recomended way to work with the stack?

The goal is to greate a generic ‘gadget’ driver that can dynamically connect and disconnect the device from the remote host, configure endpoints on the device and provide device and config descriptor data when enumerated ( pretty much like the g_serial etc gadgets do on linux).

I realise this is very new functionality on win10 IoT enterprise so the documentation is a bit limited so any info anyone can give would be appreciated.

Thanks in advance