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' 事件, (範例:DkmThread::Unload 呼叫) 或對象已關閉,則傳回 true。 請注意,檢查此狀態時,請務必小心,而不需同步處理,傳回的狀態在讀取之後可能無法再精確指示。

(繼承來源 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 物件實例。 這會在所有元件中釋放與此對象相關聯的任何資源。 這包括跨計算機或受控/原生封送處理界限的資源。

當相關聯的 DkmTransportConnection 物件關閉時,會自動關閉 DkmProcessLaunchRequest 物件。

這個方法只能由建立 物件的元件呼叫。

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 Layer 的 UniqueProcessId 值。

請注意,這個方法只能呼叫,以回應要求啟動的Visual Studio調試程式套件。 想要在調試程式下啟動另一個進程的元件,應該將自定義事件傳送至Visual Studio套件。 從套件中,可以透過 IVsDebugger.LaunchDebugTargets API 要求啟動。

LaunchDebuggedProcess(DkmWorkList, DkmCompletionRoutine<DkmLaunchProcessAsyncResult>)

讓偵錯監視器在調試程式下建立新的進程。 程序應該暫停,直到呼叫 ResumeDebuggedProcess 為止。 偵錯監視器必須在建立 DkmProcess 物件之前等候 ResumeDebuggedProcess,因為它需要 AD7 Layer 的 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()

即將加入。

適用於