ReactOS 0.4.16-dev-92-g0c2cdca
|
Go to the source code of this file.
Macros | |
#define | NDEBUG |
Functions | |
static VOID | CmpRemoveFastIndexKeyCell (_Inout_ PCM_KEY_FAST_INDEX FastIndex, _In_ ULONG Index, _In_ BOOLEAN UpdateCount) |
Removes a cell from a fast key index. | |
static VOID | CmpRemoveIndexKeyCell (_Inout_ PCM_KEY_INDEX KeyIndex, _In_ ULONG Index) |
Removes a cell from a normal key index. | |
static VOID | CmpRemoveValueFromValueList (_Inout_ PCM_KEY_NODE ValueListNode, _Inout_ PCELL_DATA ValueListData, _In_ ULONG Index) |
Removes a cell from a key value list node. | |
static BOOLEAN | CmpRemoveSubkeyInRoot (_In_ PHHIVE Hive, _In_ PCM_KEY_INDEX RootIndex, _In_ HCELL_INDEX TargetKey) |
Removes the offending subkey from a root index. | |
static BOOLEAN | CmpRemoveSubKeyInLeaf (_In_ PHHIVE Hive, _In_ PCM_KEY_NODE KeyNode, _In_ PCM_KEY_INDEX Leaf, _In_ HCELL_INDEX TargetKey) |
Removes the offending subkey from a leaf index. | |
BOOLEAN CMAPI | CmIsSelfHealEnabled (_In_ BOOLEAN FixHive) |
Checks if self healing is permitted by the kernel and/or bootloader. Self healing is also triggered if such a request was prompted by the user to fix a broken hive. Such a request tipically comes from a registry repair tool such as the ReactOS Check Registry Utility. | |
BOOLEAN CMAPI | CmpRepairParentKey (_Inout_ PHHIVE Hive, _In_ HCELL_INDEX TargetKey, _In_ HCELL_INDEX ParentKey, _In_ BOOLEAN FixHive) |
Repairs the parent key from damage by removing the offending subkey cell. | |
BOOLEAN CMAPI | CmpRepairParentNode (_Inout_ PHHIVE Hive, _In_ HCELL_INDEX CurrentCell, _In_ HCELL_INDEX ParentCell, _Inout_ PCELL_DATA CellData, _In_ BOOLEAN FixHive) |
Repairs the parent of the node from damage due to parent cell and parent node incosistency. | |
BOOLEAN CMAPI | CmpRepairKeyNodeSignature (_Inout_ PHHIVE Hive, _In_ HCELL_INDEX CurrentCell, _Inout_ PCELL_DATA CellData, _In_ BOOLEAN FixHive) |
Repairs the key node signature from damage due to signature corruption. | |
BOOLEAN CMAPI | CmpRepairClassOfNodeKey (_Inout_ PHHIVE Hive, _In_ HCELL_INDEX CurrentCell, _Inout_ PCELL_DATA CellData, _In_ BOOLEAN FixHive) |
Repairs the class from damage due to class corruption within the node key. | |
BOOLEAN CMAPI | CmpRepairValueListCount (_Inout_ PHHIVE Hive, _In_ HCELL_INDEX CurrentCell, _In_ ULONG ListCountIndex, _Inout_ PCELL_DATA ValueListData, _In_ BOOLEAN FixHive) |
Repairs the value list count of key due to corruption. The process involves by removing one damaged value less from the list. | |
BOOLEAN CMAPI | CmpRepairValueList (_Inout_ PHHIVE Hive, _In_ HCELL_INDEX CurrentCell, _In_ BOOLEAN FixHive) |
Repairs the value list due to corruption. The process involes by purging the whole damaged list. | |
BOOLEAN CMAPI | CmpRepairSubKeyCounts (_Inout_ PHHIVE Hive, _In_ HCELL_INDEX CurrentCell, _In_ ULONG Count, _Inout_ PCELL_DATA CellData, _In_ BOOLEAN FixHive) |
Repairs the subkey list count due to corruption. The process involves by fixing the count itself with a sane count. | |
BOOLEAN CMAPI | CmpRepairSubKeyList (_Inout_ PHHIVE Hive, _In_ HCELL_INDEX CurrentCell, _Inout_ PCELL_DATA CellData, _In_ BOOLEAN FixHive) |
Repairs the subkey list due to corruption. The process involves by purging the whole damaged subkeys list. | |
Variables | |
BOOLEAN | CmpSelfHeal |
ULONG | CmpBootType |
Checks if self healing is permitted by the kernel and/or bootloader. Self healing is also triggered if such a request was prompted by the user to fix a broken hive. Such a request tipically comes from a registry repair tool such as the ReactOS Check Registry Utility.
[in] | FixHive | If set to TRUE, self heal is triggered and the target hive will be fixed. Otherwise the hive will not be fixed. |
Definition at line 369 of file cmheal.c.
Referenced by CmpRepairClassOfNodeKey(), CmpRepairKeyNodeSignature(), CmpRepairParentKey(), CmpRepairParentNode(), CmpRepairSubKeyCounts(), CmpRepairSubKeyList(), CmpRepairValueList(), CmpRepairValueListCount(), HvpInitializeMemoryHive(), HvpRecoverDataFromLog(), and HvpRecoverHeaderFromLog().
|
static |
Removes a cell from a fast key index.
[in,out] | FastIndex | The fast key index where a cell has to be removed. |
[in] | Index | The index which points to the location of the cell that is to be removed. |
[in] | UpdateCount | If set to TRUE, the function will update the fast index count accordingly by one value less. If set to FALSE, the count won't be updated. See Remarks for further information. |
Definition at line 47 of file cmheal.c.
Referenced by CmpRemoveSubKeyInLeaf(), and CmpRemoveSubkeyInRoot().
|
static |
Removes a cell from a normal key index.
[in,out] | KeyIndex | The key index where a cell has to be removed. |
[in] | Index | The index which points to the location of the cell that is to be removed. |
Definition at line 83 of file cmheal.c.
Referenced by CmpRemoveSubKeyInLeaf(), and CmpRemoveSubkeyInRoot().
|
static |
Removes the offending subkey from a leaf index.
[in] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | KeyNode | A pointer to a key node of the parent. This node is used by the function to mark the whole subkeys list of the parent dirty. |
[in] | Leaf | A pointer to a leaf key index of which the offending subkey is to be removed from. |
[in] | TargetKey | The offending target subkey to remove. |
Definition at line 281 of file cmheal.c.
Referenced by CmpRepairParentKey().
|
static |
Removes the offending subkey from a root index.
[in] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | RootIndex | The root index where a leaf is obtained from. Such leaf is used to check deep down the leaf for the offending subkey. |
[in] | TargetKey | The offending target subkey to be removed. |
Definition at line 164 of file cmheal.c.
Referenced by CmpRepairParentKey().
|
static |
Removes a cell from a key value list node.
[in,out] | ValueListNode | The value list node which is used by the function to update the value list count. |
[in,out] | ValueListData | The value list data of which a cell has to be removed. |
[in] | Index | The index which points to the location of the cell that is to be removed. |
Definition at line 121 of file cmheal.c.
Referenced by CmpRepairValueListCount().
BOOLEAN CMAPI CmpRepairClassOfNodeKey | ( | _Inout_ PHHIVE | Hive, |
_In_ HCELL_INDEX | CurrentCell, | ||
_Inout_ PCELL_DATA | CellData, | ||
_In_ BOOLEAN | FixHive | ||
) |
Repairs the class from damage due to class corruption within the node key.
[in,out] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | CurrentCell | The current cell to be marked as dirty. |
[in,out] | CellData | The cell data of the current cell of which its class is to be repaired. |
[in] | FixHive | If set to TRUE, self heal is triggered and the target hive will be fixed. Otherwise the hive will not be fixed. |
Definition at line 637 of file cmheal.c.
Referenced by CmpValidateKey().
BOOLEAN CMAPI CmpRepairKeyNodeSignature | ( | _Inout_ PHHIVE | Hive, |
_In_ HCELL_INDEX | CurrentCell, | ||
_Inout_ PCELL_DATA | CellData, | ||
_In_ BOOLEAN | FixHive | ||
) |
Repairs the key node signature from damage due to signature corruption.
[in,out] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | CurrentCell | The current cell to be marked as dirty. |
[in,out] | CellData | The cell data of the current cell of which its signature is to be repaired. |
[in] | FixHive | If set to TRUE, self heal is triggered and the target hive will be fixed. Otherwise the hive will not be fixed. |
Definition at line 585 of file cmheal.c.
Referenced by CmpValidateKey().
BOOLEAN CMAPI CmpRepairParentKey | ( | _Inout_ PHHIVE | Hive, |
_In_ HCELL_INDEX | TargetKey, | ||
_In_ HCELL_INDEX | ParentKey, | ||
_In_ BOOLEAN | FixHive | ||
) |
Repairs the parent key from damage by removing the offending subkey cell.
[in,out] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | TargetKey | The offending target cell to remove from the parent. |
[in] | ParentKey | The damaged parent key cell to heal. |
[in] | FixHive | If set to TRUE, self heal is triggered and the target hive will be fixed. Otherwise the hive will not be fixed. |
Definition at line 409 of file cmheal.c.
Referenced by CmpValidateRegistryInternal().
BOOLEAN CMAPI CmpRepairParentNode | ( | _Inout_ PHHIVE | Hive, |
_In_ HCELL_INDEX | CurrentCell, | ||
_In_ HCELL_INDEX | ParentCell, | ||
_Inout_ PCELL_DATA | CellData, | ||
_In_ BOOLEAN | FixHive | ||
) |
Repairs the parent of the node from damage due to parent cell and parent node incosistency.
[in,out] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | CurrentCell | The current cell to be marked as dirty. |
[in] | ParentCell | The sane parent cell which is used by the function for new parent node assignment. |
[in,out] | CellData | The cell data of the current cell of which its parent node is to be repaired. |
[in] | FixHive | If set to TRUE, self heal is triggered and the target hive will be fixed. Otherwise the hive will not be fixed. |
Definition at line 532 of file cmheal.c.
Referenced by CmpValidateKey().
BOOLEAN CMAPI CmpRepairSubKeyCounts | ( | _Inout_ PHHIVE | Hive, |
_In_ HCELL_INDEX | CurrentCell, | ||
_In_ ULONG | Count, | ||
_Inout_ PCELL_DATA | CellData, | ||
_In_ BOOLEAN | FixHive | ||
) |
Repairs the subkey list count due to corruption. The process involves by fixing the count itself with a sane count.
[in,out] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | CurrentCell | The current cell to be marked as dirty. |
[in] | Count | The healthy count which is used by the function to fix the subkeys list count. |
[in,out] | CellData | The cell data of the current cell of which its subkeys list is to be fixed. |
[in] | FixHive | If set to TRUE, self heal is triggered and the target hive will be fixed. Otherwise the hive will not be fixed. |
Definition at line 829 of file cmheal.c.
Referenced by CmpValidateSubKeyList().
BOOLEAN CMAPI CmpRepairSubKeyList | ( | _Inout_ PHHIVE | Hive, |
_In_ HCELL_INDEX | CurrentCell, | ||
_Inout_ PCELL_DATA | CellData, | ||
_In_ BOOLEAN | FixHive | ||
) |
Repairs the subkey list due to corruption. The process involves by purging the whole damaged subkeys list.
[in,out] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | CurrentCell | The current cell to be marked as dirty. |
[in,out] | CellData | The cell data of the current cell of which its subkeys list is to be fixed. |
[in] | FixHive | If set to TRUE, self heal is triggered and the target hive will be fixed. Otherwise the hive will not be fixed. |
Definition at line 883 of file cmheal.c.
Referenced by CmpValidateKey().
BOOLEAN CMAPI CmpRepairValueList | ( | _Inout_ PHHIVE | Hive, |
_In_ HCELL_INDEX | CurrentCell, | ||
_In_ BOOLEAN | FixHive | ||
) |
Repairs the value list due to corruption. The process involes by purging the whole damaged list.
[in,out] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | CurrentCell | The current cell to be marked as dirty. |
[in] | FixHive | If set to TRUE, self heal is triggered and the target hive will be fixed. Otherwise the hive will not be fixed. |
Definition at line 765 of file cmheal.c.
Referenced by CmpValidateKey().
BOOLEAN CMAPI CmpRepairValueListCount | ( | _Inout_ PHHIVE | Hive, |
_In_ HCELL_INDEX | CurrentCell, | ||
_In_ ULONG | ListCountIndex, | ||
_Inout_ PCELL_DATA | ValueListData, | ||
_In_ BOOLEAN | FixHive | ||
) |
Repairs the value list count of key due to corruption. The process involves by removing one damaged value less from the list.
[in,out] | Hive | A pointer to a hive descriptor containing faulty data. |
[in] | CurrentCell | The current cell to be marked as dirty. |
[in] | ListCountIndex | The value count index which points to the actual value in the list to be removed. |
[in,out] | ValueListData | The value list cell data containing the actual list of which the damaged is to be removed from. |
[in] | FixHive | If set to TRUE, self heal is triggered and the target hive will be fixed. Otherwise the hive will not be fixed. |
Definition at line 696 of file cmheal.c.
Referenced by CmpValidateValueListByCount().
|
extern |
Definition at line 62 of file cmdata.c.
Referenced by CmIsSelfHealEnabled(), and CmpInitializeSystemHive().
|
extern |
Definition at line 64 of file cmdata.c.
Referenced by CmIsSelfHealEnabled(), and CmpInitializeSystemHive().