#include "cmp.h"Go to the source code of this file.
Classes | |
| struct | _CM_HASH_ENTRY |
Defines | |
| #define | CM_HASH_STACK_SIZE 30 |
| #define | CmpStepThroughExit(h, c, n) |
| #define | CMP_PARSE_GOTO_NONE 0 |
| #define | CMP_PARSE_GOTO_CREATE 1 |
| #define | CMP_PARSE_GOTO_RETURN 2 |
| #define | CMP_PARSE_GOTO_RETURN2 3 |
Typedefs | |
| typedef _CM_HASH_ENTRY | CM_HASH_ENTRY |
| typedef _CM_HASH_ENTRY * | PCM_HASH_ENTRY |
Functions | |
| ULONG | CmpComputeHashValue (IN PCM_HASH_ENTRY HashStack, IN OUT ULONG *TotalSubkeys, IN ULONG BaseConvKey, IN PUNICODE_STRING RemainingName) |
| NTSTATUS | CmpCacheLookup (IN PCM_HASH_ENTRY HashStack, IN ULONG TotalRemainingSubkeys, OUT ULONG *MatchRemainSubkeyLevel, IN OUT PCM_KEY_CONTROL_BLOCK *Kcb, OUT PUNICODE_STRING RemainingName, OUT PHHIVE *Hive, OUT HCELL_INDEX *Cell) |
| VOID | CmpCacheAdd (IN PCM_HASH_ENTRY LastHashEntry, IN ULONG Count) |
| PCM_KEY_CONTROL_BLOCK | CmpAddInfoAfterParseFailure (PHHIVE Hive, HCELL_INDEX Cell, PCM_KEY_NODE Node, PCM_KEY_CONTROL_BLOCK kcb, PUNICODE_STRING NodeName) |
| BOOLEAN | CmpGetSymbolicLink (IN PHHIVE Hive, IN PCM_KEY_NODE Node, IN OUT PUNICODE_STRING ObjectName, IN OUT PCM_KEY_CONTROL_BLOCK SymbolicKcb, IN PUNICODE_STRING RemainingName) |
| NTSTATUS | CmpDoOpen (IN PHHIVE Hive, IN HCELL_INDEX Cell, IN PCM_KEY_NODE Node, IN PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN PCM_PARSE_CONTEXT Context, IN BOOLEAN CompleteKeyCached, IN OUT PCM_KEY_CONTROL_BLOCK *CachedKcb, IN PUNICODE_STRING KeyName, OUT PVOID *Object) |
| NTSTATUS | CmpCreateLinkNode (IN PHHIVE Hive, IN HCELL_INDEX Cell, IN PACCESS_STATE AccessState, IN UNICODE_STRING Name, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN PCM_PARSE_CONTEXT Context, IN PCM_KEY_CONTROL_BLOCK ParentKcb, OUT PVOID *Object) |
| NTSTATUS | CmpParseKey (IN PVOID ParseObject, IN PVOID ObjectType, IN OUT PACCESS_STATE AccessState, IN KPROCESSOR_MODE AccessMode, IN ULONG Attributes, IN OUT PUNICODE_STRING CompleteName, IN OUT PUNICODE_STRING RemainingName, IN OUT PVOID Context OPTIONAL, IN PSECURITY_QUALITY_OF_SERVICE SecurityQos OPTIONAL, OUT PVOID *Object) |
| BOOLEAN | CmpGetNextName (IN OUT PUNICODE_STRING RemainingName, OUT PUNICODE_STRING NextName, OUT PBOOLEAN Last) |
Variables | |
| ULONG | CmpCacheOnFlag = CM_CACHE_FAKE_KEY |
| PCMHIVE | CmpMasterHive |
| BOOLEAN | CmpNoMasterCreates |
| PCM_KEY_CONTROL_BLOCK | CmpKeyControlBlockRoot |
| UNICODE_STRING | CmSymbolicLinkValueName |
|
|
Definition at line 30 of file cmparse.c. Referenced by CmpComputeHashValue(), and CmpParseKey(). |
|
|
Definition at line 139 of file cmparse.c. Referenced by CmpParseKey(). |
|
|
Definition at line 138 of file cmparse.c. Referenced by CmpParseKey(). |
|
|
Definition at line 140 of file cmparse.c. Referenced by CmpParseKey(). |
|
|
Definition at line 141 of file cmparse.c. Referenced by CmpParseKey(). |
|
|
Value:
Definition at line 131 of file cmparse.c. Referenced by CmpParseKey(). |
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
Definition at line 2056 of file cmparse.c. References Cell, CM_CACHE_FAKE_KEY, CM_KCB_NO_SUBKEY, CM_KCB_SUBKEY_HINT, CM_KCB_SUBKEY_ONE, CM_KEY_FAST_LEAF, CM_MAX_CACHE_HINT_SIZE, CM_SUBKEY_HINT_LENGTH, CmpCacheOnFlag, CmpCreateKeyControlBlock(), CmpDereferenceKeyControlBlock(), ExAllocatePoolWithTag, ExFreePoolWithTag, FALSE, Hive, HvGetCell, Index, kcb(), _CM_KEY_FAST_INDEX::List, LOCK_KCB_TREE, _CM_INDEX::NameHint, PagedPool, PROTECTED_POOL, Size, Stable, _HHIVE::StorageTypeCount, _CM_KEY_NODE::SubKeyCounts, _CM_KEY_NODE::SubKeyLists, TRUE, UNLOCK_KCB_TREE, UseFastIndex, USHORT, and Volatile. Referenced by CmpParseKey().
|
|
||||||||||||
|
|
|
||||||||||||||||||||||||||||||||
|
Definition at line 1853 of file cmparse.c. References ASSERT, ASSERT_KEY_HASH, Cell, CM_KCB_KEY_NON_EXIST, CmpCacheTable, CmpCleanUpKcbCacheWithLock(), CmpCompareCompressedName(), CmpReferenceKeyControlBlock(), CmpRemoveFromDelayedClose(), CmpRemoveKeyControlBlock(), _CM_NAME_CONTROL_BLOCK::Compressed, _CM_KEY_CONTROL_BLOCK::ConvKey, FALSE, GET_HASH_ENTRY, Hive, KeyName, _CM_NAME_CONTROL_BLOCK::Name, _CM_KEY_CONTROL_BLOCK::NameBlock, _CM_NAME_CONTROL_BLOCK::NameLength, _CM_KEY_HASH::NextHash, NTSTATUS(), _CM_KEY_CONTROL_BLOCK::ParentKcb, RtlCompareUnicodeString(), _CM_KEY_CONTROL_BLOCK::TotalLevels, and TRUE. Referenced by CmpParseKey().
|
|
||||||||||||||||||||
|
Definition at line 1737 of file cmparse.c. References CM_HASH_STACK_SIZE, RtlUpcaseUnicodeChar(), and USHORT. Referenced by CmpParseKey().
|
|
||||||||||||||||||||||||||||||||||||||||
|
Definition at line 1252 of file cmparse.c. References ASSERT_CM_LOCK_OWNED_EXCLUSIVE, Cell, _CM_KEY_NODE::ChildHiveReference, _CM_KEY_NODE::ClassLength, CM_LINK_NODE_SIGNATURE, CML_FLOW, CML_MAJOR, CMLOG, CmpAddSubKey(), CmpCleanUpSubKeyInfo(), CmpCopyName(), CmpDoCreateChild(), CmpDoOpen(), CmpHKeyNodeSize, CmpMasterHive, CMS_PARSE, _CHILD_LIST::Count, FALSE, _CM_KEY_NODE::Flags, HCELL_INDEX, HCELL_NIL, _CMHIVE::Hive, Hive, HvAllocateCell(), HvFreeCell(), HvGetCell, kcb(), KeQuerySystemTime(), KEY_COMP_NAME, KEY_HIVE_ENTRY, KEY_HIVE_EXIT, KEY_NO_DELETE, _CM_KEY_REFERENCE::KeyCell, _CM_KEY_BODY::KeyControlBlock, _CM_KEY_REFERENCE::KeyHive, _CELL_DATA::_u::KeyNode, _CM_KEY_NODE::LastWriteTime, _CHILD_LIST::List, _CM_KEY_NODE::MaxClassLen, _CM_KEY_NODE::MaxNameLen, _CM_KEY_NODE::Name, Name, _CM_KEY_NODE::NameLength, NT_SUCCESS, NTSTATUS(), NULL, _CM_KEY_NODE::Parent, _CM_KEY_CONTROL_BLOCK::ParentKcb, _CM_KEY_NODE::Signature, Stable, Status, _CM_KEY_NODE::SubKeyCounts, _CM_KEY_NODE::SubKeyLists, _CELL_DATA::u, _CM_KEY_NODE::ValueList, and Volatile. Referenced by CmpParseKey().
|
|
||||||||||||||||||||||||||||||||||||||||||||||||
|
Definition at line 963 of file cmparse.c. References ASSERT, Cell, CM_KCB_SYM_LINK_FOUND, CML_FLOW, CML_MINOR, CMLOG, CmpCleanUpKcbValueCache(), CmpCreateKeyControlBlock(), CmpDereferenceKeyControlBlock(), CmpKeyObjectType, CmpReferenceKeyControlBlock(), CMS_PARSE, CMS_POOL, ENLIST_KEYBODY_IN_KEYBODY_LIST, FALSE, Hive, kcb(), KEY_BODY_TYPE, KEY_PREDEF_HANDLE, KEY_SYM_LINK, _CM_KEY_BODY::KeyControlBlock, KeyName, KPROCESSOR_MODE, LOCK_KCB_TREE, _CM_KEY_BODY::NotifyBlock, NT_SUCCESS, NTSTATUS(), NULL, ObCheckObjectAccess(), ObCreateObject(), ObDereferenceObject, _CM_KEY_BODY::Process, PsGetCurrentProcess, SeBackupPrivilege, SeRestorePrivilege, SeSinglePrivilegeCheck(), TRUE, _CM_KEY_BODY::Type, and UNLOCK_KCB_TREE. Referenced by CmpCreateLinkNode(), and CmpParseKey().
|
|
||||||||||||||||
|
Definition at line 860 of file cmparse.c. References FALSE, MAX_KEY_NAME_LENGTH, NULL, TRUE, and USHORT. Referenced by CmpParseKey(), and CmpWalkPath().
|
|
||||||||||||||||||||||||
|
Definition at line 1476 of file cmparse.c. References ASSERT, CM_KCB_SYM_LINK_FOUND, CML_FLOW, CML_MINOR, CMLOG, CmpCacheTable, CmpCleanUpKcbValueCache(), CmpConstructName(), CmpFindValueByName, CmpHashTableSize, CmpIsHKeyValueSmall, CmpReferenceKeyControlBlock(), CMS_PARSE, CmSymbolicLinkValueName, _CM_KEY_HASH::ConvKey, _CM_KEY_VALUE::Data, _CM_KEY_VALUE::DataLength, ExAllocatePool, ExFreePool(), ExFreePoolWithTag, FALSE, GET_HASH_ENTRY, HCELL_INDEX, HCELL_NIL, Hive, HvGetCell, Index, LOCK_KCB_TREE, _CM_KEY_HASH::NextHash, NT_SUCCESS, NTSTATUS(), NULL, PagedPool, PHCELL_INDEX, PROTECTED_POOL, RtlAppendUnicodeStringToString(), RtlUpcaseUnicodeChar(), Status, _CM_KEY_CONTROL_BLOCK::TotalLevels, TRUE, _CM_KEY_VALUE::Type, UNLOCK_KCB_TREE, and USHORT. Referenced by CmpParseKey().
|
|
||||||||||||||||||||||||||||||||||||||||||||
|
Definition at line 145 of file cmparse.c. References Cell, CM_HASH_STACK_SIZE, CM_KCB_CACHE_MASK, CM_KCB_KEY_NON_EXIST, CM_KCB_NO_SUBKEY, CM_KCB_SUBKEY_ONE, CM_SUBKEY_HINT_LENGTH, CML_FLOW, CML_MAJOR, CML_MINOR, CMLOG, CMP_PARSE_GOTO_CREATE, CMP_PARSE_GOTO_NONE, CMP_PARSE_GOTO_RETURN, CMP_PARSE_GOTO_RETURN2, CmpAddInfoAfterParseFailure(), CmpCacheLookup(), CmpComputeHashValue(), CmpCreateKeyControlBlock(), CmpCreateLinkNode(), CmpDereferenceKeyControlBlock(), CmpDereferenceKeyControlBlockWithLock(), CmpDoCreate(), CmpDoOpen(), CmpFindSubKeyByName(), CmpGetNextName(), CmpGetSymbolicLink(), CmpKeyObjectType, CmpMasterHive, CmpNoMasterCreates, CmpReferenceKeyControlBlock(), CmpRemoveKeyControlBlock(), CmpStepThroughExit, CMS_PARSE, _CM_PARSE_CONTEXT::CreateLink, _CM_PARSE_CONTEXT::Disposition, FALSE, HCELL_INDEX, HCELL_NIL, _CMHIVE::Hive, Hive, HvGetCell, Index, kcb(), KEY_SYM_LINK, _CM_KEY_CONTROL_BLOCK::KeyCell, _CM_KEY_CONTROL_BLOCK::KeyHive, _CM_KEY_CONTROL_BLOCK::KeyNode, LOCK_KCB_TREE, NT_SUCCESS, NTSTATUS(), NULL, PHCELL_INDEX, RtlUpcaseUnicodeChar(), TRUE, UNLOCK_KCB_TREE, and USHORT. Referenced by CmpCreateObjectTypes().
|
|
|
Definition at line 23 of file cmparse.c. Referenced by CmpAddInfoAfterParseFailure(). |
|
|
|
|
|
|
|
|
|
|
|
|
1.3.7