HalpProcessSecondarySignalList

VOID __stdcall HalpProcessSecondarySignalList(
        KDPC *Dpc,
        PVOID DpcContext,
        PVOID SystemArgument1,
        PVOID SystemArgument2){
  unsigned __int8 i; 
  __int64 v5; 
  unsigned __int8 v6; 
  __int64 v7; 
  for( i = HalpAcquireHighLevelLock(&SecondarySignalListLock); ; i = HalpAcquireHighLevelLock(&SecondarySignalListLock) )
  {
    v5 = SecondarySignalList;
    v6 = i;
    if( (__int64 *)SecondarySignalList == &SecondarySignalList )
      break;
    v7 = *(_QWORD *)SecondarySignalList;
    if( *(__int64 **)(SecondarySignalList + 8) != &SecondarySignalList || *(_QWORD *)(v7 + 8) != SecondarySignalList )
      __fastfail(3u);
    SecondarySignalList = *(_QWORD *)SecondarySignalList;
    *(_QWORD *)(v7 + 8) = &SecondarySignalList;
    KxReleaseSpinLock(&SecondarySignalListLock);
    __writecr8(v6);
    KeSetEvent((PRKEVENT)(v5 - 24), 0);
  }
  SecondarySignalDpcRunning = 0;
  KxReleaseSpinLock(&SecondarySignalListLock);
  __writecr8(v6);
}

Referenced by:

No references.