ExReleaseFastResourceExclusive
NTSTATUS __stdcall ExReleaseFastResourceExclusive(PVOID BugCheckParameter2, PVOID a2){
unsigned __int8 CurrentIrql;
_ETHREAD *CurrentThread;
ULONG_PTR v4;
char v5;
if( (*((_BYTE *)BugCheckParameter2 + 26) & 1) == 0 )
KeBugCheckEx(0x1C6u, 3ui64, (ULONG_PTR)BugCheckParameter2, 0i64, 0i64);
CurrentIrql = KeGetCurrentIrql();
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
if( CurrentIrql > 2u )
KeBugCheckEx(0x1C6u, 0i64, CurrentIrql, 2ui64, 0i64);
if( !CurrentIrql && (*((_DWORD *)CurrentThread + 29) & 0x400) == 0 && !*((_DWORD *)CurrentThread + 121) )
KeBugCheckEx(0x1C6u, 7ui64, 0i64, 0i64, 0i64);
v4 = *((_QWORD *)a2 + 4);
if( (_ETHREAD *)v4 != CurrentThread )
KeBugCheckEx(0x1C6u, 9ui64, (ULONG_PTR)a2, v4, 0i64);
if( *((PVOID *)a2 + 3) != BugCheckParameter2 )
KeBugCheckEx(0x1C6u, 8ui64, (ULONG_PTR)BugCheckParameter2, (ULONG_PTR)a2, *((_QWORD *)a2 + 3));
v5 = *((_BYTE *)a2 + 17);
if( (v5 & 1) != 0 )
KeBugCheckEx(0x1C6u, 0xAui64, (ULONG_PTR)a2, 0i64, 0i64);
if( (v5 & 4) == 0 )
KeBugCheckEx(0x1C6u, 0xBui64, (ULONG_PTR)a2, ((unsigned __int64)(v5 & 4) << 14) | 1, 0i64);
return ExpReleaseFastResourceExclusive(BugCheckParameter2);
}Referenced by:
No references.