Is there a reference for which registry keys fill (or are supposed to fill) which members of DeviceNode? I ask because I wind up finding all of the combinations that lead to zeros and have a tough time figuring out which registry values are needed to make them not be zero.
We have a lot of unchecked string functions on the DeviceNode fields in io/pnpmgr.c, by the way. I think i've stumbled on four such places so far, but I suspect that the whole thing should be hardened together.
In any case it would be nice if someone could post a cheat sheet about how to create a new device entry the right way, or write the code that fills the DeviceNode in a more obvious way, so that it's easy to find and see what fills what.