HalpInsertSecondarySignalList

INT64 __fastcall HalpInsertSecondarySignalList(INT64 a1){
  unsigned __int64 v2; 
  _QWORD *v3; 
  _QWORD *v4; 
  bool v5; 
  INT64 result; 
  v2 = (unsigned __int8)HalpAcquireHighLevelLock(&SecondarySignalListLock);
  v3 = (_QWORD *)qword_140C49968;
  v4 = (_QWORD *)(a1 + 144);
  if( *(__int64 **)qword_140C49968 != &SecondarySignalList )
    __fastfail(3u);
  v5 = SecondarySignalDpcRunning == 0;
  *v4 = &SecondarySignalList;
  v4[1] = v3;
  *v3 = v4;
  qword_140C49968 = (__int64)v4;
  if( v5 )
  {
    SecondarySignalDpcRunning = 1;
    KiInsertQueueDpc((_KDPC *)&SecondarySignalDpc, 0i64, 0i64, 0i64, 0);
  }
  KxReleaseSpinLock(&SecondarySignalListLock);
  result = (unsigned int)KiIrqlFlags;
  __writecr8(v2);
  return result;
}

Referenced by:

HalpReleaseSecondaryIcEntryShared