18 #define _CM_DEBUG_ 0x00 23 #define CM_HANDLE_DEBUG 0x01 24 #define CM_NAMESPACE_DEBUG 0x02 25 #define CM_SECURITY_DEBUG 0x04 26 #define CM_REFERENCE_DEBUG 0x08 27 #define CM_CALLBACK_DEBUG 0x10 33 #ifdef NEW_DEBUG_SYSTEM_IMPLEMENTED // enable when Debug Filters are implemented 34 #define CMTRACE DbgPrintEx 36 #define CMTRACE(x, ...) \ 37 if (x & CmpTraceLevel) DbgPrint(__VA_ARGS__) 40 #define CMTRACE(x, fmt, ...) DPRINT(fmt, ##__VA_ARGS__) 46 #define CM_KCB_SIGNATURE 'bKmC' 47 #define CM_KCB_INVALID_SIGNATURE '4FmC' 52 #define CM_KCB_NO_SUBKEY 0x01 53 #define CM_KCB_SUBKEY_ONE 0x02 54 #define CM_KCB_SUBKEY_HINT 0x04 55 #define CM_KCB_SYM_LINK_FOUND 0x08 56 #define CM_KCB_KEY_NON_EXIST 0x10 57 #define CM_KCB_NO_DELAY_CLOSE 0x20 58 #define CM_KCB_INVALID_CACHED_INFO 0x40 59 #define CM_KCB_READ_ONLY_KEY 0x80 64 #define CM_KEY_BODY_TYPE 0x6B793032 // 'ky02' 69 #if 0 // See sdk/lib/cmlib/cmlib.h 70 #define CMP_SECURITY_HASH_LISTS 64 72 #define CMP_MAX_CALLBACKS 100 77 #define CMP_HASH_IRRATIONAL 314159269 78 #define CMP_HASH_PRIME 1000000007 83 #define CMP_CREATE_FAKE_KCB 0x1 84 #define CMP_LOCK_HASHES_FOR_KCB 0x2 89 #define CMP_CREATE_KCB_KCB_LOCKED 0x2 90 #define CMP_OPEN_KCB_NO_CREATE 0x4 95 #define CMP_ENLIST_KCB_LOCKED_SHARED 0x1 96 #define CMP_ENLIST_KCB_LOCKED_EXCLUSIVE 0x2 101 #define CMP_UNLOCK_KCB_LOCKED 0x1 102 #define CMP_UNLOCK_REGISTRY_LOCKED 0x2 107 #define MAXIMUM_CACHED_DATA (2 * PAGE_SIZE) 112 #define CM_NUMBER_OF_MACHINE_HIVES 6 117 #define CM_KCBS_PER_PAGE \ 118 ((PAGE_SIZE - FIELD_OFFSET(CM_ALLOC_PAGE, AllocPage)) / sizeof(CM_KEY_CONTROL_BLOCK)) 119 #define CM_DELAYS_PER_PAGE \ 120 ((PAGE_SIZE - FIELD_OFFSET(CM_ALLOC_PAGE, AllocPage)) / sizeof(CM_DELAY_ALLOC))
struct _CM_SYSTEM_CONTROL_VECTOR * PCM_SYSTEM_CONTROL_VECTOR
NTSTATUS NTAPI CmpDeepCopyKey(IN PHHIVE SourceHive, IN HCELL_INDEX SrcKeyCell, IN PHHIVE DestinationHive, IN HSTORAGE_TYPE StorageType, OUT PHCELL_INDEX DestKeyCell OPTIONAL)
UNICODE_STRING CmClassName[]
struct _CM_NAME_HASH CM_NAME_HASH
NTSTATUS NTAPI CmpOpenHiveFiles(IN PCUNICODE_STRING BaseName, IN PCWSTR Extension OPTIONAL, OUT PHANDLE Primary, OUT PHANDLE Log, OUT PULONG PrimaryDisposition, OUT PULONG LogDisposition, IN BOOLEAN CreateAllowed, IN BOOLEAN MarkAsSystemHive, IN BOOLEAN NoBuffering, OUT PULONG ClusterSize OPTIONAL)
VOID NTAPI CmpFlushNotifiesOnKeyBodyList(IN PCM_KEY_CONTROL_BLOCK Kcb, IN BOOLEAN LockHeld)
BOOLEAN NTAPI CmpTestRegistryLockExclusive(VOID)
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
NTSTATUS NTAPI CmpCreateEvent(IN EVENT_TYPE EventType, OUT PHANDLE EventHandle, OUT PKEVENT *Event)
NTSTATUS NTAPI CmpCmdHiveOpen(IN POBJECT_ATTRIBUTES FileAttributes, IN PSECURITY_CLIENT_CONTEXT ImpersonationContext, IN OUT PBOOLEAN Allocate, OUT PCMHIVE *NewHive, IN ULONG CheckFlags)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
UNICODE_STRING CmpSystemStartOptions
BOOLEAN NTAPI CmpGetHiveName(IN PCMHIVE Hive, OUT PUNICODE_STRING HiveName)
VALUE_SEARCH_RETURN_TYPE NTAPI CmpQueryKeyValueData(IN PCM_KEY_CONTROL_BLOCK Kcb, IN PCM_CACHED_VALUE *CachedValue, IN PCM_KEY_VALUE ValueKey, IN BOOLEAN ValueIsCached, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, OUT PULONG ResultLength, OUT PNTSTATUS Status)
VOID NTAPI CmpLockHiveFlusherExclusive(IN PCMHIVE Hive)
PCM_KEY_BODY KeyBodyArray[4]
_In_ ULONG _In_ ULONG _In_ ULONG Length
VOID NTAPI CmpDereferenceKeyControlBlock(IN PCM_KEY_CONTROL_BLOCK Kcb)
enum _INTERFACE_TYPE INTERFACE_TYPE
struct _CM_SYSTEM_CONTROL_VECTOR CM_SYSTEM_CONTROL_VECTOR
_IRQL_requires_same_ _In_opt_ PVOID Argument1
struct _CM_NAME_CONTROL_BLOCK CM_NAME_CONTROL_BLOCK
VOID NTAPI DelistKeyBodyFromKCB(IN PCM_KEY_BODY KeyBody, IN BOOLEAN LockHeld)
struct _KEY_INFORMATION * PKEY_INFORMATION
NTSTATUS CmiCallRegisteredCallbacks(IN REG_NOTIFY_CLASS Argument1, IN PVOID Argument2)
_In_ ULONG _In_ KEY_INFORMATION_CLASS KeyInformationClass
enum _KEY_INFORMATION_CLASS KEY_INFORMATION_CLASS
UNICODE_STRING CmSymbolicLinkValueName
UNICODE_STRING CmTypeName[]
struct _CM_KEY_CONTROL_BLOCK * ParentKcb
struct _CM_KEY_HASH_TABLE_ENTRY CM_KEY_HASH_TABLE_ENTRY
EX_PUSH_LOCK CmpHiveListHeadLock
PUNICODE_STRING *NTAPI CmGetSystemDriverList(VOID)
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID _In_opt_ const WSK_CLIENT_CONNECTION_DISPATCH _In_opt_ PEPROCESS _In_opt_ PETHREAD _In_opt_ PSECURITY_DESCRIPTOR SecurityDescriptor
CACHED_CHILD_LIST ValueCache
NTSTATUS NTAPI 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)
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
struct _CM_CACHED_VALUE_INDEX CM_CACHED_VALUE_INDEX
PCM_KEY_CONTROL_BLOCK NTAPI CmpCreateKeyControlBlock(IN PHHIVE Hive, IN HCELL_INDEX Index, IN PCM_KEY_NODE Node, IN PCM_KEY_CONTROL_BLOCK Parent, IN ULONG Flags, IN PUNICODE_STRING KeyName)
struct _CM_NAME_HASH * PCM_NAME_HASH
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
VOID NTAPI CmpAddToDelayedClose(IN PCM_KEY_CONTROL_BLOCK Kcb, IN BOOLEAN LockHeldExclusively)
VOID NTAPI CmpInitDelayDerefKCBEngine(VOID)
ERESOURCE CmpRegistryLock
NTSTATUS NTAPI CmSetValueKey(IN PCM_KEY_CONTROL_BLOCK Kcb, IN PUNICODE_STRING ValueName, IN ULONG Type, IN PVOID Data, IN ULONG DataSize)
NTSTATUS NTAPI CmpAddToHiveFileList(IN PCMHIVE Hive)
struct _CM_NAME_CONTROL_BLOCK * PCM_NAME_CONTROL_BLOCK
BOOLEAN CmpFlushOnLockRelease
ULONG NTAPI CmCheckRegistry(IN PCMHIVE Hive, IN ULONG Flags)
VOID NTAPI CmpCmdInit(IN BOOLEAN SetupBoot)
VOID NTAPI CmpShutdownWorkers(VOID)
IN PVOID IN PVOID IN USHORT IN USHORT Size
BOOLEAN CmpNoVolatileCreates
BOOLEAN NTAPI CmpFileRead(IN PHHIVE RegistryHive, IN ULONG FileType, IN OUT PULONG FileOffset, OUT PVOID Buffer, IN SIZE_T BufferLength)
VALUE_SEARCH_RETURN_TYPE NTAPI CmpGetValueListFromCache(IN PCM_KEY_CONTROL_BLOCK Kcb, OUT PCELL_DATA *CellData, OUT BOOLEAN *IndexIsCached, OUT PHCELL_INDEX ValueListToRelease)
ULONG CmpDelayedCloseIndex
VOID NTAPI CmpCloseHiveFiles(IN PCMHIVE Hive)
VOID NTAPI CmpInitializeCache(VOID)
VOID NTAPI CmpDelayDerefKeyControlBlock(IN PCM_KEY_CONTROL_BLOCK Kcb)
UNICODE_STRING CmpLoadOptions
BOOLEAN NTAPI CmpFileWrite(IN PHHIVE RegistryHive, IN ULONG FileType, IN OUT PULONG FileOffset, IN PVOID Buffer, IN SIZE_T BufferLength)
struct _CM_INDEX_HINT_BLOCK * PCM_INDEX_HINT_BLOCK
VOID NTAPI CmpInitCallback(VOID)
struct _CM_NOTIFY_BLOCK CM_NOTIFY_BLOCK
PCM_NAME_CONTROL_BLOCK NameBlock
struct _CM_NAME_HASH_TABLE_ENTRY * PCM_NAME_HASH_TABLE_ENTRY
_In_ PKSNODE_CREATE _In_ ACCESS_MASK _Out_ PHANDLE NodeHandle
PUNICODE_STRING NTAPI CmpConstructName(IN PCM_KEY_CONTROL_BLOCK Kcb)
PCM_KEY_HASH_TABLE_ENTRY CmpCacheTable
PCM_KEY_CONTROL_BLOCK KeyControlBlock
struct _CM_NOTIFY_BLOCK * NotifyBlock
CMP_MF_TYPE CmpMultifunctionTypes[]
LARGE_INTEGER KcbLastWriteTime
_In_opt_ PALLOCATE_FUNCTION Allocate
NTSTATUS NTAPI CmpSecurityMethod(IN PVOID Object, IN SECURITY_OPERATION_CODE OperationType, IN PSECURITY_INFORMATION SecurityInformation, IN PSECURITY_DESCRIPTOR SecurityDescriptor, IN OUT PULONG CapturedLength, IN OUT PSECURITY_DESCRIPTOR *ObjectSecurityDescriptor, IN POOL_TYPE PoolType, IN PGENERIC_MAPPING GenericMapping)
VOID NTAPI CmpFreeDelayItem(PVOID Entry)
struct _CACHED_CHILD_LIST CACHED_CHILD_LIST
BOOLEAN NTAPI CmpTestHiveFlusherLockExclusive(IN PCMHIVE Hive)
ULONG KcbVirtControlFlags
struct _CM_KEY_SECURITY_CACHE CM_KEY_SECURITY_CACHE
ULONG HashKey[ANYSIZE_ARRAY]
struct _CM_PARSE_CONTEXT CM_PARSE_CONTEXT
NTSTATUS NTAPI CmLoadKey(IN POBJECT_ATTRIBUTES TargetKey, IN POBJECT_ATTRIBUTES SourceFile, IN ULONG Flags, IN PCM_KEY_BODY KeyBody)
VOID NTAPI CmpUnlockHiveFlusher(IN PCMHIVE Hive)
struct _HIVE_LIST_ENTRY HIVE_LIST_ENTRY
struct _CM_CELL_REMAP_BLOCK * PCM_CELL_REMAP_BLOCK
LIST_ENTRY CmpHiveListHead
VOID NTAPI CmpArmDelayedCloseTimer(VOID)
VOID NTAPI CmpDeleteKeyObject(IN PVOID Object)
struct _CM_KEY_CONTROL_BLOCK * RealKcb
VOID NTAPI CmSetLazyFlushState(IN BOOLEAN Enable)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
_In_ WDFDEVICE _In_ WDF_SPECIAL_FILE_TYPE FileType
USHORT KcbMaxValueNameLen
CM_KEY_REFERENCE ChildHive
KGUARDED_MUTEX CmpDelayedCloseTableLock
NTSTATUS NTAPI CmEnumerateValueKey(IN PCM_KEY_CONTROL_BLOCK Kcb, IN ULONG Index, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, IN PULONG ResultLength)
_Must_inspect_result_ _In_opt_ PFLT_FILTER Filter
VOID NTAPI CmpUnlockRegistry(VOID)
_In_ PEPROCESS _In_ KPROCESSOR_MODE AccessMode
struct _CM_KEY_CONTROL_BLOCK * PCM_KEY_CONTROL_BLOCK
PCM_KEY_CONTROL_BLOCK Kcb
VALUE_SEARCH_RETURN_TYPE NTAPI CmpGetValueKeyFromCache(IN PCM_KEY_CONTROL_BLOCK Kcb, IN PCELL_DATA CellData, IN ULONG Index, OUT PCM_CACHED_VALUE **CachedValue, OUT PCM_KEY_VALUE *Value, IN BOOLEAN IndexIsCached, OUT BOOLEAN *ValueIsCached, OUT PHCELL_INDEX CellToRelease)
LANGID PsInstallUILanguageId
struct _HIVE_LIST_ENTRY * PHIVE_LIST_ENTRY
struct _CACHED_CHILD_LIST * PCACHED_CHILD_LIST
struct _KEY_VALUE_INFORMATION * PKEY_VALUE_INFORMATION
static IDispatch External
POBJECT_TYPE CmpKeyObjectType
ULONG CmInstallUILanguageIdLength
NTSTATUS NTAPI CmpDoCreate(IN PHHIVE Hive, IN HCELL_INDEX Cell, IN PACCESS_STATE AccessState, IN PUNICODE_STRING Name, IN KPROCESSOR_MODE AccessMode, IN PCM_PARSE_CONTEXT Context, IN PCM_KEY_CONTROL_BLOCK ParentKcb, OUT PVOID *Object)
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION SecurityInformation
struct _CM_KEY_CONTROL_BLOCK CM_KEY_CONTROL_BLOCK
VOID NTAPI CmpLockRegistryExclusive(VOID)
struct _CM_KEY_SECURITY_CACHE_ENTRY * PCM_KEY_SECURITY_CACHE_ENTRY
PVOID NTAPI CmpAllocate(IN SIZE_T Size, IN BOOLEAN Paged, IN ULONG Tag)
_VALUE_SEARCH_RETURN_TYPE
BOOLEAN CmpShareSystemHives
struct _CM_DELAY_DEREF_KCB_ITEM CM_DELAY_DEREF_KCB_ITEM
_Must_inspect_result_ _In_ WDFDEVICE _In_ PCUNICODE_STRING KeyName
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE _In_ ACCESS_MASK _In_ POBJECT_ATTRIBUTES _Out_ PIO_STATUS_BLOCK _In_opt_ PLARGE_INTEGER _In_ ULONG FileAttributes
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
BOOLEAN NTAPI CmInitSystem1(VOID)
NTSTATUS NTAPI CmSaveKey(IN PCM_KEY_CONTROL_BLOCK Kcb, IN HANDLE FileHandle, IN ULONG Flags)
NTSTATUS NTAPI CmUnloadKey(IN PCM_KEY_CONTROL_BLOCK Kcb, IN ULONG Flags)
NTSTATUS NTAPI CmpSaveBootControlSet(IN USHORT ControlSet)
struct _CM_PARSE_CONTEXT * PCM_PARSE_CONTEXT
VOID NTAPI CmpFreeKeyControlBlock(IN PCM_KEY_CONTROL_BLOCK Kcb)
enum _EVENT_TYPE EVENT_TYPE
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
struct _CM_KEY_CONTROL_BLOCK * KeyControlBlock
VOID NTAPI CmpRemoveFromDelayedClose(IN PCM_KEY_CONTROL_BLOCK Kcb)
VOID NTAPI CmpFree(IN PVOID Ptr, IN ULONG Quota)
VOID NTAPI CmpSetGlobalQuotaAllowed(VOID)
BOOLEAN NTAPI CmpReferenceKeyControlBlock(IN PCM_KEY_CONTROL_BLOCK Kcb)
_Must_inspect_result_ _In_ ULONG Flags
struct _CM_DELAYED_CLOSE_ENTRY CM_DELAYED_CLOSE_ENTRY
NTSTATUS NTAPI CmDeleteKey(IN PCM_KEY_BODY KeyBody)
HIVE_LIST_ENTRY CmpMachineHiveList[]
DWORD * PSECURITY_INFORMATION
_In_ WDFCOLLECTION _In_ ULONG Index
NTSTATUS NTAPI CmSaveMergedKeys(IN PCM_KEY_CONTROL_BLOCK HighKcb, IN PCM_KEY_CONTROL_BLOCK LowKcb, IN HANDLE FileHandle)
LIST_ENTRY DelayedLRUList
NTSTATUS NTAPI CmpLinkHiveToMaster(IN PUNICODE_STRING LinkName, IN HANDLE RootDirectory, IN PCMHIVE CmHive, IN BOOLEAN Allocate, IN PSECURITY_DESCRIPTOR SecurityDescriptor)
struct _CM_DELAY_ALLOC * PCM_DELAY_ALLOC
VOID NTAPI CmpInitializeDelayedCloseTable(VOID)
BOOLEAN ExpInTextModeSetup
ULONG CmDefaultLanguageIdType
struct _KEY_INFORMATION KEY_INFORMATION
ULONG CmpConfigurationAreaSize
VOID NTAPI CmpDestroySecurityCache(IN PCMHIVE Hive)
VOID NTAPI CmpCleanUpKcbCacheWithLock(IN PCM_KEY_CONTROL_BLOCK Kcb, IN BOOLEAN LockHeldExclusively)
VOID NTAPI CmShutdownSystem(VOID)
struct _CM_KEY_BODY CM_KEY_BODY
CM_SYSTEM_CONTROL_VECTOR CmControlVector[]
struct _CM_CACHED_VALUE_INDEX * PCM_CACHED_VALUE_INDEX
VALUE_SEARCH_RETURN_TYPE NTAPI CmpFindValueByNameFromCache(IN PCM_KEY_CONTROL_BLOCK Kcb, IN PCUNICODE_STRING Name, OUT PCM_CACHED_VALUE **CachedValue, OUT ULONG *Index, OUT PCM_KEY_VALUE *Value, OUT BOOLEAN *ValueIsCached, OUT PHCELL_INDEX CellToRelease)
_In_opt_ PVOID _In_opt_ PUNICODE_STRING _In_ PSECURITY_DESCRIPTOR _In_ PACCESS_STATE AccessState
BOOLEAN NTAPI CmpGetNextName(IN OUT PUNICODE_STRING RemainingName, OUT PUNICODE_STRING NextName, OUT PBOOLEAN LastName)
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName
PVOID NTAPI CmpAllocateDelayItem(VOID)
LIST_ENTRY CmiKeyObjectListHead
VOID NTAPI CmpInitHiveViewList(IN PCMHIVE Hive)
NTSTATUS NTAPI CmpQueryKeyName(IN PVOID Object, IN BOOLEAN HasObjectName, OUT POBJECT_NAME_INFORMATION ObjectNameInfo, IN ULONG Length, OUT PULONG ReturnLength, IN KPROCESSOR_MODE AccessMode)
VOID NTAPI EnlistKeyBodyWithKCB(IN PCM_KEY_BODY KeyObject, IN ULONG Flags)
VOID NTAPI CmGetSystemControlValues(IN PVOID SystemHiveData, IN PCM_SYSTEM_CONTROL_VECTOR ControlVector)
struct _KEY_VALUE_INFORMATION KEY_VALUE_INFORMATION
NTSTATUS NTAPI CmpInitializeMachineDependentConfiguration(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
USHORT CmpUnknownBusCount
BOOLEAN CmpSpecialBootCondition
enum _REG_NOTIFY_CLASS REG_NOTIFY_CLASS
VALUE_SEARCH_RETURN_TYPE NTAPI CmpCompareNewValueDataAgainstKCBCache(IN PCM_KEY_CONTROL_BLOCK Kcb, IN PUNICODE_STRING ValueName, IN ULONG Type, IN PVOID Data, IN ULONG DataSize)
_Must_inspect_result_ _In_ WDFCMRESLIST List
SECURITY_DESCRIPTOR_RELATIVE Descriptor
struct _CM_KEY_SECURITY_CACHE_ENTRY CM_KEY_SECURITY_CACHE_ENTRY
NTSTATUS NTAPI CmFlushKey(IN PCM_KEY_CONTROL_BLOCK Kcb, IN BOOLEAN EclusiveLock)
struct _CM_NAME_HASH_TABLE_ENTRY CM_NAME_HASH_TABLE_ENTRY
HCELL_INDEX NTAPI CmpCopyCell(IN PHHIVE SourceHive, IN HCELL_INDEX SourceCell, IN PHHIVE DestinationHive, IN HSTORAGE_TYPE StorageType)
_Must_inspect_result_ _Out_ PLARGE_INTEGER FileSize
struct _CM_DELAYED_CLOSE_ENTRY * PCM_DELAYED_CLOSE_ENTRY
HANDLE CmpRegistryRootHandle
WCHAR CmInstallUILanguageId[]
NTSTATUS NTAPI CmpInitializeRegistryNode(IN PCONFIGURATION_COMPONENT_DATA CurrentEntry, IN HANDLE NodeHandle, OUT PHANDLE NewHandle, IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PUSHORT DeviceIndexTable)
VOID NTAPI CmpDestroyHiveViewList(IN PCMHIVE Hive)
NTSTATUS NTAPI CmpInitHiveFromFile(IN PCUNICODE_STRING HiveName, IN ULONG HiveFlags, OUT PCMHIVE *Hive, IN OUT PBOOLEAN New, IN ULONG CheckFlags)
VOID NTAPI CmpLazyFlush(VOID)
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
VOID NTAPI CmpCloseKeyObject(IN PEPROCESS Process OPTIONAL, IN PVOID Object, IN ACCESS_MASK GrantedAccess, IN ULONG ProcessHandleCount, IN ULONG SystemHandleCount)
NTSTATUS NTAPI CmpCreateLinkNode(IN PHHIVE Hive, IN HCELL_INDEX Cell, IN PACCESS_STATE AccessState, IN UNICODE_STRING Name, IN KPROCESSOR_MODE AccessMode, IN ULONG CreateOptions, IN PCM_PARSE_CONTEXT Context, IN PCM_KEY_CONTROL_BLOCK ParentKcb, OUT PVOID *Object)
_Must_inspect_result_ _In_ WDFCOLLECTION _In_ WDFOBJECT Object
_Must_inspect_result_ _In_opt_ WDFKEY _In_ PCUNICODE_STRING _In_ ACCESS_MASK _In_ ULONG CreateOptions
LIST_ENTRY KeyBodyListHead
struct _CM_KEY_HASH_TABLE_ENTRY * PCM_KEY_HASH_TABLE_ENTRY
VOID NTAPI CmpInitCmPrivateAlloc(VOID)
ULONG CmpTypeCount[MaximumType+1]
struct _CMP_MF_TYPE CMP_MF_TYPE
NTSTATUS NTAPI CmQueryKey(IN PCM_KEY_CONTROL_BLOCK Kcb, IN KEY_INFORMATION_CLASS KeyInformationClass, IN PVOID KeyInformation, IN ULONG Length, IN PULONG ResultLength)
static GENERIC_MAPPING GenericMapping
VOID NTAPI CmpLockRegistry(VOID)
_Must_inspect_result_ _In_opt_ PFLT_INSTANCE _Out_ PHANDLE FileHandle
struct _CMP_MF_TYPE * PCMP_MF_TYPE
ULONG CmpDelayedCloseSize
ULONG CmDefaultLanguageIdLength
VOID NTAPI CmpReleaseTwoKcbLockByKey(IN ULONG ConvKey1, IN ULONG ConvKey2)
struct _CM_CACHED_VALUE * PCM_CACHED_VALUE
EX_PUSH_LOCK CmpLoadHiveLock
_In_ PFCB _In_ LONGLONG FileOffset
NTSTATUS NTAPI CmpInitializeHive(OUT PCMHIVE *CmHive, IN ULONG OperationType, IN ULONG HiveFlags, IN ULONG FileType, IN PVOID HiveData OPTIONAL, IN HANDLE Primary, IN HANDLE Log, IN HANDLE External, IN PCUNICODE_STRING FileName OPTIONAL, IN ULONG CheckFlags)
BOOLEAN NTAPI CmpTestRegistryLock(VOID)
VOID NTAPI CmpCleanUpSubKeyInfo(IN PCM_KEY_CONTROL_BLOCK Kcb)
WCHAR CmDefaultLanguageId[]
BOOLEAN NTAPI CmpDoFlushAll(IN BOOLEAN ForceFlush)
VOID NTAPI CmpDereferenceKeyControlBlockWithLock(IN PCM_KEY_CONTROL_BLOCK Kcb, IN BOOLEAN LockHeldExclusively)
PCM_KEY_CONTROL_BLOCK KeyControlBlock
struct _CM_DELAY_ALLOC CM_DELAY_ALLOC
ACPI_PHYSICAL_ADDRESS ACPI_SIZE BOOLEAN Warn UINT32 *TableIdx UINT32 ACPI_TABLE_HEADER *OutTableHeader ACPI_TABLE_HEADER **OutTable ACPI_HANDLE UINT32 ACPI_WALK_CALLBACK ACPI_WALK_CALLBACK void void **ReturnValue UINT32 ACPI_BUFFER *RetPathPtr ACPI_OBJECT_HANDLER void *Data ACPI_OBJECT_HANDLER void **Data ACPI_STRING ACPI_OBJECT_LIST ACPI_BUFFER *ReturnObjectBuffer ACPI_DEVICE_INFO **ReturnBuffer ACPI_HANDLE Parent
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
struct _CM_KEY_SECURITY_CACHE * PCM_KEY_SECURITY_CACHE
VOID NTAPI CmpLockHiveFlusherShared(IN PCMHIVE Hive)
struct _CM_KEY_HASH CM_KEY_HASH
VOID NTAPI CmpInitializeHiveList(VOID)
BOOLEAN NTAPI CmpFileFlush(IN PHHIVE RegistryHive, IN ULONG FileType, IN OUT PLARGE_INTEGER FileOffset, IN ULONG Length)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
struct _CM_ALLOC_PAGE CM_ALLOC_PAGE
PCM_NAME_HASH_TABLE_ENTRY CmpNameCacheTable
PCM_KEY_CONTROL_BLOCK Kcb
NTSTATUS NTAPI CmpInitializeHardwareConfiguration(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
VOID NTAPI CmpRemoveKeyControlBlock(IN PCM_KEY_CONTROL_BLOCK Kcb)
struct _CM_ALLOC_PAGE * PCM_ALLOC_PAGE
_In_ ACCESS_MASK _In_opt_ POBJECT_ATTRIBUTES _In_ EVENT_TYPE EventType
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
BOOLEAN NTAPI CmpTestHiveFlusherLockShared(IN PCMHIVE Hive)
PCM_FULL_RESOURCE_DESCRIPTOR CmpConfigurationData
BOOLEAN NTAPI CmpFileSetSize(IN PHHIVE RegistryHive, IN ULONG FileType, IN ULONG FileSize, IN ULONG OldFileSize)
struct _CM_DELAY_DEREF_KCB_ITEM * PCM_DELAY_DEREF_KCB_ITEM
ULONG NTAPI CmpEnumerateOpenSubKeys(IN PCM_KEY_CONTROL_BLOCK RootKcb, IN BOOLEAN RemoveEmptyCacheEntries, IN BOOLEAN DereferenceOpenedEntries)
VOID NTAPI CmpReportNotify(IN PCM_KEY_CONTROL_BLOCK Kcb, IN PHHIVE Hive, IN HCELL_INDEX Cell, IN ULONG Filter)
VOID NTAPI CmpInitSecurityCache(IN PCMHIVE Hive)
enum _VALUE_SEARCH_RETURN_TYPE VALUE_SEARCH_RETURN_TYPE
_In_ ULONG _In_ KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass
PCM_KEY_SECURITY_CACHE CachedSecurity
struct _CM_CACHED_VALUE CM_CACHED_VALUE
_In_ PSECURITY_SUBJECT_CONTEXT _In_ BOOLEAN _In_ ACCESS_MASK _In_ ACCESS_MASK _Outptr_opt_ PPRIVILEGE_SET _In_ PGENERIC_MAPPING _In_ KPROCESSOR_MODE _Out_ PACCESS_MASK GrantedAccess
struct _CM_KEY_BODY * PCM_KEY_BODY
VOID NTAPI CmpInitCmPrivateDelayAlloc(VOID)
NTSTATUS NTAPI CmpDestroyHive(IN PCMHIVE CmHive)
struct _CM_NAME_HASH * NextHash
VOID NTAPI CmpCleanUpKcbValueCache(IN PCM_KEY_CONTROL_BLOCK Kcb)
struct _CM_CELL_REMAP_BLOCK CM_CELL_REMAP_BLOCK
VOID NTAPI CmpRemoveFromHiveFileList(IN PCMHIVE Hive)
BOOLEAN CmpForceForceFlush
VOID NTAPI CmpSetVersionData(VOID)
PSECURITY_DESCRIPTOR NTAPI CmpHiveRootSecurityDescriptor(VOID)
PCM_KEY_SECURITY_CACHE CachedSecurity
_Inout_opt_ PUNICODE_STRING Extension
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
PCM_INDEX_HINT_BLOCK IndexHint
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
base of all file and directory entries
VOID NTAPI CmpFlushNotify(IN PCM_KEY_BODY KeyBody, IN BOOLEAN LockHeld)
LANGID PsDefaultUILanguageId
struct _CM_KEY_HASH * NextHash
enum _KEY_VALUE_INFORMATION_CLASS KEY_VALUE_INFORMATION_CLASS
union _CM_CACHED_VALUE_INDEX::@1726 Data
NTSTATUS NTAPI CmDeleteValueKey(IN PCM_KEY_CONTROL_BLOCK Kcb, IN UNICODE_STRING ValueName)
ULONG CmInstallUILanguageIdType
struct _CM_NOTIFY_BLOCK * PCM_NOTIFY_BLOCK
PCM_KEY_CONTROL_BLOCK NTAPI CmpAllocateKeyControlBlock(VOID)
struct _CM_INDEX_HINT_BLOCK CM_INDEX_HINT_BLOCK
_Must_inspect_result_ _In_ WDFDMAENABLER _In_ _In_opt_ PWDF_OBJECT_ATTRIBUTES Attributes
_Inout_ PFCB _Inout_ PUNICODE_STRING RemainingName
NTSTATUS NTAPI CmEnumerateKey(IN PCM_KEY_CONTROL_BLOCK Kcb, IN ULONG Index, IN KEY_INFORMATION_CLASS KeyInformationClass, IN PVOID KeyInformation, IN ULONG Length, IN PULONG ResultLength)
_Out_ PHANDLE EventHandle
NTSTATUS NTAPI CmQueryValueKey(IN PCM_KEY_CONTROL_BLOCK Kcb, IN UNICODE_STRING ValueName, IN KEY_VALUE_INFORMATION_CLASS KeyValueInformationClass, IN PVOID KeyValueInformation, IN ULONG Length, IN PULONG ResultLength)
struct _CM_KEY_HASH * PCM_KEY_HASH
PULONG MinorVersion OPTIONAL
VOID NTAPI CmpAcquireTwoKcbLocksExclusiveByKey(IN ULONG ConvKey1, IN ULONG ConvKey2)