MiSessionUnlinkProcess
VOID __stdcall MiSessionUnlinkProcess(_MM_SESSION_SPACE *SessionGlobal, _EPROCESS *Process){
_LIST_ENTRY *p_SessionProcessLinks;
_LIST_ENTRY *Flink;
_LIST_ENTRY *Blink;
_KLOCK_QUEUE_HANDLE LockHandle;
memset(&LockHandle, 0, sizeof(LockHandle));
KeAcquireInStackQueuedSpinLock((PKSPIN_LOCK)&stru_140C4DB30 + 522, &LockHandle);
p_SessionProcessLinks = &Process->SessionProcessLinks;
Flink = p_SessionProcessLinks->Flink;
Blink = p_SessionProcessLinks->Blink;
if( p_SessionProcessLinks->Flink->Blink != p_SessionProcessLinks || Blink->Flink != p_SessionProcessLinks )
__fastfail(3u);
Blink->Flink = Flink;
Flink->Blink = Blink;
KeReleaseInStackQueuedSpinLockFromDpcLevel(&LockHandle);
__writecr8(LockHandle.OldIrql);
}Referenced by:
MiDereferenceSessionFinal