KiGetSavedIptState

VOID __stdcall KiGetSavedIptState(PVOID Context){
  PVOID *v1; 
  _DWORD *v2; 
  _DWORD *v3; 
  PVOID *v4; 
  int v5; 
  PXSAVE_AREA_HEADER XStateHeader; 

  XStateHeader = 0i64;
  v3 = v2;
  v4 = v1;
  if( v1 && v2 && (int)KiGetSavedSupervisorState((unsigned int)Context, &XStateHeader) >= 0 )
  {
    if( KiXSavesManagesIpt() )
    {
      *v4 = RtlLocateSupervisorFeature(XStateHeader, 8u);
    }
    else if( (_DWORD)KiIptMsrMask )
    {
      v5 = (int)KiIptSaveAreaLength;
      *v4 = (char *)&XStateHeader[1]
          + KUSER_SHARED_DATA.XState.AllFeatureSize
          - (unsigned __int64)KUSER_SHARED_DATA.XState.Size;
      *v3 = v5;
    }
    else
    {
      *v4 = 0i64;
      *v3 = 0;
    }
  }
}

Referenced by:

No references.