CmpRemoveHiveFromNamespace
INT64 __fastcall CmpRemoveHiveFromNamespace(_CMHIVE *Hive, _CM_KEY_CONTROL_BLOCK *RootKcb){
__int64 v2;
_CM_KEY_CONTROL_BLOCK *ParentKcb;
__int64 v4;
_CM_KEY_CONTROL_BLOCK *v5;
ParentKcb = RootKcb->ParentKcb;
v4 = v2;
v5 = ParentKcb->ParentKcb;
CmpLockHashEntryExclusiveByKcb((UINT64)ParentKcb);
CmpLockKcbExclusive((INT64)v5);
CmpLockKcbExclusive((INT64)ParentKcb);
HvLockHiveFlusherShared((INT64)ParentKcb->KeyHash.KeyHive);
CmpFreeKeyByCell((UINT64)ParentKcb->KeyHash.KeyHive, ParentKcb->KeyHash.KeyCell, 1);
CmpFlushNotifiesOnKeyBodyList((__int64)ParentKcb, 1i64, v4, 0);
CmpMarkKeyUnbacked((__int64)ParentKcb, v4);
CmpDiscardKcb((UINT64)ParentKcb, v4);
HvUnlockHiveFlusherShared((INT64)ParentKcb->KeyHash.KeyHive);
CmpUnlockKcb(ParentKcb);
CmpUnlockKcb(v5);
return CmpUnlockHashEntryByKcb((INT64)ParentKcb);
}Referenced by:
CmpCompleteUnloadKey
CmpLinkHiveToMaster