JUst completed a nice driver task, quite a complex one

And no, it isnt about controling CPU speed from a user mode app. :slight_smile:

It is USB bridging. So a device plugged into a PC is bridged out to hardware which is a ‘double ender’ device, which in turn is connected to another PC.

All devices plugged into the first PC have to appear exactly as themselves on the far-pc, and the configuration selected, and vendor data, driven by the far-end PC, has to be sent back to the original device. (Hence the report descriptor harvesting).

It involves a host filter driver to intercept child PDO creation, thanks Alex for your help on the details of that (IoAttachDeviceToDeviceStack can take a PDO even if the device stack isnt built up yet), the child PDO filter that gets attached, and modifies the device ID. An FDO driver for that device ID, and a receiver driver for the ‘double-ender’ device that is controled by the replacement FDO.

Its all very slick and works nicely.

I do like these out of the ordinary type jobs, they do push the design a lot!

Thanks for your help guys :slight_smile: