ExpFindFastOwnerEntryForThread
INT64 *__stdcall ExpFindFastOwnerEntryForThread(INT64 a1, INT64 a2, CHAR a3, CHAR a4){
INT64 *v4;
INT64 i;
INT64 v7;
INT64 v8;
v4 = (INT64 *)(a1 + 1576 + (a3 != 0 ? 0x18 : 0));
for( i = *v4; ; i = *(_QWORD *)i )
{
if( (INT64 *)i == v4 )
return 0i64;
if( *(_QWORD *)(i + 24) == a2 )
break;
}
if( a4 && (*(_BYTE *)(i + 17) & 2) == 0 )
{
v7 = *(_QWORD *)(i + 40);
v8 = i + 40;
while( v7 != v8 )
{
if( (*(_BYTE *)(v7 + 17) & 2) != 0 )
return(INT64 *)v7;
v7 = *(_QWORD *)v7;
}
return 0i64;
}
return(INT64 *)i;
}Referenced by:
ExAcquireFastResourceExclusive
ExAcquireFastResourceShared
ExAcquireFastResourceSharedStarveExclusive
ExIsFastResourceHeld
ExIsFastResourceHeldExclusive
ExpFastResourceLegacyConvertExclusiveToShared
ExpFastResourceLegacyIsAcquiredShared
ExpFastResourceLegacyRelease