KiInsertSecondarySignalList

VOID __stdcall KiInsertSecondarySignalList(_LIST_ENTRY *SignalList){
  _LIST_ENTRY *v2; 
  bool v3; 
  UINT8 OldIrql; 

  OldIrql = 0;
  if( SignalList->Flink != SignalList )
  {
    KiAcquireSecondarySignalListLock(&OldIrql);
    v2 = (_LIST_ENTRY *)qword_140C2B268;
    if( *(__int64 **)(KiSecondarySignalList + 8) != &KiSecondarySignalList
      || *(__int64 **)qword_140C2B268 != &KiSecondarySignalList
      || SignalList->Flink->Blink != SignalList
      || SignalList->Blink->Flink != SignalList )
    {
      __fastfail(3u);
    }
    *(_QWORD *)qword_140C2B268 = SignalList;
    qword_140C2B268 = (__int64)SignalList->Blink;
    SignalList->Blink->Flink = (_LIST_ENTRY *)&KiSecondarySignalList;
    v3 = KiSecondarySignalDpcRunning == 0;
    SignalList->Blink = v2;
    if( v3 )
    {
      KiSecondarySignalDpcRunning = 1;
      KiInsertQueueDpc(&KiSecondarySignalDpc, 0i64, 0i64, 0i64, 0);
    }
    KxReleaseSpinLock(&KiSecondarySignalListLock);
    __writecr8(OldIrql);
  }
}

Referenced by:

KeDispatchSecondaryInterrupt