SmpFpAllocateResource
VOID *__stdcall SmpFpAllocateResource(_SM_FORWARD_PROGRESS_CTX *FpContext, _SM_FP_RESOURCE_TYPE ResourceType){
__int64 v2;
unsigned __int8 v4;
__int64 *v5;
unsigned __int64 v6;
__int64 i;
VOID *v8;
v2 = ResourceType;
v4 = ExAcquireSpinLockExclusive((INT64 *)FpContext);
v5 = *(__int64 **)&FpContext[2 * v2 + 8];
v6 = v4;
for( i = v2; (v5[1] & 1) != 0; v5 = (__int64 *)*v5 )
;
v8 = (VOID *)v5[1];
*((_DWORD *)v5 + 2) |= 1u;
++*((_BYTE *)FpContext + i + 80);
++*((_BYTE *)FpContext + 86);
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)FpContext);
__writecr8(v6);
return v8;
}Referenced by:
SmpFpWaitForResource