Author: ion
Date: Tue Aug 15 01:09:41 2006
New Revision: 23583
URL:
http://svn.reactos.org/svn/reactos?rev=23583&view=rev
Log:
- Get rid of "ChunkSize" through a sickening hack (however this should make the
Hv* interface compatible enough for me to resume work on the cm branch).
Modified:
trunk/reactos/boot/freeldr/freeldr/reactos/binhive.c
trunk/reactos/lib/cmlib/cmlib.h
trunk/reactos/lib/cmlib/hiveinit.c
trunk/reactos/ntoskrnl/cm/import.c
trunk/reactos/ntoskrnl/cm/regfile.c
Modified: trunk/reactos/boot/freeldr/freeldr/reactos/binhive.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/react…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/reactos/binhive.c (original)
+++ trunk/reactos/boot/freeldr/freeldr/reactos/binhive.c Tue Aug 15 01:09:41 2006
@@ -715,7 +715,7 @@
CmHive = CmpAllocate(sizeof(EREGISTRY_HIVE), TRUE);
Status = HvInitialize (&CmHive->Hive, HV_OPERATION_MEMORY_INPLACE,
- (ULONG_PTR)ChunkBase, ChunkSize,
+ (ULONG_PTR)ChunkBase, 0,
CmpAllocate, CmpFree,
NULL, NULL, NULL, NULL, NULL);
if (!NT_SUCCESS(Status))
Modified: trunk/reactos/lib/cmlib/cmlib.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/cmlib/cmlib.h?rev=2358…
==============================================================================
--- trunk/reactos/lib/cmlib/cmlib.h (original)
+++ trunk/reactos/lib/cmlib/cmlib.h Tue Aug 15 01:09:41 2006
@@ -142,7 +142,7 @@
PHHIVE RegistryHive,
ULONG Operation,
ULONG_PTR HiveData OPTIONAL,
- SIZE_T Cluster, // HACK!!
+ ULONG Cluster OPTIONAL,
PALLOCATE_ROUTINE Allocate,
PFREE_ROUTINE Free,
PFILE_READ_ROUTINE FileRead,
Modified: trunk/reactos/lib/cmlib/hiveinit.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/lib/cmlib/hiveinit.c?rev=2…
==============================================================================
--- trunk/reactos/lib/cmlib/hiveinit.c (original)
+++ trunk/reactos/lib/cmlib/hiveinit.c Tue Aug 15 01:09:41 2006
@@ -137,15 +137,22 @@
NTSTATUS CMAPI
HvpInitializeMemoryHive(
PHHIVE Hive,
- ULONG_PTR ChunkBase,
- SIZE_T ChunkSize)
+ ULONG_PTR ChunkBase)
{
SIZE_T BlockIndex;
PHBIN Bin, NewBin;
ULONG i;
ULONG BitmapSize;
PULONG BitmapBuffer;
-
+ SIZE_T ChunkSize;
+
+ //
+ // This hack is similar in magnitude to the US's National Debt
+ //
+ ChunkSize = ((PHBASE_BLOCK)ChunkBase)->Length;
+ ((PHBASE_BLOCK)ChunkBase)->Length = HV_BLOCK_SIZE;
+ DPRINT1("ChunkSize: %lx\n", ChunkSize);
+
if (ChunkSize < sizeof(HBASE_BLOCK) ||
!HvpVerifyHiveHeader((PHBASE_BLOCK)ChunkBase))
{
@@ -250,11 +257,9 @@
NTSTATUS CMAPI
HvpInitializeMemoryInplaceHive(
PHHIVE Hive,
- ULONG_PTR ChunkBase,
- SIZE_T ChunkSize)
-{
- if (ChunkSize < sizeof(HBASE_BLOCK) ||
- !HvpVerifyHiveHeader((PHBASE_BLOCK)ChunkBase))
+ ULONG_PTR ChunkBase)
+{
+ if (!HvpVerifyHiveHeader((PHBASE_BLOCK)ChunkBase))
{
return STATUS_REGISTRY_CORRUPT;
}
@@ -301,8 +306,8 @@
HvInitialize(
PHHIVE RegistryHive,
ULONG Operation,
- ULONG_PTR ChunkBase,
- SIZE_T ChunkSize,
+ ULONG_PTR HiveData OPTIONAL,
+ ULONG Cluster OPTIONAL,
PALLOCATE_ROUTINE Allocate,
PFREE_ROUTINE Free,
PFILE_READ_ROUTINE FileRead,
@@ -334,11 +339,11 @@
break;
case HV_OPERATION_MEMORY:
- Status = HvpInitializeMemoryHive(Hive, ChunkBase, ChunkSize);
+ Status = HvpInitializeMemoryHive(Hive, HiveData);
break;
case HV_OPERATION_MEMORY_INPLACE:
- Status = HvpInitializeMemoryInplaceHive(Hive, ChunkBase, ChunkSize);
+ Status = HvpInitializeMemoryInplaceHive(Hive, HiveData);
break;
default:
Modified: trunk/reactos/ntoskrnl/cm/import.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cm/import.c?rev=2…
==============================================================================
--- trunk/reactos/ntoskrnl/cm/import.c (original)
+++ trunk/reactos/ntoskrnl/cm/import.c Tue Aug 15 01:09:41 2006
@@ -51,8 +51,9 @@
Hive->Flags = Flags;
/* Allocate hive header */
+ ((PHBASE_BLOCK)ChunkBase)->Length = ChunkSize;
Status = HvInitialize(&Hive->Hive, HV_OPERATION_MEMORY,
- (ULONG_PTR)ChunkBase, ChunkSize,
+ (ULONG_PTR)ChunkBase, 0,
CmpAllocate, CmpFree,
CmpFileRead, CmpFileWrite, CmpFileSetSize,
CmpFileFlush, NULL);
Modified: trunk/reactos/ntoskrnl/cm/regfile.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/cm/regfile.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/cm/regfile.c (original)
+++ trunk/reactos/ntoskrnl/cm/regfile.c Tue Aug 15 01:09:41 2006
@@ -569,8 +569,9 @@
}
DPRINT("ViewBase %p ViewSize %lx\n", ViewBase, ViewSize);
+ ((PHBASE_BLOCK)ViewBase)->Length = ViewSize;
Status = HvInitialize(&RegistryHive->Hive, HV_OPERATION_MEMORY,
- (ULONG_PTR)ViewBase, ViewSize,
+ (ULONG_PTR)ViewBase, 0,
CmpAllocate, CmpFree,
CmpFileRead, CmpFileWrite, CmpFileSetSize,
CmpFileFlush, NULL);