CmRegisterSystemHiveLimitCallback

UINT64 __stdcall CmRegisterSystemHiveLimitCallback(PVOID Ref){
  __int64 v1; 
  unsigned int v2; 
  if( Hive )
    v2 = 100 * (*(_DWORD *)(*(_QWORD *)(Hive + 64) + 40i64) + 4096) / (unsigned int)CmSystemHiveLimitSize;
  else
    v2 = 0;
  if( !CmpSystemHiveHysteresisCallback )
  {
    CmpSystemHiveHysteresisLow = 80;
    CmpSystemHiveHysteresisCallback = (__int64(__fastcall *)(_QWORD, _QWORD))PpSystemHiveLimitCallback;
    CmpSystemHiveHysteresisHigh = 90;
    CmpSystemHiveHysteresisContext = v1;
    CmpSystemHiveHysteresisLowSeen = 1;
    if( v2 >= 0x5A && (CmpSystemHiveHysteresisHighSeen = 1, CmpDoQueueSystemHiveHysteresis(v2)) )
      CmpSystemHiveHysteresisLowSeen = 0;
    else
      CmpSystemHiveHysteresisHighSeen = 0;
  }
  return v2;
}

Referenced by:

IopInitializePlugPlayServices