MiSessionUnlinkProcess
INT64 __fastcall MiSessionUnlinkProcess(INT64 a1, INT64 a2){
_QWORD *v3;
__int64 v4;
_QWORD *v5;
INT64 result;
struct _KLOCK_QUEUE_HANDLE LockHandle;
memset(&LockHandle, 0, sizeof(LockHandle));
KeAcquireInStackQueuedSpinLock(&WorkerRoutine, &LockHandle);
v3 = (_QWORD *)(a2 + 1184);
v4 = *v3;
v5 = (_QWORD *)v3[1];
if( *(_QWORD **)(*v3 + 8i64) != v3 || (_QWORD *)*v5 != v3 )
__fastfail(3u);
*v5 = v4;
*(_QWORD *)(v4 + 8) = v5;
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
result = (unsigned int)KiIrqlFlags;
__writecr8(LockHandle.OldIrql);
return result;
}Referenced by:
MiDereferenceSessionFinal