#include "cmp.h"
Go to the source code of this file.
Defines | |
#define | CM_SAVEKEYBUFSIZE 0x10000 |
Functions | |
PCMHIVE | CmpCreateTemporaryHive (IN HANDLE FileHandle) |
VOID | CmpDestroyTemporaryHive (PCMHIVE CmHive) |
NTSTATUS | CmpLoadHiveVolatile (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN HANDLE FileHandle) |
NTSTATUS | CmpRefreshHive (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock) |
NTSTATUS | CmpSaveKeyByFileCopy (PCMHIVE Hive, HANDLE FileHandle) |
ULONG | CmpRefreshWorkerRoutine (PCM_KEY_CONTROL_BLOCK Current, PVOID Context1, PVOID Context2) |
BOOLEAN | CmpMergeKeyValues (PHHIVE SourceHive, HCELL_INDEX SourceKeyCell, PCM_KEY_NODE SourceKeyNode, PHHIVE TargetHive, HCELL_INDEX TargetKeyCell, PCM_KEY_NODE TargetKeyNode) |
NTSTATUS | CmRestoreKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN HANDLE FileHandle, IN ULONG Flags) |
NTSTATUS | CmSaveKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN HANDLE FileHandle) |
NTSTATUS | CmSaveMergedKeys (IN PCM_KEY_CONTROL_BLOCK HighPrecedenceKcb, IN PCM_KEY_CONTROL_BLOCK LowPrecedenceKcb, IN HANDLE FileHandle) |
Variables | |
PCMHIVE | CmpMasterHive |
BOOLEAN | CmpProfileLoaded |
PUCHAR | CmpStashBuffer |
ULONG | CmpGlobalQuotaAllowed |
ULONG | CmpGlobalQuotaWarning |
ULONG | CmpGlobalQuotaUsed |
|
Definition at line 27 of file cmsavres.c. Referenced by CmpSaveKeyByFileCopy(). |
|
Definition at line 1439 of file cmsavres.c. References CmpInitializeHive(), HINIT_CREATE, HIVE_VOLATILE, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, and Status. Referenced by CmSaveKey(), and CmSaveMergedKeys().
|
|
Definition at line 1490 of file cmsavres.c. References ASSERT, CML_MINOR, CMLOG, CmpFree(), CMS_SAVRES, ExFreePool(), _CMHIVE::Hive, _CMHIVE::HiveList, _CMHIVE::HiveLock, HvFreeHive(), NULL, and PAGED_CODE. Referenced by CmpLoadHiveVolatile(), CmRestoreKey(), CmSaveKey(), and CmSaveMergedKeys().
|
|
Definition at line 484 of file cmsavres.c. References _HHIVE::BaseBlock, Cell, _REGISTRY_COMMAND::CmHive, CmpConstructName(), CmpCopyCompressedName(), CmpCopyKeyPartial(), CmpCopyTree, CmpDestroyTemporaryHive(), CmpHKeyNameLen, CmpInitializeHive(), CmpLinkHiveToMaster(), CmpLockRegistryExclusive(), CmpMasterHive, CmpProfileLoaded, CmpSetGlobalQuotaAllowed(), CmpUnlockRegistry(), CmpWorker(), _REGISTRY_COMMAND::Command, ExAllocatePool, ExFreePool(), ExFreePoolWithTag, FALSE, _CM_KEY_NODE::Flags, HCELL_INDEX, HCELL_NIL, HFILE_TYPE_PRIMARY, HINIT_CREATE, HINIT_FILE, _CMHIVE::Hive, Hive, HIVE_VOLATILE, HvGetCell, KEY_COMP_NAME, _CELL_DATA::_u::KeyNode, L, _CM_KEY_NODE::Name, _CM_KEY_NODE::NameLength, NewName, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, PagedPool, PROTECTED_POOL, REG_CMD_ADD_HIVE_LIST, _HBASE_BLOCK::RootCell, RtlAppendUnicodeStringToString(), RtlAppendUnicodeToString(), RtlCopyUnicodeString(), Status, TRUE, _CELL_DATA::u, and USHORT. Referenced by CmRestoreKey().
|
|
Definition at line 1150 of file cmtrecpy.c. References ASSERT, CmpCopyValue(), CmpFindNameInList(), CmpInitializeValueNameString(), CmpSyncKeyValues(), _CHILD_LIST::Count, ExAllocatePool, ExFreePool(), FALSE, HCELL_INDEX, HCELL_NIL, HvFreeCell(), HvGetCell, HvGetCellType, HvReallocateCell(), _CELL_DATA::_u::KeyList, _CHILD_LIST::List, MAX_KEY_VALUE_NAME_LENGTH, _CM_KEY_NODE::MaxValueDataLen, _CM_KEY_NODE::MaxValueNameLen, NTSTATUS(), NULL, PagedPool, TRUE, _CELL_DATA::u, _CM_KEY_NODE::ValueList, and ValueName.
|
|
Definition at line 731 of file cmsavres.c. References ASSERT, Cell, CmpFlushNotify(), CmpLockRegistryExclusive(), CmpRefreshWorkerRoutine(), CmpSearchKeyControlBlockTree(), CmpUnlockRegistry(), CmpWorker(), _REGISTRY_COMMAND::Command, CommandArea, _CM_KEY_NODE::Flags, HCELL_INDEX, _REGISTRY_COMMAND::Hive, Hive, HIVE_NOLAZYFLUSH, _HHIVE::HiveFlags, HiveList, HvGetCell, KEY_HIVE_ENTRY, _CM_NOTIFY_BLOCK::KeyBody, _CELL_DATA::_u::KeyNode, NULL, PAGED_CODE, REG_CMD_REFRESH_HIVE, SeSinglePrivilegeCheck(), SeTcbPrivilege, TRUE, _CELL_DATA::u, and Volatile. Referenced by CmRestoreKey().
|
|
Definition at line 684 of file cmsavres.c. References Context1, _CM_KEY_CONTROL_BLOCK::Delete, KCB_WORKER_CONTINUE, KCB_WORKER_DELETE, _CM_KEY_CONTROL_BLOCK::KeyCell, _CM_KEY_CONTROL_BLOCK::KeyHive, NULL, PAGED_CODE, and TRUE. Referenced by CmpRefreshHive().
|
|
Definition at line 1261 of file cmsavres.c. References _REGISTRY_COMMAND::Buffer, CM_SAVEKEYBUFSIZE, _REGISTRY_COMMAND::CmHive, CmpFileFlush(), CmpFileWrite(), CmpLockRegistryExclusive(), CmpStashBuffer, CmpUnlockRegistry(), CmpWorker(), _REGISTRY_COMMAND::Command, CommandArea, CMP_OFFSET_ARRAY::DataBuffer, CMP_OFFSET_ARRAY::DataLength, ErrorExit(), ExAllocatePoolWithQuota, EXCEPTION_EXECUTE_HANDLER, ExFreePool(), _CMHIVE::FileHandles, CMP_OFFSET_ARRAY::FileOffset, _REGISTRY_COMMAND::FileSize, _REGISTRY_COMMAND::FileType, HBLOCK_SIZE, HFILE_TYPE_EXTERNAL, HFILE_TYPE_PRIMARY, _HBASE_BLOCK::Length, NT_SUCCESS, NTSTATUS(), NULL, _REGISTRY_COMMAND::Offset, Offset, PAGED_CODE, PagedPoolCacheAligned, REG_CMD_HIVE_READ, _HBASE_BLOCK::Sequence1, _HBASE_BLOCK::Sequence2, and _REGISTRY_COMMAND::Status. Referenced by CmSaveKey().
|
|
Definition at line 97 of file cmsavres.c. References ASSERT, ASSERT_CM_LOCK_OWNED_EXCLUSIVE, _HHIVE::BaseBlock, _CM_INDEX::Cell, Cell, _CM_KEY_NODE::ChildHiveReference, CM_KCB_SUBKEY_HINT, CM_KEY_FAST_LEAF, CM_KEY_INDEX_ROOT, CML_MAJOR, CMLOG, CmpCleanUpKcbValueCache(), CmpCopyKeyPartial(), CmpCopyTree, CmpDeleteTree(), CmpDestroyTemporaryHive(), CmpFreeKeyByCell(), CmpInitializeHive(), CmpLoadHiveVolatile(), CmpLockRegistryExclusive(), CmpMasterHive, CmpProfileLoaded, CmpRefreshHive(), CmpReportNotify(), CmpSearchForOpenSubKeys(), CmpSetGlobalQuotaAllowed(), CmpUnlockRegistry(), CMS_SAVRES, _CM_KEY_FAST_INDEX::Count, _CM_KEY_INDEX::Count, DCmCheckRegistry, ExFreePoolWithTag, FALSE, _CM_KEY_NODE::Flags, HCELL_INDEX, HCELL_NIL, HFILE_TYPE_PRIMARY, HINIT_FILE, _CMHIVE::Hive, Hive, HSTORAGE_TYPE, HvGetCell, HvGetCellType, HvReallocateCell(), KEY_COMP_NAME, KEY_HIVE_ENTRY, _CM_KEY_REFERENCE::KeyCell, _CELL_DATA::_u::KeyIndex, _CELL_DATA::_u::KeyNode, _CM_KEY_FAST_INDEX::List, _CM_KEY_INDEX::List, _CM_KEY_NODE::Name, Name, _CM_KEY_NODE::NameLength, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, _CM_KEY_NODE::Parent, PHCELL_INDEX, PROTECTED_POOL, _HBASE_BLOCK::RootCell, _CM_KEY_INDEX::Signature, _CM_KEY_NODE::SubKeyCounts, _CM_KEY_NODE::SubKeyLists, TRUE, and _CELL_DATA::u. Referenced by NtRestoreKey().
|
|
Definition at line 862 of file cmsavres.c. References ASSERT, _HHIVE::BaseBlock, Cell, CM_WRAP_LIMIT, CML_FLOW, CML_MAJOR, CMLOG, CmpCopyKeyPartial(), CmpCopyTree, CmpCreateTemporaryHive(), CmpDestroyTemporaryHive(), CmpGlobalQuotaAllowed, CmpGlobalQuotaUsed, CmpGlobalQuotaWarning, CmpLockRegistryExclusive(), CmpMasterHive, CmpSaveKeyByFileCopy(), CmpUnlockRegistry(), CMS_SAVRES, DCmCheckRegistry, _HHIVE::DirtyCount, FALSE, _CMHIVE::FileHandles, _CM_KEY_NODE::Flags, HCELL_INDEX, HCELL_NIL, HFILE_TYPE_EXTERNAL, _CMHIVE::Hive, Hive, HIVE_NOLAZYFLUSH, _HHIVE::HiveFlags, HvGetCell, HvWriteHive(), _CELL_DATA::_u::KeyNode, NTSTATUS(), NULL, PAGED_CODE, _HBASE_BLOCK::RootCell, TRUE, _CELL_DATA::u, and USHORT. Referenced by NtSaveKey().
|
|
Definition at line 1047 of file cmsavres.c. References ASSERT, _HHIVE::BaseBlock, CM_WRAP_LIMIT, CML_FLOW, CML_MAJOR, CMLOG, CmpCopyKeyPartial(), CmpCopyTree, CmpCreateTemporaryHive(), CmpDestroyTemporaryHive(), CmpGlobalQuotaAllowed, CmpGlobalQuotaUsed, CmpGlobalQuotaWarning, CmpLockRegistryExclusive(), CmpMergeKeyValues(), CmpMergeTrees, CmpUnlockRegistry(), CMS_SAVRES, DCmCheckRegistry, _HHIVE::DirtyCount, FALSE, _CMHIVE::FileHandles, _CM_KEY_NODE::Flags, HCELL_INDEX, HCELL_NIL, HFILE_TYPE_EXTERNAL, _CMHIVE::Hive, Hive, HIVE_NOLAZYFLUSH, _HHIVE::HiveFlags, HvGetCell, HvWriteHive(), _CELL_DATA::_u::KeyNode, NTSTATUS(), NULL, PAGED_CODE, _HBASE_BLOCK::RootCell, TRUE, _CELL_DATA::u, and USHORT. Referenced by NtSaveMergedKeys().
|
|
Definition at line 34 of file cmsavres.c. |
|
Definition at line 36 of file cmsavres.c. Referenced by CmpClaimGlobalQuota(), CmpReleaseGlobalQuota(), CmQueryRegistryQuotaInformation(), CmSaveKey(), and CmSaveMergedKeys(). |
|
Definition at line 35 of file cmsavres.c. |
|
Definition at line 29 of file cmsavres.c. |
|
Definition at line 31 of file cmsavres.c. |
|
Definition at line 33 of file cmsavres.c. |