KiIntSteerSetDestination
INT64 __fastcall KiIntSteerSetDestination(INT64 a1, INT64 a2){
int v2;
ULONG_PTR BugCheckParameter4;
ULONG_PTR v4;
ULONG_PTR v5;
int v6;
__int64 v7;
v2 = KiIntSteerVerifyDestination(a1, a2);
v5 = 0i64;
if( v2 < 0 )
KeBugCheckEx(0xA0u, 0x4001ui64, 0x101ui64, v4, BugCheckParameter4);
v6 = *(_DWORD *)(v4 + 128);
if( ((v6 - 1) & 0xFFFFFFFD) != 0 )
{
if( v6 == 2 )
{
v7 = *(_QWORD *)(v4 + 200);
*(_WORD *)(v7 + 8) = *(_WORD *)(BugCheckParameter4 + 8);
*(_QWORD *)v7 = *(_QWORD *)BugCheckParameter4;
}
else
{
LODWORD(v5) = -1073741637;
}
}
else
{
if( *(_DWORD *)(v4 + 32) != -1 )
v5 = v4 + 32;
LODWORD(v5) = ((__int64(__fastcall *)(ULONG_PTR, ULONG_PTR, ULONG_PTR))off_140C00868[0])(
v4 + 40,
BugCheckParameter4,
v5);
}
return(unsigned int)v5;
}Referenced by:
KiIntSteerConnect
KiIntSteerDistributeInterrupts