ExDeleteFastResource
NTSTATUS __stdcall ExDeleteFastResource(PVOID BugCheckParameter2){
__int16 v2;
unsigned __int8 CurrentIrql;
KIRQL v4;
PVOID *v5;
unsigned __int64 v6;
_QWORD *v7;
NTSTATUS result;
v2 = *((_WORD *)BugCheckParameter2 + 13);
if( (v2 & 1) == 0 )
KeBugCheckEx(0x1C6u, 3ui64, (ULONG_PTR)BugCheckParameter2, 0i64, 0i64);
CurrentIrql = KeGetCurrentIrql();
if( CurrentIrql > 1u )
KeBugCheckEx(0x1C6u, 0i64, CurrentIrql, 1ui64, 0i64);
if( *((_DWORD *)BugCheckParameter2 + 16) )
KeBugCheckEx(0x1C6u, 4ui64, (ULONG_PTR)BugCheckParameter2, 0i64, 0i64);
*((_WORD *)BugCheckParameter2 + 13) = v2 & 0xFFBE;
v4 = ExAcquireSpinLockExclusive(&ExpResourceSpinLock);
v5 = (PVOID *)*((_QWORD *)BugCheckParameter2 + 1);
v6 = v4;
v7 = *(_QWORD **)BugCheckParameter2;
if( *(PVOID *)(*(_QWORD *)BugCheckParameter2 + 8i64) != BugCheckParameter2 || *v5 != BugCheckParameter2 )
__fastfail(3u);
*v5 = v7;
v7[1] = v5;
ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&ExpResourceSpinLock);
result = KiIrqlFlags;
__writecr8(v6);
*(_QWORD *)BugCheckParameter2 = 0i64;
*((_QWORD *)BugCheckParameter2 + 1) = 0i64;
return result;
}Referenced by:
No references.