AlpcpLocateSectionView
INT64 __fastcall AlpcpLocateSectionView(INT64 a1, INT64 a2, INT64 a3, _QWORD *a4){
INT64 *v4;
INT64 v8;
INT64 v9;
int v10;
INT64 v12;
ULONG_PTR v13;
v12 = a3;
*a4 = 0i64;
v4 = (INT64 *)(a2 + 352);
v13 = 0i64;
do
{
ExAcquirePushLockSharedEx((UINT64)v4, 0i64);
v10 = AlpcpEnumerateResourcesPort(a2, v8, v9, &v12);
if( _InterlockedCompareExchange64(v4, 0i64, 17i64) != 17 )
ExfReleasePushLockShared(v4);
KeAbPostRelease(v4);
}
while( v10 == -1073741267 );
if( !v13 )
return 3221225793i64;
if( *(_QWORD *)(*(_QWORD *)(v13 + 16) + 16i64) != a1 )
{
AlpcpDereferenceView(v13);
return 3221225793i64;
}
*a4 = v13;
return 0i64;
}Referenced by:
AlpcpCaptureViewAttributeInternal