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