Uploaded image for project: 'Core ReactOS'
  1. Core ReactOS
  2. CORE-18031

Fix compile time warning RegDeleteKeyW() is UNIMPLEMENTED!




      This is actually the last warning that we do print during the build on the main-toolchain "gcc4.7.2 linux" (and gcc4.7.2 Windows) for releases/0.4.7 to releases/0.4.10:

      [4890/10620] Generating boot/bootdata/...oot/bootdata/system, boot/bootdata/BCD
      Binary hive maker
      RegDeleteKeyW(0x0xcab210, '') is UNIMPLEMENTED!
      [145/10684] Generating boot/bootdata/BCD
      Binary hive maker
        Creating binary hive: /home/jhenze/Release_WorkDir/Repo/output-MinGW-i386/reactos/boot/bootdata/BCD

      The following branches revisions are affected
      0.4.10-release-95-g981fb55 WinRosBE2.1.6
      0.4.9-release-99-ge9fe2a2 WinRosBE2.1.6
      0.4.8-release-100-g8f947b5 WinRosBE2.1.6
      0.4.7-release-113-g688875e WinRosBE2.1.6
      SVN r76032 WinRosBE2.1.5

      0.4.11-release-82-g78c6655 is fine already.
      Because the functionality got partially implemented mainly by 0.4.11-dev-420-gd91a478. There were some related and follow-up-commits (15commits from 2018-10-09 to 2018-10-20), I felt most safe by updating mkhive altogother. The resulting state from back then, was kept stable for more than 6months afterwards, and was only slightly touched for unrelated reasons afterwards until todays 0.4.15-dev-3748-g6a496c3)

      Our compile-time warning is nothing to be too worried about actually because, it is triggered by the following DelReg just from livecd.inf:

      HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"

      which was added by stone-age SVN r9611 already so the unhiding revision instead was most likely when we started using mkhive in the hosttools.

      That DelReg is just used for LiveCD, and aims to delete:

      443 HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders",,0x00000012

      added earlier from boot/bootdata/hivesft.inf

      (I could have just deleted that [DelReg] section in livecd.inf. Or mute the unimplemented-DPRINT.)
      But I decided to not just mute it, but to port back the RegDeleteKeyW() implementation from releases/0.4.11 instead.
      Because I am too afraid I might forget the missing functionality of DelReg for mkhive otherwise later.

      Still that func currently only offers limited functionality: the DelReg cannot delete subtrees yet. Only the current "folder". But that is no biggy for now. It is just used at build time for the mkhive tool, not at runtime.

      I tested the deletion on the backport (with some other hive). It works.
      It is worth to remember when testing it, that .inf files are processed: DelReg first, AddReg then.
      This might be confusing first, but can easily be "worked around for testing the implementation" by testing with 2 inf files.

      Thanks to hbelusca for the talking and collaborative testing...


        Issue Links



              hbelusca hbelusca
              reactosfanboy reactosfanboy
              0 Vote for this issue
              2 Start watching this issue