diff --git a/reactos/lib/cmlib/cmlib.h b/reactos/lib/cmlib/cmlib.h index 9e86c926418..088b88cdbbe 100644 --- a/reactos/lib/cmlib/cmlib.h +++ b/reactos/lib/cmlib/cmlib.h @@ -211,7 +211,7 @@ HvInitialize( PFILE_WRITE_ROUTINE FileWrite, PFILE_SET_SIZE_ROUTINE FileSetSize, PFILE_FLUSH_ROUTINE FileFlush, - IN PUNICODE_STRING FileName); + IN CONST UNICODE_STRING* FileName); VOID CMAPI HvFree( diff --git a/reactos/lib/cmlib/hiveinit.c b/reactos/lib/cmlib/hiveinit.c index e8b559bce95..aaf98736fcb 100644 --- a/reactos/lib/cmlib/hiveinit.c +++ b/reactos/lib/cmlib/hiveinit.c @@ -440,7 +440,7 @@ HvInitialize( PFILE_WRITE_ROUTINE FileWrite, PFILE_SET_SIZE_ROUTINE FileSetSize, PFILE_FLUSH_ROUTINE FileFlush, - IN PUNICODE_STRING FileName) + IN CONST UNICODE_STRING* FileName) { NTSTATUS Status; PHHIVE Hive = RegistryHive; diff --git a/reactos/ntoskrnl/cm/cm.h b/reactos/ntoskrnl/cm/cm.h index 90181e6dc50..69b83c07f0d 100644 --- a/reactos/ntoskrnl/cm/cm.h +++ b/reactos/ntoskrnl/cm/cm.h @@ -169,13 +169,13 @@ CmiAddKeyToList(IN PKEY_OBJECT ParentKey, NTSTATUS CmiScanKeyList(IN PKEY_OBJECT Parent, - IN PUNICODE_STRING KeyName, + IN CONST UNICODE_STRING* KeyName, IN ULONG Attributes, PKEY_OBJECT* ReturnedObject); NTSTATUS CmiLoadHive(POBJECT_ATTRIBUTES KeyObjectAttributes, - PUNICODE_STRING FileName, + CONST UNICODE_STRING* FileName, ULONG Flags); NTSTATUS @@ -200,7 +200,7 @@ CmiScanForSubKey(IN PEREGISTRY_HIVE RegistryHive, IN PCM_KEY_NODE KeyCell, OUT PCM_KEY_NODE *SubKeyCell, OUT HCELL_INDEX *BlockOffset, - IN PUNICODE_STRING KeyName, + IN CONST UNICODE_STRING* KeyName, IN ACCESS_MASK DesiredAccess, IN ULONG Attributes); @@ -317,12 +317,14 @@ CmpFindValueByName( IN PUNICODE_STRING Name ); +/* NOTE: This function declaration is currently duplicated in both */ +/* cm/cm.h and config/cm.h. TODO: Pick one single place to declare it. */ HCELL_INDEX NTAPI CmpFindSubKeyByName( IN PHHIVE Hive, IN PCM_KEY_NODE Parent, - IN PUNICODE_STRING SearchName + IN CONST UNICODE_STRING* SearchName ); VOID @@ -340,10 +342,12 @@ CmFindObject( IN PVOID ParseContext ); +/* NOTE: This function declaration is currently duplicated in both */ +/* cm/cm.h and config/cm.h. TODO: Pick one single place to declare it. */ NTSTATUS NTAPI -CmpOpenHiveFiles(IN PUNICODE_STRING BaseName, - IN PWCHAR Extension OPTIONAL, +CmpOpenHiveFiles(IN CONST UNICODE_STRING* BaseName, + IN PCWSTR Extension OPTIONAL, IN PHANDLE Primary, IN PHANDLE Log, IN PULONG PrimaryDisposition, @@ -355,7 +359,7 @@ CmpOpenHiveFiles(IN PUNICODE_STRING BaseName, NTSTATUS NTAPI -CmpInitHiveFromFile(IN PUNICODE_STRING HiveName, +CmpInitHiveFromFile(IN CONST UNICODE_STRING* HiveName, IN ULONG HiveFlags, OUT PEREGISTRY_HIVE *Hive, IN OUT PBOOLEAN New, diff --git a/reactos/ntoskrnl/cm/regfile.c b/reactos/ntoskrnl/cm/regfile.c index 7aab2e14902..4155f172f04 100644 --- a/reactos/ntoskrnl/cm/regfile.c +++ b/reactos/ntoskrnl/cm/regfile.c @@ -24,7 +24,7 @@ NTSTATUS CmiLoadHive(IN POBJECT_ATTRIBUTES KeyObjectAttributes, - IN PUNICODE_STRING FileName, + IN CONST UNICODE_STRING* FileName, IN ULONG Flags) { PEREGISTRY_HIVE Hive = NULL; @@ -280,7 +280,7 @@ CmiScanForSubKey(IN PEREGISTRY_HIVE RegistryHive, IN PCM_KEY_NODE KeyCell, OUT PCM_KEY_NODE *SubKeyCell, OUT HCELL_INDEX *BlockOffset, - IN PUNICODE_STRING KeyName, + IN CONST UNICODE_STRING* KeyName, IN ACCESS_MASK DesiredAccess, IN ULONG Attributes) { diff --git a/reactos/ntoskrnl/cm/regobj.c b/reactos/ntoskrnl/cm/regobj.c index 3cb72146c5e..ba82d26b9bd 100644 --- a/reactos/ntoskrnl/cm/regobj.c +++ b/reactos/ntoskrnl/cm/regobj.c @@ -753,9 +753,10 @@ CmiAddKeyToList(PKEY_OBJECT ParentKey, NewKey->ParentKey = ParentKey; } +/* Preconditions: Must be called with CmpRegistryLock held. */ NTSTATUS CmiScanKeyList(PKEY_OBJECT Parent, - PUNICODE_STRING KeyName, + CONST UNICODE_STRING* KeyName, ULONG Attributes, PKEY_OBJECT* ReturnedObject) { @@ -766,6 +767,7 @@ CmiScanKeyList(PKEY_OBJECT Parent, KeyName, &Parent->Name); /* FIXME: if list maintained in alphabetic order, use dichotomic search */ + /* (a binary search) */ for (Index=0; Index < Parent->SubKeyCounts; Index++) { CurKey = Parent->SubKeys[Index]; diff --git a/reactos/ntoskrnl/config/cm.h b/reactos/ntoskrnl/config/cm.h index 81fc4be0109..7152dbb472c 100644 --- a/reactos/ntoskrnl/config/cm.h +++ b/reactos/ntoskrnl/config/cm.h @@ -762,7 +762,7 @@ VALUE_SEARCH_RETURN_TYPE NTAPI CmpFindValueByNameFromCache( IN PKEY_OBJECT KeyObject, - IN PUNICODE_STRING Name, + IN CONST UNICODE_STRING* Name, OUT PCM_CACHED_VALUE **CachedValue, OUT ULONG *Index, OUT PCM_KEY_VALUE *Value, @@ -929,11 +929,11 @@ CmpInitializeHive( IN ULONG Operation, IN ULONG Flags, IN ULONG FileType, - IN PVOID HiveData, + IN PVOID HiveData OPTIONAL, IN HANDLE Primary, IN HANDLE Log, IN HANDLE External, - IN PUNICODE_STRING FileName, + IN CONST UNICODE_STRING* FileName OPTIONAL, IN ULONG CheckFlags ); @@ -953,11 +953,13 @@ CmpLinkHiveToMaster( IN PSECURITY_DESCRIPTOR SecurityDescriptor ); +/* NOTE: This function declaration is currently duplicated in both */ +/* cm/cm.h and config/cm.h. TODO: Pick one single place to declare it. */ NTSTATUS NTAPI CmpOpenHiveFiles( - IN PUNICODE_STRING BaseName, - IN PWCHAR Extension OPTIONAL, + IN CONST UNICODE_STRING* BaseName, + IN PCWSTR Extension OPTIONAL, IN PHANDLE Primary, IN PHANDLE Log, IN PULONG PrimaryDisposition, @@ -1047,7 +1049,7 @@ CmpFreeKeyByCell( LONG NTAPI CmpCompareCompressedName( - IN PUNICODE_STRING SearchName, + IN CONST UNICODE_STRING* SearchName, IN PWCHAR CompressedName, IN ULONG NameLength ); @@ -1116,12 +1118,15 @@ CmpFlushEntireRegistry( // // Cell Index Routines // + +/* NOTE: This function declaration is currently duplicated in both */ +/* cm/cm.h and config/cm.h. TODO: Pick one single place to declare it. */ HCELL_INDEX NTAPI CmpFindSubKeyByName( IN PHHIVE Hive, IN PCM_KEY_NODE Parent, - IN PUNICODE_STRING SearchName + IN CONST UNICODE_STRING* SearchName ); HCELL_INDEX @@ -1136,7 +1141,7 @@ ULONG NTAPI CmpComputeHashKey( IN ULONG Hash, - IN PUNICODE_STRING Name, + IN CONST UNICODE_STRING* Name, IN BOOLEAN AllowSeparators ); diff --git a/reactos/ntoskrnl/config/cmindex.c b/reactos/ntoskrnl/config/cmindex.c index 5e80926cf04..b4851315fa3 100644 --- a/reactos/ntoskrnl/config/cmindex.c +++ b/reactos/ntoskrnl/config/cmindex.c @@ -27,10 +27,10 @@ ULONG CmpMaxIndexPerHblock = /* FUNCTIONS *****************************************************************/ -LONG +static LONG NTAPI CmpDoCompareKeyName(IN PHHIVE Hive, - IN PUNICODE_STRING SearchName, + IN CONST UNICODE_STRING* SearchName, IN HCELL_INDEX Cell) { PCM_KEY_NODE Node; @@ -63,10 +63,10 @@ CmpDoCompareKeyName(IN PHHIVE Hive, return (Result == 0) ? Result : ((Result > 0) ? 1 : -1); } -LONG +static LONG NTAPI CmpCompareInIndex(IN PHHIVE Hive, - IN PUNICODE_STRING SearchName, + IN CONST UNICODE_STRING* SearchName, IN ULONG Count, IN PCM_KEY_INDEX Index, IN PHCELL_INDEX SubKey) @@ -139,11 +139,11 @@ CmpCompareInIndex(IN PHHIVE Hive, return Result; } -ULONG +static ULONG NTAPI CmpFindSubKeyInRoot(IN PHHIVE Hive, IN PCM_KEY_INDEX Index, - IN PUNICODE_STRING SearchName, + IN CONST UNICODE_STRING* SearchName, IN PHCELL_INDEX SubKey) { ULONG High, Low = 0, i, ReturnIndex; @@ -355,11 +355,11 @@ Return: return ReturnIndex; } -ULONG +static ULONG NTAPI CmpFindSubKeyInLeaf(IN PHHIVE Hive, IN PCM_KEY_INDEX Index, - IN PUNICODE_STRING SearchName, + IN CONST UNICODE_STRING* SearchName, IN PHCELL_INDEX SubKey) { ULONG High, Low = 0, i; @@ -473,7 +473,7 @@ CmpFindSubKeyInLeaf(IN PHHIVE Hive, ULONG NTAPI CmpComputeHashKey(IN ULONG Hash, - IN PUNICODE_STRING Name, + IN CONST UNICODE_STRING* Name, IN BOOLEAN AllowSeparators) { LPWSTR Cp; @@ -657,11 +657,11 @@ CmpFindSubKeyByNumber(IN PHHIVE Hive, return HCELL_NIL; } -HCELL_INDEX +static HCELL_INDEX NTAPI CmpFindSubKeyByHash(IN PHHIVE Hive, IN PCM_KEY_FAST_INDEX FastIndex, - IN PUNICODE_STRING SearchName) + IN CONST UNICODE_STRING* SearchName) { ULONG HashKey, i; PCM_INDEX FastEntry; @@ -698,7 +698,7 @@ HCELL_INDEX NTAPI CmpFindSubKeyByName(IN PHHIVE Hive, IN PCM_KEY_NODE Parent, - IN PUNICODE_STRING SearchName) + IN CONST UNICODE_STRING* SearchName) { ULONG i; PCM_KEY_INDEX IndexRoot; diff --git a/reactos/ntoskrnl/config/cminit.c b/reactos/ntoskrnl/config/cminit.c index cb41436a1ef..ab0c6b7e5dc 100644 --- a/reactos/ntoskrnl/config/cminit.c +++ b/reactos/ntoskrnl/config/cminit.c @@ -25,7 +25,7 @@ CmpInitializeHive(OUT PCMHIVE *RegistryHive, IN HANDLE Primary, IN HANDLE Log, IN HANDLE External, - IN PUNICODE_STRING FileName OPTIONAL, + IN CONST UNICODE_STRING* FileName OPTIONAL, IN ULONG CheckFlags) { #if 0 @@ -240,8 +240,8 @@ CmpInitializeHive(OUT PCMHIVE *RegistryHive, NTSTATUS NTAPI -CmpOpenHiveFiles(IN PUNICODE_STRING BaseName, - IN PWCHAR Extension OPTIONAL, +CmpOpenHiveFiles(IN CONST UNICODE_STRING* BaseName, + IN PCWSTR Extension OPTIONAL, IN PHANDLE Primary, IN PHANDLE Log, IN PULONG PrimaryDisposition, diff --git a/reactos/ntoskrnl/config/cmname.c b/reactos/ntoskrnl/config/cmname.c index 6151eadf485..84a727c1b6f 100644 --- a/reactos/ntoskrnl/config/cmname.c +++ b/reactos/ntoskrnl/config/cmname.c @@ -107,7 +107,7 @@ CmpCompressedNameSize(IN PWCHAR Name, LONG NTAPI -CmpCompareCompressedName(IN PUNICODE_STRING SearchName, +CmpCompareCompressedName(IN CONST UNICODE_STRING* SearchName, IN PWCHAR CompressedName, IN ULONG NameLength) { diff --git a/reactos/ntoskrnl/config/cmsysini.c b/reactos/ntoskrnl/config/cmsysini.c index 23509871b3f..510cc8546d9 100644 --- a/reactos/ntoskrnl/config/cmsysini.c +++ b/reactos/ntoskrnl/config/cmsysini.c @@ -22,7 +22,7 @@ BOOLEAN HvShutdownComplete; NTSTATUS NTAPI -CmpInitHiveFromFile(IN PUNICODE_STRING HiveName, +CmpInitHiveFromFile(IN CONST UNICODE_STRING* HiveName, IN ULONG HiveFlags, OUT PCMHIVE *Hive, IN OUT PBOOLEAN New, diff --git a/reactos/ntoskrnl/config/cmvalche.c b/reactos/ntoskrnl/config/cmvalche.c index 7b302dd6f68..25de1cd581d 100644 --- a/reactos/ntoskrnl/config/cmvalche.c +++ b/reactos/ntoskrnl/config/cmvalche.c @@ -186,7 +186,7 @@ CmpGetValueDataFromCache(IN PKEY_OBJECT KeyObject, VALUE_SEARCH_RETURN_TYPE NTAPI CmpFindValueByNameFromCache(IN PKEY_OBJECT KeyObject, - IN PUNICODE_STRING Name, + IN CONST UNICODE_STRING* Name, OUT PCM_CACHED_VALUE **CachedValue, OUT ULONG *Index, OUT PCM_KEY_VALUE *Value,