FsRtlAcquireHeaderMutex
volatile INT32 *__fastcall FsRtlAcquireHeaderMutex(INT64 a1, volatile INT32 *a2){
FAST_MUTEX *v2;
_BYTE *v3;
_BYTE *v4;
unsigned __int8 CurrentIrql;
volatile INT32 *result;
v2 = *(FAST_MUTEX **)(*(_QWORD *)(a1 + 24) + 48i64);
LODWORD(v3) = KeAbPreAcquire(v2, 0i64, 0i64);
v4 = v3;
CurrentIrql = KeGetCurrentIrql();
__writecr8(1ui64);
if( !_interlockedbittestandreset(&v2->Count, 0) )
ExpAcquireFastMutexContended(v2, v3);
if( v4 )
v4[26] |= 1u;
v2->Owner = KeGetCurrentThread();
v2->OldIrql = CurrentIrql;
result = a2;
if( a2 )
{
result = a2;
_InterlockedIncrement(a2);
}
return result;
}Referenced by:
No references.