DkmStepper.OnCrossThreadStepArbitration Method

Definition

Called by a runtime monitor when a step is continuing on a different thread. The stepping manager will create a new DkmStepper to be used on the new thread and initiate stepping arbitration to determine which runtime should complete the step just as OnStepArbitration does. The new stepper uses the same step kind and step unit as the original stepper. A new starting instruction address must be given and is set as the stepper's starting address. The original stepper remains alive and when the new stepper completes the stepping manager will suppress the event and notify the original stepper of the completion.

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

public:
 void OnCrossThreadStepArbitration(Microsoft::VisualStudio::Debugger::Stepping::DkmStepArbitrationReason Reason, Microsoft::VisualStudio::Debugger::DkmRuntimeInstance ^ CurrentControllingRuntimeInstance, Microsoft::VisualStudio::Debugger::DkmThread ^ NewThread, Microsoft::VisualStudio::Debugger::DkmInstructionAddress ^ NewStartingInstructionAddress, [Runtime::InteropServices::Out] Microsoft::VisualStudio::Debugger::Stepping::DkmStepper ^ % NewStepper);
public void OnCrossThreadStepArbitration (Microsoft.VisualStudio.Debugger.Stepping.DkmStepArbitrationReason Reason, Microsoft.VisualStudio.Debugger.DkmRuntimeInstance CurrentControllingRuntimeInstance, Microsoft.VisualStudio.Debugger.DkmThread NewThread, Microsoft.VisualStudio.Debugger.DkmInstructionAddress NewStartingInstructionAddress, out Microsoft.VisualStudio.Debugger.Stepping.DkmStepper NewStepper);
member this.OnCrossThreadStepArbitration : Microsoft.VisualStudio.Debugger.Stepping.DkmStepArbitrationReason * Microsoft.VisualStudio.Debugger.DkmRuntimeInstance * Microsoft.VisualStudio.Debugger.DkmThread * Microsoft.VisualStudio.Debugger.DkmInstructionAddress * DkmStepper -> unit
Public Sub OnCrossThreadStepArbitration (Reason As DkmStepArbitrationReason, CurrentControllingRuntimeInstance As DkmRuntimeInstance, NewThread As DkmThread, NewStartingInstructionAddress As DkmInstructionAddress, ByRef NewStepper As DkmStepper)

Parameters

Reason
DkmStepArbitrationReason

[In] DkmStepArbitrationReason the reason step arbitration is occurring.

CurrentControllingRuntimeInstance
DkmRuntimeInstance

[In] The runtime instance requesting arbitration.

NewThread
DkmThread

[In] The thread on which to create the new stepper.

NewStartingInstructionAddress
DkmInstructionAddress

[In] Starting address of the new stepper.

NewStepper
DkmStepper

[Out,Optional] The new stepper.

Applies to