Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. Hardware & Devices
  4. Toolkits for developing drivers

Toolkits for developing drivers

Scheduled Pinned Locked Moved Hardware & Devices
questionhtmlcomperformanceannouncement
16 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Maxwell Chen

    You are right! DevPartner seems to focus on user mode analysis and debugging. There is no kernel mode device driver features. I am so sorry that I made a mistake.

    Maxwell Chen

    R Offline
    R Offline
    Roger Stoltz
    wrote on last edited by
    #7

    Maxwell Chen wrote:

    I am so sorry that I made a mistake.

    No worries, Maxwell.

    "It's supposed to be hard, otherwise anybody could do it!" - selfquote
    "High speed never compensates for wrong direction!" - unknown

    1 Reply Last reply
    0
    • R Roger Stoltz

      I'm looking for some kind of toolkit used for building drivers. I know of two:

      • Numega/Compuware DriverStudio
      • Jungo WinDriver[^]

      Compuware has retired DriverStudio since 2006 and I cannot find any replacement for it from Compuware. So building a driver for e.g. 64-bit Vista would be out of the question with an old version of DriverStudio. Is really Jungo the only alternative out there? Of course it's possible to build a driver with only the DDK, but I figure that the benefits of using a toolkit outweighs the drawbacks. Any tip is appreciated.

      "It's supposed to be hard, otherwise anybody could do it!" - selfquote
      "High speed never compensates for wrong direction!" - unknown

      J Offline
      J Offline
      JudyL_MD
      wrote on last edited by
      #8

      There is the KMDF from Microsoft. I used that for my latest drivers and found it relatively easy to use, if a bit verbose in its function names :) . It handles a lot of the tedious repetitive stuff like PnP and Power management for you. Now that KMDF is around, I haven't found a need to try to find another toolkit - the framework deals with all the stuff I previously wanted dealt with by a toolkit. Judy

      R 1 Reply Last reply
      0
      • J JudyL_MD

        There is the KMDF from Microsoft. I used that for my latest drivers and found it relatively easy to use, if a bit verbose in its function names :) . It handles a lot of the tedious repetitive stuff like PnP and Power management for you. Now that KMDF is around, I haven't found a need to try to find another toolkit - the framework deals with all the stuff I previously wanted dealt with by a toolkit. Judy

        R Offline
        R Offline
        Roger Stoltz
        wrote on last edited by
        #9

        Nice Judy, thanks. I'll look into it.

        "It's supposed to be hard, otherwise anybody could do it!" - selfquote
        "High speed never compensates for wrong direction!" - unknown

        1 Reply Last reply
        0
        • R Roger Stoltz

          I'm looking for some kind of toolkit used for building drivers. I know of two:

          • Numega/Compuware DriverStudio
          • Jungo WinDriver[^]

          Compuware has retired DriverStudio since 2006 and I cannot find any replacement for it from Compuware. So building a driver for e.g. 64-bit Vista would be out of the question with an old version of DriverStudio. Is really Jungo the only alternative out there? Of course it's possible to build a driver with only the DDK, but I figure that the benefits of using a toolkit outweighs the drawbacks. Any tip is appreciated.

          "It's supposed to be hard, otherwise anybody could do it!" - selfquote
          "High speed never compensates for wrong direction!" - unknown

          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #10

          Roger Stoltz wrote:

          but I figure that the benefits of using a toolkit outweighs the drawbacks.

          not really. wrappers like jungo have their uses, perhaps (although I would never use it), but eventually, you are going to have to get your handsa dirty and dig around beneath the wrapper to either fix something in the wrapper or get some functionality it doesnt provide. and then you are looking into the depths of hell itself. so you might as well start of like you mean to go on and take the big leap, dig into it, and just use the WDM api. The ddk is limited, confusing, and nightmarish to useso, provided you only want to do WDM, then I suggest Walter ONeys book, Programming the Windows Driver Model.

          Morality is indistinguishable from social proscription

          R 1 Reply Last reply
          0
          • L Lost User

            Roger Stoltz wrote:

            but I figure that the benefits of using a toolkit outweighs the drawbacks.

            not really. wrappers like jungo have their uses, perhaps (although I would never use it), but eventually, you are going to have to get your handsa dirty and dig around beneath the wrapper to either fix something in the wrapper or get some functionality it doesnt provide. and then you are looking into the depths of hell itself. so you might as well start of like you mean to go on and take the big leap, dig into it, and just use the WDM api. The ddk is limited, confusing, and nightmarish to useso, provided you only want to do WDM, then I suggest Walter ONeys book, Programming the Windows Driver Model.

            Morality is indistinguishable from social proscription

            R Offline
            R Offline
            Roger Stoltz
            wrote on last edited by
            #11

            Thanks for your reply fat_boy.

            fat_boy wrote:

            but eventually, you are going to have to get your handsa dirty and dig around beneath the wrapper to either fix something in the wrapper or get some functionality it doesnt provide.

            So I shall interpret this as something like "if you're writing a simple driver you won't need a toolkit and if you're writing a complex driver a toolkit provides more trouble than help"? Or would that be pushing it too far? My customer needs a driver for USB DFU (Device Firmware Upgrade), but they need to be able to modify the driver after I've left the building. Even if I consider a driver for DFU as quite small and simple in comparison, my customer has very little or none experience of kernel mode development. That's why I'm interested in toolkits such as the one from Jungo as I assume that the need for kernel mode experience is limited (at least Jungo claims so). Other ideas or Suggestions?

            "It's supposed to be hard, otherwise anybody could do it!" - selfquote
            "High speed never compensates for wrong direction!" - unknown

            L M 2 Replies Last reply
            0
            • R Roger Stoltz

              Thanks for your reply fat_boy.

              fat_boy wrote:

              but eventually, you are going to have to get your handsa dirty and dig around beneath the wrapper to either fix something in the wrapper or get some functionality it doesnt provide.

              So I shall interpret this as something like "if you're writing a simple driver you won't need a toolkit and if you're writing a complex driver a toolkit provides more trouble than help"? Or would that be pushing it too far? My customer needs a driver for USB DFU (Device Firmware Upgrade), but they need to be able to modify the driver after I've left the building. Even if I consider a driver for DFU as quite small and simple in comparison, my customer has very little or none experience of kernel mode development. That's why I'm interested in toolkits such as the one from Jungo as I assume that the need for kernel mode experience is limited (at least Jungo claims so). Other ideas or Suggestions?

              "It's supposed to be hard, otherwise anybody could do it!" - selfquote
              "High speed never compensates for wrong direction!" - unknown

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #12

              Writing kernel drivers for windows is a serious undertaking regardless of the size: every driver has the potential to trash the OS so I would not expect anyone short of a very good Windows programmer with 5 years of experience capable of even starting to begin to modify a driver and have it anywhere near stable. And even then they will have a massive learning curve. I dont know Jungo though and it might well do what you want. Talk to them and see.

              Morality is indistinguishable from social proscription

              R 1 Reply Last reply
              0
              • R Roger Stoltz

                Thanks for your reply fat_boy.

                fat_boy wrote:

                but eventually, you are going to have to get your handsa dirty and dig around beneath the wrapper to either fix something in the wrapper or get some functionality it doesnt provide.

                So I shall interpret this as something like "if you're writing a simple driver you won't need a toolkit and if you're writing a complex driver a toolkit provides more trouble than help"? Or would that be pushing it too far? My customer needs a driver for USB DFU (Device Firmware Upgrade), but they need to be able to modify the driver after I've left the building. Even if I consider a driver for DFU as quite small and simple in comparison, my customer has very little or none experience of kernel mode development. That's why I'm interested in toolkits such as the one from Jungo as I assume that the need for kernel mode experience is limited (at least Jungo claims so). Other ideas or Suggestions?

                "It's supposed to be hard, otherwise anybody could do it!" - selfquote
                "High speed never compensates for wrong direction!" - unknown

                M Offline
                M Offline
                Mike Dimmick
                wrote on last edited by
                #13

                Since this is a USB device, perhaps the User-Mode Driver Framework[^] would be appropriate? See the FAQ[^].

                DoEvents: Generating unexpected recursion since 1991

                R 1 Reply Last reply
                0
                • L Lost User

                  Writing kernel drivers for windows is a serious undertaking regardless of the size: every driver has the potential to trash the OS so I would not expect anyone short of a very good Windows programmer with 5 years of experience capable of even starting to begin to modify a driver and have it anywhere near stable. And even then they will have a massive learning curve. I dont know Jungo though and it might well do what you want. Talk to them and see.

                  Morality is indistinguishable from social proscription

                  R Offline
                  R Offline
                  Roger Stoltz
                  wrote on last edited by
                  #14

                  fat_boy wrote:

                  every driver has the potential to trash the OS so I would not expect anyone short of a very good Windows programmer with 5 years of experience capable of even starting to begin to modify a driver and have it anywhere near stable. And even then they will have a massive learning curve.

                  Exactly my point. That's why I wanted something to simplify things for my customer, if they need to modify the driver in the future. Perhaps the chances of combining these two parameters are ridiculously close to zero and I end up writing it with the DDK anyway, or one of the frameworks Judy and Mike has suggested. On the other hand it may create an opportunity to return to the scene of the crime if the driver needs to be modified. Thanks for your time fat_boy.

                  "It's supposed to be hard, otherwise anybody could do it!" - selfquote
                  "High speed never compensates for wrong direction!" - unknown

                  L 1 Reply Last reply
                  0
                  • M Mike Dimmick

                    Since this is a USB device, perhaps the User-Mode Driver Framework[^] would be appropriate? See the FAQ[^].

                    DoEvents: Generating unexpected recursion since 1991

                    R Offline
                    R Offline
                    Roger Stoltz
                    wrote on last edited by
                    #15

                    It may be. Judy suggested me to look into both UMDF and KMDF and I've done so a little. I haven't had the time to really get into things yet, but I will certainly have a serious go for it. Judging from the FAQ it will do very well for this DFU driver. I haven't really found all the info I need on how to get the framework and what it costs and that's essential input for my customer to make a decision whether to use it or not. As I understood it, the framework is available through this MS "Connect"-thing... But what's the charge? Got to ask since I couldn't find a statement that it's free of charge. Any chance you know it by heart?

                    "It's supposed to be hard, otherwise anybody could do it!" - selfquote
                    "High speed never compensates for wrong direction!" - unknown

                    1 Reply Last reply
                    0
                    • R Roger Stoltz

                      fat_boy wrote:

                      every driver has the potential to trash the OS so I would not expect anyone short of a very good Windows programmer with 5 years of experience capable of even starting to begin to modify a driver and have it anywhere near stable. And even then they will have a massive learning curve.

                      Exactly my point. That's why I wanted something to simplify things for my customer, if they need to modify the driver in the future. Perhaps the chances of combining these two parameters are ridiculously close to zero and I end up writing it with the DDK anyway, or one of the frameworks Judy and Mike has suggested. On the other hand it may create an opportunity to return to the scene of the crime if the driver needs to be modified. Thanks for your time fat_boy.

                      "It's supposed to be hard, otherwise anybody could do it!" - selfquote
                      "High speed never compensates for wrong direction!" - unknown

                      L Offline
                      L Offline
                      Lost User
                      wrote on last edited by
                      #16

                      Roger Stoltz wrote:

                      On the other hand it may create an opportunity to return to the scene of the crime if the driver needs to be modified.

                      That is a good idea. Sell them the product and maintenance. If you ever do get a driver up and running, well, you will have acchievde a massive amount. You can capitolise on that work.

                      Morality is indistinguishable from social proscription

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups