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