Mir fällt bei den "Geräten" mit spezifischen Eigenschaften und
DLL eher ein hierarchischer Key Value Store ein. Die
DLL müsste also eine Art Baumstruktur liefern, z.b. in JSON oder so.
Visualisierung im Client dann z.B. mit (Virtual ) TreeView. Die Ebene eines Zweiges könnte dann ggf. als Form angezeigt/generiert werden.
Bei dem Ganzen müsste man vermutlich auch noch unterscheiden, welche Infos vom Gerät geliefert wurden/werden müssen und welche insgesamt definiert sind, also optionale Werte berücksichtigen. Das müsste spätestens die spezifische
DLL wissen oder noch flexibler (bei neuer Firmware, ..), eine JSON Schema Definition.