HalpInterruptFindControllerAndLineState
NTSTATUS __stdcall HalpInterruptFindControllerAndLineState(
UINT64 Gsiv,
_REGISTERED_INTERRUPT_CONTROLLER **ControllerOut,
_INTERRUPT_LINE_STATE **LineStateOut){
_INTERRUPT_LINE_STATE *Blink;
NTSTATUS result;
_REGISTERED_INTERRUPT_CONTROLLER *v7;
_LIST_ENTRY *Lines;
UINT64 Identifier[3];
Blink = 0i64;
Identifier[0] = 0i64;
if( HalpInterruptGsiToLine(Gsiv, (_INTERRUPT_LINE *)Identifier) < 0 )
{
result = -1073741811;
LABEL_7:
*(&CmpDummyThreadEvent + 1789) = 18;
goto LABEL_8;
}
v7 = HalpInterruptLookupController(LODWORD(Identifier[0]));
if( v7 )
{
Lines = HalpInterruptFindLines((unsigned int *)Identifier);
if( Lines )
{
*ControllerOut = v7;
result = 0;
Blink = (_INTERRUPT_LINE_STATE *)Lines[2].Blink;
goto LABEL_10;
}
*(_QWORD *)&v7->Problem = 18i64;
v7->ProblemSourceFile = "minkernel\\hals\\lib\\interrupts\\common\\connect.c";
result = -1073741275;
v7->ProblemSourceLine = 643;
goto LABEL_7;
}
*(&CmpDummyThreadEvent + 1789) = 17;
result = -1073741275;
LABEL_8:
*ControllerOut = 0i64;
LABEL_10:
*LineStateOut = Blink;
return result;
}Referenced by:
HalpInterruptGetRemappedLineState
HalpInterruptSetRemappedDestinationHv