#include "cmp.h"
Go to the source code of this file.
Functions | |
NTSTATUS | CmpSetValueKeyExisting (IN PHHIVE Hive, IN HCELL_INDEX OldChild, IN PCELL_DATA Value, IN ULONG Type, IN PVOID Data, IN ULONG DataSize, IN ULONG StorageType, IN ULONG TempData) |
NTSTATUS | CmpSetValueKeyNew (IN PHHIVE Hive, IN PCM_KEY_NODE Parent, IN PUNICODE_STRING ValueName, IN ULONG Type, IN PVOID Data, IN ULONG DataSize, IN ULONG StorageType, IN ULONG TempData) |
NTSTATUS | CmDeleteValueKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN UNICODE_STRING ValueName) |
NTSTATUS | CmEnumerateKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN ULONG Index, IN KEY_INFORMATION_CLASS KeyInformationClass, IN PVOID KeyInformation, IN ULONG Length, IN PULONG ResultLength) |
NTSTATUS | CmEnumerateValueKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN ULONG Index, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, IN PULONG ResultLength) |
NTSTATUS | CmFlushKey (IN PHHIVE Hive, IN HCELL_INDEX Cell) |
NTSTATUS | CmQueryKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN KEY_INFORMATION_CLASS KeyInformationClass, IN PVOID KeyInformation, IN ULONG Length, IN PULONG ResultLength) |
NTSTATUS | CmQueryValueKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN UNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, IN PULONG ResultLength) |
NTSTATUS | CmQueryMultipleValueKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN PKEY_VALUE_ENTRY ValueEntries, IN ULONG EntryCount, IN PVOID ValueBuffer, IN OUT PULONG BufferLength, IN OPTIONAL PULONG ResultLength) |
NTSTATUS | CmSetValueKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN PUNICODE_STRING ValueName, IN ULONG Type, IN PVOID Data, IN ULONG DataSize) |
NTSTATUS | CmSetLastWriteTimeKey (IN PCM_KEY_CONTROL_BLOCK KeyControlBlock, IN PLARGE_INTEGER LastWriteTime) |
NTSTATUS | CmLoadKey (IN POBJECT_ATTRIBUTES TargetKey, IN POBJECT_ATTRIBUTES SourceFile, IN ULONG Flags) |
NTSTATUS | CmUnloadKey (IN PHHIVE Hive, IN HCELL_INDEX Cell, IN PCM_KEY_CONTROL_BLOCK Kcb) |
BOOLEAN | CmpDoFlushAll (VOID) |
NTSTATUS | CmReplaceKey (IN PHHIVE Hive, IN HCELL_INDEX Cell, IN PUNICODE_STRING NewHiveName, IN PUNICODE_STRING OldFileName) |
Variables | |
BOOLEAN | CmpNoWrite |
LIST_ENTRY | CmpHiveListHead |
BOOLEAN | CmpProfileLoaded |
BOOLEAN | CmpWasSetupBoot |
PUCHAR | CmpStashBuffer |
ULONG | CmpStashBufferSize |
UNICODE_STRING | CmSymbolicLinkValueName |
ULONG | CmpGlobalQuotaAllowed |
ULONG | CmpGlobalQuotaWarning |
|
Definition at line 92 of file cmapi.c. References ASSERT, ASSERT_CM_LOCK_OWNED_EXCLUSIVE, Cell, CML_WORKER, CMLOG, CmpCleanUpKcbValueCache(), CmpFindNameInList(), CmpFreeValue(), CmpIsHKeyValueSmall, CmpLockRegistryExclusive(), CmpMarkAllBinsReadOnly, CmpReportNotify(), CmpUnlockRegistry(), CMS_CM, _CHILD_LIST::Count, _CM_KEY_VALUE::Data, _CM_KEY_VALUE::DataLength, HCELL_INDEX, HCELL_NIL, Hive, HvFreeCell(), HvGetCell, HvMarkCellDirty(), HvReallocateCell(), KeQuerySystemTime(), _CELL_DATA::_u::KeyList, _CELL_DATA::_u::KeyValue, _CM_KEY_NODE::LastWriteTime, _CHILD_LIST::List, _CM_KEY_NODE::MaxValueDataLen, _CM_KEY_NODE::MaxValueNameLen, NTSTATUS(), PCHILD_LIST, PCM_KEY_CONTROL_BLOCK, _CELL_DATA::u, _CM_KEY_NODE::ValueList, and ValueName. Referenced by EhDeleteValueKey(), and NtDeleteValueKey().
|
|
Definition at line 285 of file cmapi.c. References Cell, CML_WORKER, CMLOG, CmpFindSubKeyByNumber(), CmpLockRegistry(), CmpMarkAllBinsReadOnly, CmpQueryKeyData(), CmpUnlockRegistry(), CMS_CM, EXCEPTION_EXECUTE_HANDLER, HCELL_INDEX, HCELL_NIL, Hive, HvGetCell, Index, and NTSTATUS(). Referenced by EhEnumerateKey(), and NtEnumerateKey().
|
|
Definition at line 416 of file cmapi.c. References CM_KCB_SYM_LINK_FOUND, CML_WORKER, CMLOG, CMP_GET_CACHED_ADDRESS, CmpDereferenceKeyControlBlockWithLock(), CmpGetValueKeyFromCache(), CmpGetValueListFromCache(), CmpLockRegistry(), CmpMakeValueCacheReadOnly, CmpMakeValueCacheReadWrite, CmpMarkAllBinsReadOnly, CmpQueryKeyValueData(), CmpUnlockRegistry(), CMS_CM, Hive, Index, LOCK_KCB_TREE, NTSTATUS(), PCM_KEY_VALUE, PPCM_CACHED_VALUE, and UNLOCK_KCB_TREE. Referenced by EhEnumerateValueKey(), and NtEnumerateValueKey().
|
|
Definition at line 564 of file cmapi.c. References CMHIVE, CML_MAJOR, CML_WORKER, CmLockHive, CMLOG, CmpDoFlushAll(), CmpMarkAllBinsReadOnly, CmpMasterHive, CmpNoWrite, CMS_CM, CMS_IO_ERROR, CmUnlockHive, DCmCheckRegistry, Hive, HvSyncHive(), NTSTATUS(), and PCMHIVE. Referenced by CmpWorker(), and CmpWorkerCommand().
|
|
Definition at line 1901 of file cmapi.c. References _REGISTRY_COMMAND::Allocate, ASSERT, _REGISTRY_COMMAND::CmHive, CmpLinkHiveToMaster(), CmpProfileLoaded, CmpSetGlobalQuotaAllowed(), CmpUnlockRegistry(), CmpWasSetupBoot, CmpWorker(), _REGISTRY_COMMAND::Command, FALSE, _REGISTRY_COMMAND::FileAttributes, _CMHIVE::Hive, HIVE_NOLAZYFLUSH, _HHIVE::HiveFlags, _REGISTRY_COMMAND::ImpersonationContext, KeGetCurrentThread, NT_SUCCESS, NTSTATUS(), REG_CMD_ADD_HIVE_LIST, REG_CMD_HIVE_CLOSE, REG_CMD_HIVE_OPEN, REGISTRY_COMMAND, _REGISTRY_COMMAND::RegistryLockAquired, SeCreateClientSecurity(), SECURITY_CLIENT_CONTEXT, SeDeleteClientSecurity, Status, _REGISTRY_COMMAND::Status, and TRUE. Referenced by NtLoadKey2().
|
|
Definition at line 2195 of file cmapi.c. References CmLockHive, CmpHiveListHead, CmpMasterHive, CmpNoWrite, CmUnlockHive, FALSE, _CMHIVE::Hive, HIVE_NOLAZYFLUSH, _HHIVE::HiveFlags, HiveList, HvSyncHive(), NT_SUCCESS, NTSTATUS(), Status, and TRUE. Referenced by CmFlushKey(), CmpLazyFlushWorker(), and CmpWorker().
|
|
Definition at line 1383 of file cmapi.c. References ASSERT, ASSERT_CM_LOCK_OWNED, BufferSize, CM_KEY_VALUE_SMALL, CM_KEY_VALUE_SPECIAL_SIZE, CM_MAX_STASH, CML_API, CMLOG, CmpIsHKeyValueSmall, CmpStashBuffer, CmpStashBufferSize, CMS_EXCEPTION, ExAllocatePoolWithTag, EXCEPTION_EXECUTE_HANDLER, ExFreePool(), HCELL_INDEX, HCELL_NIL, Hive, HvAllocateCell(), HvFreeCell(), HvGetCell, HvGetCellSize(), HvMarkCellDirty(), NULL, PAGE_SIZE, and PagedPool. Referenced by CmSetValueKey().
|
|
Definition at line 1619 of file cmapi.c. References ASSERT, CM_KEY_VALUE_SIGNATURE, CM_KEY_VALUE_SMALL, CM_KEY_VALUE_SPECIAL_SIZE, CM_MAX_REASONABLE_VALUES, CML_API, CMLOG, CmpCopyName(), CmpHKeyValueSize, CMS_EXCEPTION, _CM_KEY_VALUE::Data, _CM_KEY_VALUE::DataLength, EXCEPTION_EXECUTE_HANDLER, _CM_KEY_VALUE::Flags, HBLOCK_SIZE, HCELL_INDEX, HCELL_NIL, Hive, HvAllocateCell(), HvFreeCell(), HvGetCell, HvMarkCellDirty(), HvReallocateCell(), _CELL_DATA::_u::KeyList, _CELL_DATA::_u::KeyValue, _CM_KEY_VALUE::Name, _CM_KEY_VALUE::NameLength, ROUND_UP, _CM_KEY_VALUE::Signature, _CM_KEY_VALUE::Type, _CELL_DATA::u, VALUE_COMP_NAME, and ValueName. Referenced by CmSetValueKey().
|
|
Definition at line 647 of file cmapi.c. References CML_WORKER, CMLOG, CmpConstructName(), CmpLockRegistry(), CmpMarkAllBinsReadOnly, CmpQueryKeyData(), CmpUnlockRegistry(), CMS_CM, ExFreePoolWithTag, _KEY_INFORMATION::KeyNameInformation, Name, NTSTATUS(), NULL, PKEY_INFORMATION, PROTECTED_POOL, and USHORT. Referenced by EhQueryKey(), and NtQueryKey().
|
|
Definition at line 940 of file cmapi.c. References CML_WORKER, CMLOG, CmpFindValueByName, CmpIsHKeyValueSmall, CmpLockRegistry(), CmpMarkAllBinsReadOnly, CmpUnlockRegistry(), CMS_CM, _CM_KEY_VALUE::Data, _CM_KEY_VALUE::DataLength, FALSE, HCELL_INDEX, HCELL_NIL, Hive, HvGetCell, KPROCESSOR_MODE, NT_SUCCESS, NTSTATUS(), PAGED_CODE, ProbeAndReadUnicodeString, ProbeForRead, Status, TRUE, _CM_KEY_VALUE::Type, UserMode, ValueBuffer, and ValueName. Referenced by NtQueryMultipleValueKey().
|
|
Definition at line 804 of file cmapi.c. References Cell, CM_KCB_SYM_LINK_FOUND, CML_WORKER, CMLOG, CMP_GET_CACHED_ADDRESS, CmpDereferenceKeyControlBlockWithLock(), CmpFindValueByNameFromCache(), CmpLockRegistry(), CmpMakeValueCacheReadOnly, CmpMakeValueCacheReadWrite, CmpMarkAllBinsReadOnly, CmpQueryKeyValueData(), CmpUnlockRegistry(), CMS_CM, HCELL_INDEX, Index, LOCK_KCB_TREE, NTSTATUS(), PAGED_CODE, PHCELL_INDEX, UNLOCK_KCB_TREE, and ValueName. Referenced by EhQueryValueKey(), and NtQueryValueKey().
|
|
Definition at line 2293 of file cmapi.c. References _REGISTRY_COMMAND::Allocate, ASSERT, CHAR, CM_WRAP_LIMIT, _REGISTRY_COMMAND::CmHive, CML_BUGCHECK, CMLOG, CmpFree(), CmpGlobalQuotaAllowed, CmpGlobalQuotaWarning, CmpLockRegistryExclusive(), CmpUnlockRegistry(), CmpWorker(), CMS_SAVRES, _REGISTRY_COMMAND::Command, ErrorExit(), ExFreePool(), FALSE, _REGISTRY_COMMAND::FileAttributes, Hive, HIVE_HAS_BEEN_REPLACED, _HHIVE::HiveFlags, _CMHIVE::HiveList, HvFreeHive(), _REGISTRY_COMMAND::ImpersonationContext, _REGISTRY_COMMAND::NameInfoLength, _REGISTRY_COMMAND::NewName, NT_SUCCESS, NTSTATUS(), NULL, _REGISTRY_COMMAND::OldName, REG_CMD_HIVE_CLOSE, REG_CMD_HIVE_OPEN, REG_CMD_RENAME_HIVE, _REGISTRY_COMMAND::RegistryLockAquired, Status, _REGISTRY_COMMAND::Status, and TRUE. Referenced by NtReplaceKey().
|
|
Definition at line 1841 of file cmapi.c. References Cell, CML_WORKER, CMLOG, CmpLockRegistryExclusive(), CmpUnlockRegistry(), CMS_CM, HCELL_INDEX, Hive, HvMarkCellDirty(), _CM_KEY_NODE::LastWriteTime, NTSTATUS(), and TRUE. Referenced by NtSetInformationKey().
|
|
Definition at line 1087 of file cmapi.c. References ASSERT, ASSERT_CM_LOCK_OWNED_EXCLUSIVE, Cell, CM_KEY_VALUE_SMALL, CM_KEY_VALUE_SPECIAL_SIZE, CML_API, CML_WORKER, CMLOG, CmpCleanUpKcbValueCache(), CmpFindNameInList(), CmpLockRegistry(), CmpLockRegistryExclusive(), CmpMarkAllBinsReadOnly, CmpReportNotify(), CmpSetValueKeyExisting(), CmpSetValueKeyNew(), CmpUnlockRegistry(), CMS_CM, CMS_EXCEPTION, CmSymbolicLinkValueName, _CHILD_LIST::Count, _CM_KEY_VALUE::Data, _CM_KEY_VALUE::DataLength, EXCEPTION_EXECUTE_HANDLER, FALSE, HCELL_INDEX, HCELL_NIL, Hive, HvGetCell, HvGetCellType, HvMarkCellDirty(), KeQuerySystemTime(), KEY_SYM_LINK, _CELL_DATA::_u::KeyValue, _CM_KEY_NODE::LastWriteTime, _CHILD_LIST::List, _CM_KEY_NODE::MaxValueDataLen, _CM_KEY_NODE::MaxValueNameLen, NT_SUCCESS, NTSTATUS(), NULL, RtlEqualUnicodeString(), TRUE, _CM_KEY_VALUE::Type, _CELL_DATA::u, _CM_KEY_NODE::ValueList, and ValueName. Referenced by EhSetValueKey(), and NtSetValueKey().
|
|
Definition at line 2079 of file cmapi.c. References ASSERT, _HHIVE::BaseBlock, Cell, _REGISTRY_COMMAND::Cell, _REGISTRY_COMMAND::CmHive, CML_WORKER, CMLOG, CmpDestroyHive(), CmpFree(), CmpLockRegistryExclusive(), CmpSearchForOpenSubKeys(), CmpSearchKeyControlBlockTree(), CmpUnlockRegistry(), CmpWorker(), CMS_CM, _REGISTRY_COMMAND::Command, ExFreePool(), Hive, _REGISTRY_COMMAND::Hive, _CMHIVE::HiveLock, HvFreeHive(), NULL, REG_CMD_FLUSH_KEY, REG_CMD_HIVE_CLOSE, REG_CMD_REMOVE_HIVE_LIST, _HBASE_BLOCK::RootCell, and SearchIfExist. Referenced by NtUnloadKey().
|
|
Definition at line 37 of file cmapi.c. Referenced by CmpClaimGlobalQuota(), CmpSetGlobalQuotaAllowed(), CmReplaceKey(), CmSaveKey(), CmSaveMergedKeys(), and CmSetRegistryQuotaInformation(). |
|
Definition at line 38 of file cmapi.c. Referenced by CmpClaimGlobalQuota(), CmpComputeGlobalQuotaAllowed(), CmReplaceKey(), CmSaveKey(), CmSaveMergedKeys(), and CmSetRegistryQuotaInformation(). |
|
Definition at line 27 of file cmapi.c. Referenced by CmInitSystem1(), CmpDoFlushAll(), CmpInitializeHive(), CmpWorker(), and EhOpenHive(). |
|
Definition at line 25 of file cmapi.c. Referenced by CmFlushKey(), CmpDoFlushAll(), CmpFileFlush(), CmpFileWrite(), CmpInitializeHiveList(), CmpLazyFlush(), and CmpWorker(). |
|
Definition at line 29 of file cmapi.c. Referenced by CmLoadKey(), CmpDiskFullWarning(), CmpLoadHiveVolatile(), and CmRestoreKey(). |
|
Definition at line 32 of file cmapi.c. Referenced by CmInitSystem1(), CmpSaveKeyByFileCopy(), and CmpSetValueKeyExisting(). |
|
Definition at line 33 of file cmapi.c. Referenced by CmInitSystem1(), and CmpSetValueKeyExisting(). |
|
Definition at line 30 of file cmapi.c. Referenced by CmLoadKey(), and CmpWorker(). |
|
Definition at line 35 of file cmapi.c. Referenced by CmpCreateControlSet(), CmpGetSymbolicLink(), CmpInitializeRegistryNames(), CmpLinkKeyToHive(), CmSetAcpiHwProfile(), and CmSetValueKey(). |