ExAcquireAutoExpandPushLockExclusive
VOID __fastcall ExAcquireAutoExpandPushLockExclusive(UINT64 P2, UINT64 P1){
_BYTE *v2;
_BYTE *v4;
int v5;
v2 = 0i64;
if( (P1 & 0xFFFFFFFC) != 0 )
KeBugCheckEx(0x152u, (unsigned int)P1, P2, 0i64, 0i64);
if( (P1 & 2) == 0 )
{
LODWORD(v4) = KeAbPreAcquire((PVOID)P2, 0i64, 0i64);
v2 = v4;
}
if( _interlockedbittestandset64((volatile signed __int32 *)P2, 0i64) )
ExfAcquirePushLockExclusiveEx((UINT64 *)P2, v2, (VOID *)P2);
v5 = *(_DWORD *)(P2 + 8);
if( (v5 & 1) != 0 )
ExpAcquireFannedOutPushLockExclusive((PVOID)(v5 & 0xFFFFFFF8), v2, (PVOID)P2);
if( v2 )
v2[26] |= 1u;
}Referenced by:
MiDeletePagablePteRange
MiFreePhysicalPageChain
MiFreePhysicalPages
MiLockAwePagesExclusive
MiLockAweVadsExclusive
MiLockLoaderEntry