KiSaveProcessorState

VOID __stdcall KiSaveProcessorState(KTRAP_FRAME *TrapFrame, KTRAP_FRAME *ExceptionFrame){
  struct _KPRCB *CurrentPrcb; 
  _CONTEXT *v5; 
  INT64 v6; 
  CurrentPrcb = KeGetCurrentPrcb();
  v5 = (_CONTEXT *)*((_QWORD *)CurrentPrcb + 4280);
  v6 = *((unsigned int *)CurrentPrcb + 8562);
  v5->ContextFlags = v6;
  if( (TrapFrame->SegCs & 1) == 0 && ((v6 & 0x100040) == 1048640 || (v6 & 0x100008) == 1048584) )
    KiSaveNpxState((INT64)v5, v6);
  KeContextFromKframes(TrapFrame, (_KEXCEPTION_FRAME *)ExceptionFrame, v5);
  KiSaveProcessorControlState((_KPROCESSOR_STATE *)((char *)CurrentPrcb + 256));
}

Referenced by:

KiFreezeTargetExecution
KxNmiInterrupt