DkmRuntimeInstance.TakeStepControl Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
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.