ExTryToAcquireResourceExclusiveLite

BOOLEAN __stdcall ExTryToAcquireResourceExclusiveLite(PERESOURCE Resource){
  unsigned __int16 Flag; 
  __int16 v2; 
  unsigned __int8 CurrentIrql; 
  _ETHREAD *CurrentThread; 
  Flag = Resource->Flag;
  if( (Flag & 0x41) == 1 )
    KeBugCheckEx(0x1C6u, 0xFui64, (ULONG_PTR)Resource, 0i64, 0i64);
  v2 = Flag & 1;
  if( v2 )
  {
    CurrentIrql = KeGetCurrentIrql();
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    if( CurrentIrql > 2u )
      KeBugCheckEx(0x1C6u, 0i64, CurrentIrql, 2ui64, 0i64);
    if( CurrentIrql >= 2u && (*((_DWORD *)KeGetPcr() + 3243) & 0x10001) != 0 )
      KeBugCheckEx(0x1C6u, 5ui64, 0i64, 0i64, 0i64);
    if( (*((_BYTE *)CurrentThread + 192) & 2) != 0 )
      KeBugCheckEx(0x1C6u, 6ui64, 0i64, 0i64, 0i64);
    if( !CurrentIrql && (*((_DWORD *)CurrentThread + 29) & 0x400) == 0 && !*((_DWORD *)CurrentThread + 121) )
      KeBugCheckEx(0x1C6u, 7ui64, 0i64, 0i64, 0i64);
  }
  if( v2 )
    return ExpFastResourceLegacyAcquireExclusive(Resource);
  else
    return ExpTryToAcquireResourceExclusiveLite(Resource);
}

Referenced by:

No references.