DkmProcessLaunchRequest 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
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
- 继承
- 继承
- 属性
- 实现
属性
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() |
内容待定。 |