I am participated in a custom Windows Software backup/restore project development that requires the loading of Windows SOFTWARE/SYSTEM registry hives from an "external" target OS system drive connected to a Windows host system.
On all Windows versions except Windows 8.1 program works correctly, but when host system (on which the program is run on) is Windows Server 2012 or Windows 8 and target system is Windows 8.1 the registry hive load failed with the following error:
Failed to load f:\Windows\System32\config\software:  The configuration registry database is corrupt.
After run of 'chkdsk /r' error still remained. All required security privileges (SE_BACKUP, SE_RESTORE) are applied. All systems are 64-bit.
Generally even system registry editor (regedit) could not open SOFTWARE hive from Windows 8.1 with following error:
Cannot Load f:\Windows\System32\config\software: Error while loading hive.
But when host system is Windows 7 or Windows Server 2008 then SOFTWARE hive loaded without any problem.
So is there some Windows 8/8.1 registry hives validation mechanism or additional security checks that prevents load of registry hives from another OS instance?