IopInterlockedRemoveHeadList
_LIST_ENTRY *__stdcall IopInterlockedRemoveHeadList(_LIST_ENTRY *ListHead){
KIRQL v2;
_LIST_ENTRY *Flink;
_LIST_ENTRY *v5;
_LIST_ENTRY *Blink;
v2 = KeAcquireQueuedSpinLock(0xAui64);
Flink = ListHead->Flink;
if( ListHead->Flink == ListHead )
{
Flink = 0i64;
}
else
{
v5 = Flink->Flink;
if( Flink->Flink->Blink != Flink || (Blink = Flink->Blink, Blink->Flink != Flink) )
__fastfail(3u);
Blink->Flink = v5;
v5->Blink = Blink;
}
KeReleaseQueuedSpinLock(0xAui64, v2);
return Flink;
}Referenced by:
IoShutdownSystem
IopCallBootDriverReinitializationRoutines
IopCallDriverReinitializationRoutines