Share via


DkmProcessLaunchRequest 类

定义

DkmProcessLaunchRequest 用于描述调试器应启动的进程。

public ref class DkmProcessLaunchRequest : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("7107fc56-3477-2708-fc00-174f33c04b08")]
public class DkmProcessLaunchRequest : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("7107fc56-3477-2708-fc00-174f33c04b08")>]
type DkmProcessLaunchRequest = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmProcessLaunchRequest
Inherits DkmDataContainer
Implements IDisposable
继承
DkmProcessLaunchRequest
继承
DkmProcessLaunchRequest
属性
实现

属性

Arguments

[可选]要传递给命令行上的可执行文件的参数。

Connection

这表示监视器与 IDE 之间的连接。 如果监视器与 IDE 在同一进程中运行,则它可以是本地连接,也可以是远程连接。 在监视过程中,只有一个连接。

DebugLaunchSettings

启动调试操作期间从项目系统或 LaunchDebugTargets 的其他调用方 (或其他各种启动调试 API) 提供的设置。

EngineSettings

[可选]在调试器下启动此可执行文件时要使用的设置。 如果未在调试器下启动进程, (例如:Ctrl-F5) ,则可能会省略此项。

Environment

[可选]指向新进程的环境块的指针。 如果此参数为 NULL,则新进程使用调用方进程的环境。

环境块由以 null 结尾的字符串的以 null 结尾的块组成。 每个字符串采用以下格式:“name=value\0”。 由于等号用作分隔符,因此不得在环境变量的名称中使用。

FileName

要启动的可执行文件的路径。

IsUnloaded

如果为此对象引发了“unloaded”事件,则返回 true (示例:DkmThread::Unload 被调用) 或对象已关闭。 请注意,检查此状态时必须小心,因为如果不进行同步,返回的状态在读取指令后可能不再准确。

(继承自 DkmDataContainer)
LaunchFlags

与启动进程的请求关联的标志。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

ModeFlags

DkmProcessLaunchRequest 的标志特征。

StartupInfo

[可选]用于启动新进程的其他信息。 此信息包含在 Win32 的“STARTUPINFO”结构中。

UniqueId

UniqueId 唯一标识启动请求。

Win32Flags

启动进程时使用的 Win32 进程创建标志。 例如,可以传递CREATE_NO_WINDOW (0x08000000) 来禁用控制台窗口的创建。 不应传递以下标志,如果存在以下标志,则行为未定义:DEBUG_PROCESS、DEBUG_ONLY_THIS_PROCESS、CREATE_SUSPENDED、EXTENDED_STARTUPINFO_PRESENT、CREATE_SEPARATE_WOW_VDM、CREATE_SHARED_WOW_VDM和CREATE_UNICODE_ENVIRONMENT。

WorkingDirectory

进程当前目录的完整路径。 字符串还可以指定 UNC 路径。

方法

Close()

关闭 DkmProcessLaunchRequest 对象实例。 这将跨所有组件释放与此对象关联的任何资源。 这包括跨计算机或托管/本机封送边界的资源。

DkmProcessLaunchRequest 对象在关闭关联的 DkmTransportConnection 对象时自动关闭。

此方法只能由创建对象的组件调用。

Create(String, String, String, String, DkmProcessStartupInfo, DkmProcessLaunchModeFlags, Int32, DkmTransportConnection, DkmEngineSettings, DkmDebugLaunchSettings, DkmDataItem)

Create新的 DkmProcessLaunchRequest 对象实例。 调用方负责在完成后关闭已创建的对象。

Create(String, String, String, String, DkmProcessStartupInfo, DkmProcessLaunchModeFlags, Int32, DkmTransportConnection, DkmEngineSettings, DkmDebugLaunchSettings, DkmProcessLaunchFlags, DkmDataItem)

Create新的 DkmProcessLaunchRequest 对象实例。 调用方负责在完成后关闭已创建的对象。

此 API 是在 Visual Studio 14 RTM (DkmApiVersion.VS14RTM) 中引入的。

GetDataItem<T>()

获取已添加到此容器实例的“T”的实例。 如果此容器不包含“T”,则此函数将返回 null。

(继承自 DkmDataContainer)
LaunchDebuggedProcess()

使调试监视器在调试器下创建新进程。 进程应保持挂起状态,直到调用 ResumeDebuggedProcess。 调试监视器在创建 DkmProcess 对象之前必须等待 ResumeDebuggedProcess,因为它需要 AD7 层中的 UniqueProcessId 值。

请注意,只能在响应请求启动的 Visual Studio 调试器包时调用此方法。 希望在调试器下启动另一个进程的组件应将自定义事件发送到 Visual Studio 包。 在包中,可以通过 IVsDebugger.LaunchDebugTargets API 请求启动。

LaunchDebuggedProcess(DkmWorkList, DkmCompletionRoutine<DkmLaunchProcessAsyncResult>)

使调试监视器在调试器下创建新进程。 进程应保持挂起状态,直到调用 ResumeDebuggedProcess。 调试监视器在创建 DkmProcess 对象之前必须等待 ResumeDebuggedProcess,因为它需要 AD7 层中的 UniqueProcessId 值。

请注意,只能在响应请求启动的 Visual Studio 调试器包时调用此方法。 希望在调试器下启动另一个进程的组件应将自定义事件发送到 Visual Studio 包。 在包中,可以通过 IVsDebugger.LaunchDebugTargets API 请求启动。

此方法会将新工作项追加到指定工作列表,并在追加工作项后返回。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

LaunchProcess()

LaunchProcess API 的此重载用于在不调试的情况下启动进程,并跟踪进程的生存期。 请注意,在不设置 DkmProcessLaunchModeFlags.NoDebug 标志或设置 CREATE_SUSPENDED Win32 标志的情况下调用此 API 是无效的。

此 API 是在 Visual Studio 16 Update 9 (DkmApiVersion.VS16Update9) 中引入的。

LaunchProcess(DkmWorkList, DkmCompletionRoutine<DkmLaunchNonDebugProcessAsyncResult>)

LaunchProcess API 的此重载用于在不调试的情况下启动进程,并跟踪进程的生存期。 请注意,在不设置 DkmProcessLaunchModeFlags.NoDebug 标志或设置 CREATE_SUSPENDED Win32 标志的情况下调用此 API 是无效的。

此方法会将新工作项追加到指定工作列表,并在追加工作项后返回。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

此 API 是在 Visual Studio 16 Update 9 (DkmApiVersion.VS16Update9) 中引入的。

LaunchProcess(DkmWorkList, Int32, DkmCompletionRoutine<DkmLaunchProcessAsyncResult>)

此 API 是 Win32 CreateProcess API 的远程版本。 实现将合并环境块、处理命令行重定向并启动进程。

此方法会将新工作项追加到指定工作列表,并在追加工作项后返回。 工作项的实际处理是异步的。 将通过完成例程通知调用方请求已完成。

LaunchProcess(Int32)

此 API 是 Win32 CreateProcess API 的远程版本。 实现将合并环境块、处理命令行重定向并启动进程。

RemoveDataItem<T>()

从此容器中删除“T”的实例。 通常不需要调用此方法,因为数据容器会在对象关闭时自动清空。

(继承自 DkmDataContainer)
ResumeDebuggedProcess(Guid)

使调试监视器恢复启动的进程并创建 DkmProcess 对象。 将在事件线程上创建 DkmProcess 对象,创建对象将发送进程创建事件。

请注意,只能在响应请求启动的 Visual Studio 调试器包时调用此方法。 希望在调试器下启动另一个进程的组件应将自定义事件发送到 Visual Studio 包。 在包中,可以通过 IVsDebugger.LaunchDebugTargets API 请求启动。

ResumeProcess()

此 API 用于恢复从 CreateProcess 启动的进程,并将 LaunchSuspended 标志设置为 true。

ResumeProcess(DkmProcess)

此 API 用于恢复从 CreateProcess 启动的进程,并将 LaunchSuspended 标志设置为 true。

此 API 是在 Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3) 中引入的。

SetDataItem<T>(DkmDataCreationDisposition, T)

在数据容器中放置一个新项。

(继承自 DkmDataContainer)

显式接口实现

IDisposable.Dispose()

内容待定。

适用于