[ros-dev] Empty fields of DeviceNode leading to Death
Filip Navara
xnavara at volny.cz
Sat Dec 11 14:16:08 CET 2004
art yerkes wrote:
>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.
>
>
- Only ServiceName is read from the registry and stored in the device node.
- The rest is queried from the PDO created by bus driver (and possibly
filtered by higher level drivers).
- Some values are stored in registry and retrieved using
IoGetDeviceProperty.
>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.
>
>
Can you be more specific about this? Which strings? Which places?
>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,
>
It pretty much depends on the type of driver and the driver itself...
>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.
>
That's really hard. The current code (starting from
IopInvalidateDeviceRelations) does several passes over the device tree
and in each pass fills one part of the DEVICE_NODE. I can't really think
about some clearer way...
Regards,
Filip
More information about the Ros-dev
mailing list