DkmStepper.OnCrossThreadStepArbitration 方法

定义

当某个步骤继续在另一个线程上时,由运行时监视器调用。 步进管理器会创建一个新的 DkmStepper,以便在新线程上使用并启动单步执行仲裁,以确定哪个运行时应像 OnStepArbitration 一样完成该步骤。 新分档器使用与原始分档器相同的步骤类型和步骤单元。 必须提供新的起始指令地址,并将其设置为分档器的起始地址。 原始分档器保持活动状态,当新的分档器完成时,步进管理器将取消该事件,并通知原始分档器完成。

位置约束:必须从监视器组件 (组件级别 100000) 中调用 API < 。

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)

参数

Reason
DkmStepArbitrationReason

中DkmStepArbitrationReason 发生步骤仲裁的原因。

CurrentControllingRuntimeInstance
DkmRuntimeInstance

中请求仲裁的运行时实例。

NewThread
DkmThread

中要在其上创建新分档器的线程。

NewStartingInstructionAddress
DkmInstructionAddress

中新分档器的起始地址。

NewStepper
DkmStepper

[Out,Optional]新的分档器。

适用于