I redesigned most of the UI for this WDK tool and did some fairly major surgery to the internals in support of that for Windows 8.1 WDK- and then completely neglected the WDK documentation for it. Thanks to some good work by Ted Hudek from our documentation team, that oversight of mine's been corrected.
With the advent of UMDF 2 drivers, which have virtually identical controls to KMDF drivers, and after a few years of living with the rough edges of earlier incarnations, I reworked the UI with a couple of primary goals:
- more focus on what you're likely to use it for
- providing a unified view of the WDF technologies
- Less complicated editing and manipulation.
The new UI provides two main tabs related to drivers, and three others for more global use.
The main tabs are:
- The "Driver View", which lists all of the WDF drivers on a machine, and lets you inspect their individual settings, see what devices are using them, and adjust any WDF-related per-device settings on those devices. If they are UMDF drivers you can also see which UMDF host processes they are living in,
- The "Device View", which shows you all the devices with WDF drivers- pick one and it shows you all of the WDF drivers in its stack, in stack order (upper filters at top)- again you can inspect and adjust their settings as well as any settings related to the device.
A few other things I feel are worth noting:
- Color coded bitmaps indicate if a driver is KMDF, UMDF 1.x or UMDF 2.x- and also provide a clue as to what has to be done to make settings changes take effect- green drivers aren't in use, so just save the changes and you're good. Red drivers need a reboot (if they're UMDF, you can stop and restart the driver manager instead), while blue (I'd have preferred yellow, but it wasn't easy to see it) drivers are for in-use Pnp devices- for those, disabling and re-enabling the device will make the settings stick.
- Settings made on one tab are updated on all the others
- Drivers and devices with altered but unsaved settings have a visual cue (an asterisk, similar to what many editors do when a file has unsaved changes) indicating that they've changed.
- You right click editable items to change them- Boolean items will just change state, items with a reasonable number of choices will get a context menu, and numeric items will get a text box.
- There are some suggested collections of settings you can get in a single click- you can undo all unsaved changes to a driver with one, also (e.g. all on a menu you get when you right click the driver or device).
- I try to be explicit about what the state of the settings is and why it is that way- e.g. Verifier is on because you're using driver verifier on this driver- or Verifier is always ON, or DbgBreakOnError is ON because VerifierOn is ON, etc.
- If you disable verifier but have handle tracking settings, in similar vein I tell you what would be tracked if you turned verifier on. Hopefully these provide better transparency into some of those internal dependencies.
- I still only show you settings that actually mean something on the machine you're running it on- no settings that aren't supported by your driver version or the WDF version, or that are related to a different OS, etc.
- For those bothered by my loading their UMDF drivers unexpectedly- while I do still load them, I don't execute code in them [there is admittedly an exception, with UMDF 2.0 drivers- but the code I run is stub code from Microsoft linked into your driver when you built it, not anything you may have written]