none
Driver Structure RRS feed

  • Question

  • Hi!

    I need to make some research, affecting the driver structure. I thought this place might be a good spot to ask: Are nowadays drivers monolithic, mirco or hybrid architecture. Any Answer will help, but i you have some background Information you could point me to - this would be awesome.

    I hope anybody can help me with this.

    Thanks in advance!

    Friday, April 12, 2013 9:39 AM

Answers

  • As you say it is harder to classify than one would think.  Take a simple PCI device.  there is a PCI bus driver that manages the bus, communicates with the OS to load the function driver, and hands off the PCI resources upon request to the upper layers.  Then you have a function driver that uses these resources to program the device.  Now since all interaction with the actual device is through the function driver this can be claimed to be a monolithic driver, but it definitely cannot run alone without the stack of drivers with the PCI bus driver at its base.

    The example above is not meant to duck giving you an answer but more to indicate depending on how you define the terms you can have differing answers.


    Don Burn Windows Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr

    Friday, April 12, 2013 1:39 PM

All replies

  • The answer to the architecture is it depends on the driver type.  In Windows there are driver stacks see http://msdn.microsoft.com/en-us/library/windows/hardware/hh439632(v=vs.85).aspx where each layer is responsible for a specific part of the work.  In addition there are port/miniport drivers see http://msdn.microsoft.com/en-us/library/windows/hardware/hh439643(v=vs.85).aspx where the port does the general work, and the miniport knows how to talk to the specific device.    Finally, you can have filter drivers which are drivers that modify the actions of the device stack see http://msdn.microsoft.com/en-us/library/windows/hardware/ff554721(v=vs.85).aspx


    Don Burn Windows Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr

    Friday, April 12, 2013 11:09 AM
  • Thanks for the feedback, Donald.

    This is even harder as I first thought. :)

    But when I say all of these Driver types are working in a Multitier architecture, it shouldn't be too wrong, right? Because there all of these types of driver parts (or Layers) are separate Components. Also does the layers have a hierarchically order, right? If I am wrong -please- correct me.

    So, if I got it right here it would mean my nominations were all wrong and the drivers, at least in Windows, are working in layers.

    Friday, April 12, 2013 1:08 PM
  • As you say it is harder to classify than one would think.  Take a simple PCI device.  there is a PCI bus driver that manages the bus, communicates with the OS to load the function driver, and hands off the PCI resources upon request to the upper layers.  Then you have a function driver that uses these resources to program the device.  Now since all interaction with the actual device is through the function driver this can be claimed to be a monolithic driver, but it definitely cannot run alone without the stack of drivers with the PCI bus driver at its base.

    The example above is not meant to duck giving you an answer but more to indicate depending on how you define the terms you can have differing answers.


    Don Burn Windows Filesystem and Driver Consulting Website: http://www.windrvr.com Blog: http://msmvps.com/blogs/WinDrvr

    Friday, April 12, 2013 1:39 PM
  • Thanks, that helped alot. :)
    Friday, April 12, 2013 4:29 PM