RtlpHpAcquireQueuedLockExclusive
VOID __stdcall RtlpHpAcquireQueuedLockExclusive(INT8 SpinLock, UINT64 *a3){
_QWORD *v2;
_QWORD *v3;
UINT8 CurrentIrql;
_ETHREAD *CurrentThread;
v3 = v2;
if( (_DWORD)a3 )
{
v2[1] = SpinLock;
CurrentIrql = KeGetCurrentIrql();
__writecr8(2ui64);
ExpAcquireSpinLockExclusive((INT64 *)SpinLock, CurrentIrql);
v3[2] = CurrentIrql;
}
else
{
*v2 = 0i64;
v2[2] = 0i64;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v2[1] = SpinLock;
--CurrentThread->Tcb.SpecialApcDisable;
ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)SpinLock, 0i64);
}
}Referenced by:
RtlpHpVsChunkDecommit
RtlpHpVsChunkSplit
RtlpHpVsContextAllocateInternal
RtlpHpVsContextFree
RtlpHpVsContextFreeInternal
RtlpHpVsContextFreeList