SmpFpAllocateResource
NTSTATUS __stdcall SmpFpAllocateResource(INT64 SpinLock, INT64 a2){
__int64 v2;
KIRQL v4;
__int64 *v5;
unsigned __int64 v6;
__int64 i;
__int64 v8;
v2 = (int)a2;
v4 = ExAcquireSpinLockExclusive((PEX_SPIN_LOCK)SpinLock);
v5 = *(__int64 **)(SpinLock + 8 * v2 + 32);
v6 = v4;
for( i = v2; (v5[1] & 1) != 0; v5 = (__int64 *)*v5 )
;
v8 = v5[1];
*((_DWORD *)v5 + 2) |= 1u;
++*(_BYTE *)(i + SpinLock + 80);
++*(_BYTE *)(SpinLock + 86);
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)SpinLock);
__writecr8(v6);
return v8;
}Referenced by:
SmpFpWaitForResource