Share via


DkmTransportConnection 类

定义

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

派生类:DkmStandardRemoteTransportConnection

public ref class DkmTransportConnection : Microsoft::VisualStudio::Debugger::DkmDataContainer
[System.Runtime.InteropServices.Guid("37f756b6-9ea0-4c02-3f0a-99fb3a0f7a77")]
public class DkmTransportConnection : Microsoft.VisualStudio.Debugger.DkmDataContainer
[<System.Runtime.InteropServices.Guid("37f756b6-9ea0-4c02-3f0a-99fb3a0f7a77")>]
type DkmTransportConnection = class
    inherit DkmDataContainer
Public Class DkmTransportConnection
Inherits DkmDataContainer
继承
DkmTransportConnection
继承
DkmTransportConnection
派生
属性

属性

DebuggerCpuArchitecture

监视器端调试器组件的体系结构。 这是组件级别 < 为 100,000 的调试器组件。

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

Flags

指示基础连接特征的标志。

IsUnloaded

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

(继承自 DkmDataContainer)
Kind

指示用于调试的传输类型。

ProtocolVersion

Visual Studio 与目标计算机之间使用的协议版本。 这是 Visual Studio 了解的最低协议版本,也是远程调试器所理解的协议版本。

此 API 是在 Visual Studio 11 Update 1 (DkmApiVersion.VS11FeaturePack1) 中引入的。

Qualifier

[可选]指示连接目标的字符串。 对于本地连接,这将为 null。 对于默认远程调试,这是我们尝试连接到的计算机名称和端口号。

UniqueId

唯一标识此连接的 Guid。 本地连接将使用值“DkmTransportKind.Local”。 将随机生成其他连接的值。

方法

ActivateAppPackage(DkmWorkList, DkmPackagedAppPlatform, String, Boolean, DkmCompletionRoutine<DkmActivateAppPackageAsyncResult>)

激活指定的打包应用程序。 如果应用程序尚未启动,这将导致应用程序启动;如果应用程序已在运行,则会将其恢复为活动应用程序。 在调试器下启动时,IDkmProcessLaunchNotifyListener.StartListener 将在此 API 之前调用。

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

ActivateAppPackageExtended(DkmWorkList, DkmPackagedAppPlatform, String, Boolean, DkmActivateAppPackageFlags, DkmCompletionRoutine<DkmActivateAppPackageAsyncResult>)

激活指定的打包应用程序。 如果应用程序尚未启动,这将导致应用程序启动;如果应用程序已在运行,则会将其恢复为活动应用程序。 在调试器下启动时,IDkmProcessLaunchNotifyListener.StartListener 将在此 API 之前调用。

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

此 API 是在 Visual Studio 14 Update 1 (DkmApiVersion.VS14Update1) 中引入的。

ActivateAppPackageOnTargetMonitor(DkmWorkList, DkmPackagedAppPlatform, String, Boolean, UInt32, DkmCompletionRoutine<DkmActivateAppPackageAsyncResult>)

在指定的监视器上激活打包的应用程序。 如果应用程序尚未启动,这将导致应用程序启动;如果应用程序已在运行,则会将其恢复为活动应用程序。

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

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

ActivateAppPackageWithStartupTask(DkmWorkList, String, Boolean, DkmCompletionRoutine<DkmActivateAppPackageAsyncResult>)

激活指定的打包应用程序。 如果应用程序尚未启动,这将导致应用程序启动;如果应用程序已在运行,则会将其恢复为活动应用程序。 在调试器下启动时,IDkmProcessLaunchNotifyListener.StartListener 将在此 API 之前调用。

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

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

ActivateBackgroundTask(DkmWorkList, DkmAppPackageId, Int32, Guid, DkmCompletionRoutine<DkmActivateBackgroundTaskAsyncResult>)

激活后台任务。 开发人员使用此函数来测试其应用的激活处理程序。

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

CreateCoreDumpParserTargetCompositionServices(String, Object)

Create用于核心文件分析方案的 IDebugServiceManager 实例,可用于访问基于目标组合的扩展。 DkmProcess 可用后,调用 SetCoreDumpParserTargetCompositionServices,以便可以正确缓存实例。

位置约束:目标组合接口不能跨计算机封送,但可以安全地使用(如果可用)。

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

CreateDirectory(String)

在目标计算机上创建目录。 请注意,部署文件时会隐式创建目录。 因此,无需在此方案中使用此 API。

DeleteFile(String)

删除目标计算机上的文件。

DeployFile(String, String, Boolean)

将文件部署到目标计算机。 请注意,这会复制文件内容和上次写入时间,但不会复制属性。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

DownloadFile(DkmWorkList, String, String, Boolean, DkmCompletionRoutine<DkmDownloadFileAsyncResult>)

从目标计算机下载文件。 请注意,这会复制文件内容和上次写入时间,但不会复制属性。

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

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

DownloadFile(String, String, Boolean)

从目标计算机下载文件。 请注意,这会复制文件内容和上次写入时间,但不会复制属性。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

EnumerateBackgroundTasks(DkmWorkList, DkmAppPackageId, Int32, DkmCompletionRoutine<DkmEnumerateBackgroundTasksAsyncResult>)

枚举现有后台任务。 开发人员使用此函数来测试其应用的枚举处理程序。

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

EnumPackages()

枚举已安装和可启动 (应用程序包的应用程序) 应用程序包。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

EnumRunningProcesses(Boolean, DkmRunningProcessInfoPropertyMask)

提供目标计算机上运行的所有进程的列表 (包括未) 调试的进程。

EnumRunningProcesses(DkmWorkList, Boolean, DkmRunningProcessInfoPropertyMask, DkmCompletionRoutine<DkmEnumRunningProcessesAsyncResult>)

提供目标计算机上运行的所有进程的列表 (包括未) 调试的进程。

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

ExtractFromDeployConnection(IVsDebuggerDeployConnection)

获取支持部署连接的 DkmTransportConnection 对象。 这可用于从调试器部署 API 到调试器引擎的桥接, (Dkm) API。 例如,这可用于发送 DkmCustomMessages。

调用方仍必须持有 deployConnection,以避免释放基础 DkmTransportConnection。 请注意,默认情况下,将在停止调试期间卸载协和组件。 可以通过在组件的 .vsdconfigxml 文件中设置“StayLoadedForDeployConnection=”true“来覆盖此行为。 如果调用方想要提取部署连接以发送自定义消息,并且希望在调试器会话结束后执行此操作,则这非常有用。

ExtractFromPort(IDebugPort2)

获取支持此端口对象的 DkmTransportConnection 对象。 如果端口当前未连接且重新连接失败,则远程调试方案将失败。 此 API 只能从 Visual Studio 的main线程中正常运行。

FindConnection(Guid)

查找 DkmTransportConnection 对象。 如果不存在具有给定输入键的对象,FindConnection 将失败。

FindLiveProcess(Int32)

在此 DkmTransportConnection 中查找 DkmProcess 元素。 如果不存在具有给定输入键的元素,FindLiveProcess 将失败。 如果找到对象,它将始终包含“Live”部件。

FindProcess(Guid)

在此 DkmTransportConnection 中查找 DkmProcess 元素。 如果不存在具有给定输入键的元素,FindProcess 将失败。

FindProductionConnection(Guid)

在此 DkmTransportConnection 中查找 DkmProductionConnection 元素。 如果不存在具有给定输入键的元素,FindProductionConnection 将失败。

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

FindRecordedProcessInfo(String)

在此 DkmTransportConnection 中查找 DkmRecordedProcessInfo 元素。 如果不存在具有给定输入键的元素,FindRecordedProcessInfo 将失败。

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

FindSerializedProcessInfo(String)

在此 DkmTransportConnection 中查找 DkmSerializedProcessInfo 元素。 如果不存在具有给定输入键的元素,FindSerializedProcessInfo 将失败。

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

FlushClosedObjectQueue()

此函数用于强制所有对象关闭通知立即与监视进程交换。 像 'GC。在托管代码中收集',此函数通常是不必要的,因为系统会自动刷新队列。 但是,如果必须立即交换所有更新,则可以使用此方法。

当组件对给定对象调用“Close”时,会 (创建对象关闭通知,并在) 排队。 监视进程和引擎进程都维护一个已关闭对象的队列。 此方法只能从引擎进程调用,但它用于刷新两个队列。

位置约束:必须从 IDE 组件 (组件级别 > 100,000) 调用 API。

GetAppPackageExecutionState(DkmAppPackageId, Int32)

获取 Windows 应用商店应用的执行状态。 此字段中的值在 PACKAGE_EXECUTION_STATE 中指定。

GetClrVersionOfExecutable(String)

为调试器需要加载给定可执行文件的 CLR 提供版本字符串。 如果可执行文件) 、可执行文件的配置文件、CLR 环境变量和注册表中的加载程序策略,则返回值基于可执行文件的 PE 标头的内容 (。 返回值可能不正确,尤其是在本机可执行文件的情况下。

GetConnections()

GetConnections 枚举所有创建的 DkmTransportConnection 对象。

GetDataItem<T>()

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

(继承自 DkmDataContainer)
GetDefaultClrVersion()

返回在监视进程中加载的 CLR 版本。

GetDNSName()

提供目标计算机使用的物理 DNS 主机名。

GetFileListing(String, String, Boolean)

获取目标计算机上存在的文件和子目录的列表。

GetIsolatedStorageRootForApplication(DkmAppPackageId)

获取指定应用程序的独立存储根目录的完整路径。

此 API 尚未为 Windows 应用商店应用实现,但保留供将来使用。

GetLiveProcesses()

GetLiveProcesses 枚举此 DkmTransportConnectionobject 的 DkmProcess 元素。 所有对象都包含“Live”部件。

GetProcesses()

GetProcesses 枚举此 DkmTransportConnection 对象的 DkmProcess 元素。

GetProductionConnections()

GetProductionConnections 枚举此 DkmTransportConnection 对象的 DkmProductionConnection 元素。

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

GetRecordedProcesses()

GetRecordedProcesses 枚举此 DkmTransportConnection 对象的 DkmRecordedProcessInfo 元素。

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

GetRecordedProcessInfo(String)

获取有关记录的文件的信息。

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

GetRequests()

GetRequests 枚举此 DkmTransportConnection 对象的 DkmProcessLaunchRequest 元素。

GetRunningProcessInfo(Int32, Int64, Boolean, DkmRunningProcessInfoPropertyMask)

获取有关目标计算机上运行的进程的信息。

GetSerializedProcessInfo(String)

获取有关文件的信息。

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

GetSerializedProcessInformation()

GetSerializedProcessInformation 枚举此 DkmTransportConnection 对象的 DkmSerializedProcessInfo 元素。

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

GetSystemInformation(Boolean)

提供有关运行调试监视器的计算机的信息。

QueryExecutableArchitecture(String)

获取可执行文件的体系结构。

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

QueryIsWOW64Executable(String)

已弃用。 使用 QueryExecutableArchitecture。 确定给定的可执行文件是否将在 WOW64 (Windows On Windows) 中执行,后者用于在 64 位 OS 上执行 32 位进程。

RemoveAppPackageFromTaskbar(DkmAppPackageId, UInt32)

通过关闭任务栏删除沉浸式应用图标。

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

RemoveDataItem<T>()

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

(继承自 DkmDataContainer)
RemoveDirectory(String, Boolean)

删除目标计算机上的目录。

ResumeAppPackage(DkmAppPackageId, Int32)

对指定的应用程序执行基于模拟进程生存期管理的恢复。 开发人员使用此函数来测试其应用的恢复处理程序。

SetDataItem<T>(DkmDataCreationDisposition, T)

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

(继承自 DkmDataContainer)
ShutDownAppPackage(DkmWorkList, DkmAppPackageId, Int32, DkmCompletionRoutine<DkmShutDownAppPackageAsyncResult>)

使用进程生存期管理服务暂停并关闭指定的应用程序。 使用此功能,然后启动第二个应用,开发人员可以测试其应用从暂停状态重启的能力。

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

SuspendAppPackage(DkmWorkList, DkmAppPackageId, Int32, DkmCompletionRoutine<DkmSuspendAppPackageAsyncResult>)

对指定的应用程序执行基于模拟进程生存期管理的挂起。 开发人员使用此函数来测试其应用的挂起处理程序。

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

TakeNonDebugProcessSnapshot(UInt32)

将进程快照。 唯一保留的数据是快照本身,没有任何引用回任何父进程。

此 API 是在 Visual Studio 17 Update 6 (DkmApiVersion.VS17Update6) 中引入的。

TerminateAppPackage(DkmWorkList, DkmAppPackageId, Int32, DkmCompletionRoutine<DkmTerminateAppPackageAsyncResult>)

终止应用包。 用于确保与包关联的所有进程都已停止。

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

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

TerminateRunningProcess(Int32, Int64, Int32)

终止未调试的目标计算机上运行的进程。

TriggerPrefetch(String, DkmPackagedAppPlatform)

触发应用程序内容预提取。

此 API 是在 Visual Studio 12 Update 2 (DkmApiVersion.VS12Update2) 中引入的。

适用于