KdpSymbol

VOID __fastcall KdpSymbol(
        _STRING *String,
        _KD_SYMBOLS_INFO *Symbol,
        UINT8 Unload,
        CHAR PreviousMode,
        _CONTEXT *ContextRecord,
        _KTRAP_FRAME *TrapFrame,
        _KEXCEPTION_FRAME *ExceptionFrame){
  UINT8 v10; 
  struct _KPRCB *CurrentPrcb; 
  UINT8 v12; 
  if( !PreviousMode && !(_BYTE)KdDebuggerNotPresent )
  {
    v10 = KdEnterDebugger(TrapFrame, (KTRAP_FRAME *)ExceptionFrame);
    CurrentPrcb = KeGetCurrentPrcb();
    v12 = v10;
    KiSaveProcessorControlState((_KPROCESSOR_STATE *)((char *)CurrentPrcb + 256));
    KdpCopyContext(*((_CONTEXT **)CurrentPrcb + 4280), ContextRecord->ContextFlags, ContextRecord);
    KdpReportLoadSymbolsStateChange(String, Symbol, Unload, *((_CONTEXT **)CurrentPrcb + 4280));
    KdpCopyContext(
      ContextRecord,
      *(unsigned int *)(*((_QWORD *)CurrentPrcb + 4280) + 48i64),
      *((_CONTEXT **)CurrentPrcb + 4280));
    KiRestoreProcessorControlState((INT64)CurrentPrcb + 256);
    KdExitDebugger(v12);
  }
}

Referenced by:

KdpTrap