DkmRuntimeInstance.TakeStepControl Method

Definition

TakeStepControl is called by the stepping manager when a non-controlling runtime instance detects that the thread has hit a transition into its runtime. The stepping manager will forward the call to the current controlling runtime instance. The runtime instance requesting control should first call StepControlRequested on all steppers it wants control of. If they all set Granted to true, the runtime instance should then call this method on each stepper it is taking control of.

Location constraint: API must be called from a Monitor component (component level < 100,000).

public:
 void TakeStepControl(Microsoft::VisualStudio::Debugger::Stepping::DkmStepper ^ Stepper, bool LeaveGuardsInPlace, Microsoft::VisualStudio::Debugger::Stepping::DkmStepArbitrationReason Reason, Microsoft::VisualStudio::Debugger::DkmRuntimeInstance ^ CallingRuntimeInstance);
public void TakeStepControl (Microsoft.VisualStudio.Debugger.Stepping.DkmStepper Stepper, bool LeaveGuardsInPlace, Microsoft.VisualStudio.Debugger.Stepping.DkmStepArbitrationReason Reason, Microsoft.VisualStudio.Debugger.DkmRuntimeInstance CallingRuntimeInstance);
member this.TakeStepControl : Microsoft.VisualStudio.Debugger.Stepping.DkmStepper * bool * Microsoft.VisualStudio.Debugger.Stepping.DkmStepArbitrationReason * Microsoft.VisualStudio.Debugger.DkmRuntimeInstance -> unit
Public Sub TakeStepControl (Stepper As DkmStepper, LeaveGuardsInPlace As Boolean, Reason As DkmStepArbitrationReason, CallingRuntimeInstance As DkmRuntimeInstance)

Parameters

Stepper
DkmStepper

[In] DkmStepper represents a request to step a thread. It facilitates shared object lifetime between the various runtime debug monitors that participate in stepping.

LeaveGuardsInPlace
Boolean

[In] Set to true by the caller if it would like the current controlling runtime instance to leave guards in place to stop the step if necessary. For instance, this can be used to leave guard breakpoints after a call instruction so another runtime can step back out if the target of the call doesn't have source. However, any stepping state that affects the immediate step, such as trap flags, should be removed by the controlling runtime instance.

Reason
DkmStepArbitrationReason

[In] DkmStepArbitrationReason the reason step arbitration is occurring.

CallingRuntimeInstance
DkmRuntimeInstance

[In] The calling runtime instance that wishes to take control of the step.

Applies to