KiProcessDisconnectList

VOID __stdcall KiProcessDisconnectList(_LIST_ENTRY *DisconnectedList){
  _LIST_ENTRY *Flink; 
  _LIST_ENTRY *v3; 
  _KEVENT *v4; 

  while( 1 )
  {
    Flink = DisconnectedList->Flink;
    if( DisconnectedList->Flink == DisconnectedList )
      break;
    if( Flink->Blink != DisconnectedList || (v3 = Flink->Flink, Flink->Flink->Blink != Flink) )
      __fastfail(3u);
    DisconnectedList->Flink = v3;
    v3->Blink = DisconnectedList;
    v4 = (_KEVENT *)Flink[8].Blink->Flink;
    if( v4 )
      KeSetEvent(v4, 0, 0);
  }
}

Referenced by:

KiInterruptDispatchCommon
KiProcessSecondarySignalList