title: Writing a UMDF virtual device driver (or software device) like Virtual DVD
body: <p>I have an "off the shelf" commercial software using an ANT USB dongle to communicate with a cycling trainer. </p>
  
  <p>My trainer is not compatible with the software because the protocol is slightly different (not a lot).</p>
  
  <p>My goal is to write a protocol translator. The only thing I can think of is to write a UMDF virtual device driver (like Magic ISO Virtual DVD) looking like an ANT USB Device in the device manager (same PID\VID) while connecting itself to the physical ANT device. The virtual device driver will perform the protocol translation.</p>
  
  <p>I looked at several examples from Microsoft here <a href="https://github.com/Microsoft/Windows-driver-samples" rel="nofollow noreferrer">https://github.com/Microsoft/Windows-driver-samples</a> but I was unable to find anything relevant. I thought this example would be a good start <a href="https://github.com/Microsoft/Windows-driver-samples-master/Sensors/CustomSensors" rel="nofollow noreferrer">https://github.com/Microsoft/Windows-driver-samples-master/Sensors/CustomSensors</a> but it is impossible to load the driver using the given procedure from the inf file.</p>
  
  <p>BTW I am familiar with the content of INF files and the basics of KMDF &amp; UMDF device drivers programming. My problem is to write something that will load in the device manager and present itself as a real USB device even if it is not enumerated by the USB bus subsystem.</p>
  
  <p>Can anybody with driver development experience point me to some relevant code sample or documentation?</p>
  
  <p>Best regards !</p>