HalpInterruptSetLineStateInternal
NTSTATUS __stdcall HalpInterruptSetLineStateInternal(
_REGISTERED_INTERRUPT_CONTROLLER *Controller,
_INTERRUPT_LINE *Line,
_INTERRUPT_LINE_STATE *LineState){
unsigned int Flags;
unsigned int v4;
NTSTATUS result;
__int16 v7;
Flags = LineState->Flags;
v4 = Flags | 1;
if( (Flags & 0x30) != 16 )
v4 = LineState->Flags & 0xFFFFFFFE;
LineState->Flags = v4;
if( (Controller->Capabilities & 0x200) != 0 )
{
_disable();
result = ((__int64(__fastcall *)(void *, _INTERRUPT_LINE *))Controller->FunctionTable.SetLineState)(
Controller->InternalData,
Line);
if( (v7 & 0x200) != 0 )
_enable();
}
else
{
result = ((__int64(__fastcall *)(void *, _INTERRUPT_LINE *))Controller->FunctionTable.SetLineState)(
Controller->InternalData,
Line);
}
if( result < 0 )
{
Controller->ProblemStatus = result;
*(&CmpDummyThreadEvent + 1789) = 7;
Controller->Problem = InterruptProblemSetLineStateFailed;
Controller->ProblemSourceFile = "minkernel\\hals\\lib\\interrupts\\common\\intsup.c";
Controller->ProblemSourceLine = 3150;
}
return result;
}Referenced by:
HalDisableInterrupt
HalpConnectThermalInterrupt
HalpInitializeCmciVector
HalpInitializeDeferredErrorVector
HalpInterruptEnablePerformanceEvents
HalpInterruptMaskAcpi
HalpInterruptMaskLevelTriggeredLines
HalpInterruptRemapFixedLines
HalpInterruptRestoreClock
HalpInterruptRestoreController
HalpInterruptServiceActiveBoth
HalpInterruptSetDestinationInternal
HalpInterruptSetLineState
HalpMaskInterrupt
HalpUnmaskInterrupt