HalpInterruptSetRemappedLineStateInternal

NTSTATUS __stdcall HalpInterruptSetRemappedLineStateInternal(
        _REGISTERED_INTERRUPT_CONTROLLER *Controller,
        _INTERRUPT_LINE *Line,
        _INTERRUPT_LINE_STATE *LineState){
  NTSTATUS v4; 
  _LIST_ENTRY *Lines; 
  _LIST_ENTRY *Blink; 
  NTSTATUS Priority; 
  __int64 v9; 
  __int64 v10; 
  __int64 v11; 

  v4 = 0;
  Lines = HalpInterruptFindLines((unsigned int *)Line);
  if( Lines )
  {
    Blink = Lines[2].Blink;
    *Blink = *(_LIST_ENTRY *)&LineState->Polarity;
    Blink[1] = *(_LIST_ENTRY *)&LineState->Routing.UnitId;
    Blink[2] = (_LIST_ENTRY)LineState->ProcessorTarget.8;
    Blink[3].Flink = *(_LIST_ENTRY **)&LineState->Vector;
    Priority = HalpInterruptGetPriority((INT64)Controller, LineState->Vector);
    *(_DWORD *)(*(_QWORD *)(v9 + 40) + v10 + 52) = Priority;
    *(_BYTE *)(*(_QWORD *)(v9 + 48) + 16 * v11 + 12) = 1;
  }
  else
  {
    *(&CmpDummyThreadEvent + 1789) = 18;
    if( Controller )
    {
      *(_QWORD *)&Controller->Problem = 18i64;
      Controller->ProblemSourceFile = "minkernel\\hals\\lib\\interrupts\\common\\connect.c";
      Controller->ProblemSourceLine = 3317;
    }
    return -1073741811;
  }
  return v4;
}

Referenced by:

HalpInterruptEnableNmi
HalpInterruptRemap
HalpTimerInitializeHypervisorTimer