[NTOSKRNL] Minor PnP enhancements.
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 22 Apr 2018 14:31:53 +0000 (16:31 +0200)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 22 Apr 2018 14:52:45 +0000 (16:52 +0200)
commite616a456c0ccce598e0a065004988bea47079463
tree5ae34b1a9a278c8af761ffa7a1966167b186076b
parent2183e65c17fd4a8b0fe950c1600146c206c1f035
[NTOSKRNL] Minor PnP enhancements.

- For non-PnP devices reported to the PnP manager through the
  IoReportDetectedDevice() function, store the corresponding
  service/driver name and (non-)legacy information inside their
  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\ entries.
- Drivers flagged as "DRVO_BUILTIN_DRIVER" (basically, only those
  created via a IoCreateDriver() call) have their "Service" name that
  contain "\Driver\", which should be stripped before being used in
  building e.g. the corresponding "DETECTEDxxx" PnP compatible IDs.
  CORE-14247

- Use explicit REG_OPTION_NON_VOLATILE flag where needed in the
  IopCreateDeviceKeyPath() calls.
- Save NULL-terminated REG-SZ string properties in the enumeration tree
  for each device enumerated inside \Enum\Root\.
- Always use upcased key name for the "LEGACY_***" elements in \Enum\Root\.
- Add a default "ConfigFlags" value for the legacy elements.
- Simplify few parts of code.
ntoskrnl/io/pnpmgr/pnpmgr.c
ntoskrnl/io/pnpmgr/pnpreport.c