none
how to create device driver that emulates other device drivers? RRS feed

  • Question

  • Hello, I sure this is an old question about devices and device drivers. As we all know all devices have a driver inluding plug-and-play webcam or build-in webcam. This drivers can be listed by many ways with directshow, KSstudio, graphedit, etc.

    Here is my question: it is really possible to create a device driver that creates a "phantom device"? Would it be possible to transform one webcam -or including several IP cameras- into several virtual webcams?

    Imagine you have to use serveral webcam to make some image processing? It would be possible to give them even a name to recognize them?

    I know for sure that it can be done with the directshow simpy adding splitter filters... but that creates a lot threads... and there are some how say that's not possible...

    just answer yes or not.

    Thank you.


    • Edited by Carlesls Wednesday, April 11, 2012 1:08 PM
    Wednesday, April 11, 2012 12:45 PM

Answers

  • you can create software only device stacks, you use the root enumerator to do this (see devcon install <hwid> <inf> for a particular way to do that). that software driver can expose anything you want. if you want these devices to be more dynamic than the root bus, install a bus driver on the root bus (see the dynambus toaster example) and then have your bus driver enumerate children at will.


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Wednesday, April 11, 2012 4:28 PM
  • yes and no, an INF file is written for a specific driver with a specific set of requirements. you cannot just install any random INF on the root bus and expect it to work. you will be lucky if your machine doesn't bluescreen because that is not a scenario that was tested for the driver.  you could possibly get this to work by writing your own bus driver and emulating a protocol bus like usb (impossible for something like pci), but that would be a tremendous amount of reverse engineering. you get nothing for free or cheap here.

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    • Marked as answer by Carlesls Tuesday, April 17, 2012 8:16 AM
    Monday, April 16, 2012 4:15 PM

All replies

  • you can create software only device stacks, you use the root enumerator to do this (see devcon install <hwid> <inf> for a particular way to do that). that software driver can expose anything you want. if you want these devices to be more dynamic than the root bus, install a bus driver on the root bus (see the dynambus toaster example) and then have your bus driver enumerate children at will.


    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Wednesday, April 11, 2012 4:28 PM
  • you can create software only device stacks, you use the root enumerator to do this (see devcon install <hwid> <inf> for a particular way to do that). that software driver can expose anything you want. if you want these devices to be more dynamic than the root bus, install a bus driver on the root bus (see the dynambus toaster example) and then have your bus driver enumerate children at will.


    I went to the inf folder... and that's truth... all device have a inf file... one question raises... If I copy and paste inf files and then use devcon ... Could I create a webcamera driver that simulates the real one.

    • Edited by Carlesls Monday, April 16, 2012 10:12 AM
    Monday, April 16, 2012 9:46 AM
  • yes and no, an INF file is written for a specific driver with a specific set of requirements. you cannot just install any random INF on the root bus and expect it to work. you will be lucky if your machine doesn't bluescreen because that is not a scenario that was tested for the driver.  you could possibly get this to work by writing your own bus driver and emulating a protocol bus like usb (impossible for something like pci), but that would be a tremendous amount of reverse engineering. you get nothing for free or cheap here.

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    • Marked as answer by Carlesls Tuesday, April 17, 2012 8:16 AM
    Monday, April 16, 2012 4:15 PM
  • Ok nothing to do here then.

    I will better try writting a filter.

    Tuesday, April 17, 2012 8:18 AM
  • a filter only works if you have a device stack to filter. if you want to create synthetic devices, what are you filtering?

    d -- This posting is provided "AS IS" with no warranties, and confers no rights.

    Tuesday, April 17, 2012 5:09 PM