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