KiGetSavedIptState
VOID __stdcall KiGetSavedIptState(PVOID Context){
PVOID *v1;
_DWORD *v2;
_DWORD *v3;
PVOID *v4;
int v5;
struct _XSAVE_AREA_HEADER *a2;
a2 = 0i64;
v3 = v2;
v4 = v1;
if( v1 && v2 && (int)KiGetSavedSupervisorState((UINT64)Context, &a2) >= 0 )
{
if( KiXSavesManagesIpt() )
{
*v4 = RtlLocateSupervisorFeature(a2, 8u);
}
else if( (_DWORD)KiIptMsrMask )
{
v5 = KiIptSaveAreaLength;
*v4 = (char *)&a2[1] + KUSER_SHARED_DATA.XState.AllFeatureSize - (unsigned __int64)KUSER_SHARED_DATA.XState.Size;
*v3 = v5;
}
else
{
*v4 = 0i64;
*v3 = 0;
}
}
}Referenced by:
No references.