PdcAcquireRwLockExclusive

VOID __fastcall PdcAcquireRwLockExclusive(VOID *a1){
  _ETHREAD *CurrentThread; 
  _BYTE *v3; 
  _BYTE *v4; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --*((_WORD *)CurrentThread + 242);
  LODWORD(v3) = KeAbPreAcquire(a1, 0i64, 0i64);
  v4 = v3;
  if( _interlockedbittestandset64((volatile signed __int32 *)a1, 0i64) )
    ExfAcquirePushLockExclusiveEx((UINT64 *)a1, v3, a1);
  if( v4 )
    v4[26] |= 1u;
  *((_QWORD *)a1 + 1) = KeGetCurrentThread();
}

Referenced by:

PdcTaskClientRequest