KdpReportExceptionStateChange

UINT8 __stdcall KdpReportExceptionStateChange(
        _EXCEPTION_RECORD *ExceptionRecord,
        _FILETIME *ContextRecord,
        UINT8 SecondChance){
  UINT64 v6; 
  NTSTATUS v7; 
  _STRING OutMessageHeader; 
  _STRING OutMessageData; 
  _DBGKD_ANY_WAIT_STATE_CHANGE WaitStateChange; 

  OutMessageData = 0i64;
  OutMessageHeader = 0i64;
  memset(&WaitStateChange, 0i64, sizeof(WaitStateChange));
  do
  {
    KdpSetCommonState(0x3030ui64, (_CONTEXT *)ContextRecord, &WaitStateChange);
    KdpQuickMoveMemory((INT8 *)&WaitStateChange.u, (INT8 *)ExceptionRecord, 0x98ui64);
    WaitStateChange.u.Exception.FirstChance = SecondChance == 0;
    KdpSetContextState(&WaitStateChange, (_CONTEXT *)ContextRecord);
    OutMessageHeader.Length = 240;
    OutMessageHeader.Buffer = (char *)&WaitStateChange;
    OutMessageData.Length = 0;
    v7 = KdpSendWaitContinue(v6, &OutMessageHeader, &OutMessageData, (_CONTEXT *)ContextRecord);
  }
  while( v7 == 2 );
  return v7;
}

Referenced by:

KdpReport
KiFreezeTargetExecution