CmpDoLocalizeNextHive
char __fastcall CmpDoLocalizeNextHive(_BYTE *a1, _QWORD *a2){
char v2;
_ETHREAD *CurrentThread;
_CMHIVE *i;
_CMHIVE *NextActiveHive;
int locked;
v2 = 0;
*a2 = 10000000i64 * (unsigned int)dword_140C00584;
*a1 = 0;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
--*((_WORD *)CurrentThread + 242);
if( ExAcquireRundownProtection((PEX_RUNDOWN_REF)&CmpShutdownRundown) )
{
for( i = 0i64; ; i = NextActiveHive )
{
NextActiveHive = CmpGetNextActiveHive(i);
if( !NextActiveHive )
break;
CmpLockRegistry();
locked = HvHiveConvertLockedPagesToCowByPolicy((INT64)NextActiveHive);
CmpUnlockRegistry();
if( locked < 0 )
{
v2 = 1;
break;
}
}
ExReleaseRundownProtection((PEX_RUNDOWN_REF)&CmpShutdownRundown);
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
}
else
{
KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
return 1;
}
return v2;
}Referenced by:
No references.