Set the value/data cell to dirty, if an existing value is overwritten. Modified: trunk/reactos/ntoskrnl/cm/ntfunc.c _____
Modified: trunk/reactos/ntoskrnl/cm/ntfunc.c --- trunk/reactos/ntoskrnl/cm/ntfunc.c 2005-11-17 17:29:36 UTC (rev 19294) +++ trunk/reactos/ntoskrnl/cm/ntfunc.c 2005-11-17 17:34:22 UTC (rev 19295) @@ -1993,7 +1993,6 @@
RtlCopyMemory(&ValueCell->DataOffset, Data, DataSize); ValueCell->DataSize = DataSize | REG_DATA_IN_OFFSET; ValueCell->DataType = Type; - RtlMoveMemory(&ValueCell->DataOffset, Data, DataSize); CmiMarkBlockDirty(RegistryHive, ValueCellOffset); } else if (!(ValueCell->DataSize & REG_DATA_IN_OFFSET) && @@ -2005,6 +2004,8 @@ RtlCopyMemory(DataCell->Data, Data, DataSize); ValueCell->DataSize = DataSize; ValueCell->DataType = Type; + CmiMarkBlockDirty(RegistryHive, ValueCell->DataOffset); + CmiMarkBlockDirty(RegistryHive, ValueCellOffset); } else {