KdpWriteCustomBreakpoint

VOID __stdcall KdpWriteCustomBreakpoint(_DBGKD_MANIPULATE_STATE64 *m, _STRING *AdditionalData, _CONTEXT *Context){
  unsigned __int8 BreakPointInstructionAlignment; 
  unsigned __int8 BreakPointInstructionSize; 
  unsigned __int64 Dr7; 
  VOID *TargetBaseAddress; 
  unsigned int v8; 
  __int64 v9[3]; 

  BreakPointInstructionAlignment = m->u.WriteCustomBreakPoint.BreakPointInstructionAlignment;
  BreakPointInstructionSize = m->u.WriteCustomBreakPoint.BreakPointInstructionSize;
  Dr7 = m->u.Continue2.ControlSet.Dr7;
  v9[0] = 0i64;
  v9[1] = (__int64)m;
  TargetBaseAddress = (VOID *)m->u.ReadMemory.TargetBaseAddress;
  LOWORD(v9[0]) = 56;
  v8 = KdpAddBreakpoint(TargetBaseAddress, Dr7, BreakPointInstructionSize, BreakPointInstructionAlignment);
  m->u.Continue2.AnyControlSet.X86ControlSet.CurrentSymbolEnd = v8;
  m->ReturnStatus = v8 == 0 ? 0xC0000001 : 0;
  KdSendPacket(2i64, v9, 0i64, &KdpContext);
}

Referenced by:

KdpSendWaitContinue