ViDeadlockAllocate
int __fastcall ViDeadlockAllocate(int a1){
int v1;
int v2;
__int64 v3;
__int64 *v4;
v1 = a1 - 1;
if( v1 )
{
v2 = v1 - 1;
if( v2 )
{
if( v2 != 1 )
{
LODWORD(v3) = 0;
return v3;
}
v4 = (__int64 *)ViDeadlockThreadLookaside;
}
else
{
v4 = ViDeadlockNodeLookaside;
}
}
else
{
v4 = ViDeadlockResourceLookaside;
}
LODWORD(v3) = ExAllocateFromNPagedLookasideList((NPAGED_LOOKASIDE_LIST *)v4);
if( !v3 )
{
ViDeadlockState |= 1u;
_InterlockedIncrement((volatile signed __int32 *)ViDeadlockGlobals + 8196);
}
return v3;
}Referenced by:
VfDeadlockAcquireResource
VfDeadlockBeforeCallDriver
VfDeadlockInitializeResource