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

Это представляет собой соединение между монитором и интегрированной среды разработки. Это может быть локальное подключение, если монитор выполняется в том же процессе, что и интегрированная среда разработки, или удаленное подключение. В процессе мониторинга имеется только одно подключение.

DebugLaunchSettings

Параметры, предоставляемые во время запуска операции отладки из системы проекта или другого вызывающего объекта LaunchDebugTargets (или других API запуска отладки).

EngineSettings

[Необязательно] Параметры, используемые при запуске этого исполняемого файла в отладчике. Этот параметр можно опустить, если процесс не запускается в отладчике (например, CTRL+F5).

Environment

[Необязательно] Указатель на блок среды для нового процесса. Если этот параметр имеет значение NULL, новый процесс использует среду вызывающего процесса.

Блок среды состоит из блока строк, завершаемых значением NULL. Каждая строка имеет следующий вид: "name=value\0". Поскольку знак равенства используется в качестве разделителя, его нельзя использовать в имени переменной среды.

FileName

Путь к исполняемому файлу для запуска.

IsUnloaded

Возвращает значение true, если для этого объекта было вызвано событие "unloaded" (например, вызывается DkmThread::Unload) или если объект был закрыт. Обратите внимание, что при проверке этого состояния необходимо соблюдать осторожность, так как без синхронизации возвращаемое состояние может быть не точным после прочтения инструкции.

(Унаследовано от DkmDataContainer)
LaunchFlags

Флаги, связанные с запросом на запуск процесса.

Этот API появился в Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

ModeFlags

Пометка признаков DkmProcessLaunchRequest.

StartupInfo

[Необязательно] Дополнительные сведения, используемые для запуска нового процесса. Эти сведения содержатся в структуре STARTUPINFO в Win32.

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. Монитор отладки должен ожидать resumeDebuggedProcess перед созданием объекта DkmProcess, так как ему требуется значение UniqueProcessId из уровня AD7.

Обратите внимание, что этот метод может вызываться только в ответ на запрос запуска пакета отладчика Visual Studio. Компоненты, которые хотят запустить другой процесс в отладчике, должны отправлять пользовательское событие в пакет Visual Studio. Из пакета можно запросить запуск через API IVsDebugger.LaunchDebugTargets.

LaunchDebuggedProcess(DkmWorkList, DkmCompletionRoutine<DkmLaunchProcessAsyncResult>)

Заставляет монитор отладки создать новый процесс в отладчике. Процесс следует оставить приостановленным до вызова ResumeDebuggedProcess. Монитор отладки должен ожидать resumeDebuggedProcess перед созданием объекта DkmProcess, так как ему требуется значение UniqueProcessId из уровня AD7.

Обратите внимание, что этот метод может вызываться только в ответ на запрос запуска пакета отладчика Visual Studio. Компоненты, которые хотят запустить другой процесс в отладчике, должны отправлять пользовательское событие в пакет Visual Studio. Из пакета можно запросить запуск через API IVsDebugger.LaunchDebugTargets.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента является асинхронной. Вызывающий объект получит уведомление о том, что запрос завершен с помощью процедуры завершения.

LaunchProcess()

Эта перегрузка API LaunchProcess используется для запуска процесса без отладки и отслеживания времени существования процесса. Обратите внимание, что недопустимо вызывать этот API без установки флага DkmProcessLaunchModeFlags.NoDebug или с установленным флагом Win32 CREATE_SUSPENDED.

Этот API появился в Visual Studio 16 с обновлением 9 (DkmApiVersion.VS16Update9).

LaunchProcess(DkmWorkList, DkmCompletionRoutine<DkmLaunchNonDebugProcessAsyncResult>)

Эта перегрузка API LaunchProcess используется для запуска процесса без отладки и отслеживания времени существования процесса. Обратите внимание, что недопустимо вызывать этот API без установки флага DkmProcessLaunchModeFlags.NoDebug или с установленным флагом Win32 CREATE_SUSPENDED.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента является асинхронной. Вызывающий объект получит уведомление о том, что запрос завершен с помощью процедуры завершения.

Этот API появился в Visual Studio 16 с обновлением 9 (DkmApiVersion.VS16Update9).

LaunchProcess(DkmWorkList, Int32, DkmCompletionRoutine<DkmLaunchProcessAsyncResult>)

Этот API является удаленной версией API Win32 CreateProcess. Реализация объединит блок среды, обработает перенаправление командной строки и запустит процесс.

Этот метод добавляет новый рабочий элемент в указанный список работ и возвращается после добавления рабочего элемента. Фактическая обработка рабочего элемента является асинхронной. Вызывающий объект получит уведомление о том, что запрос завершен с помощью процедуры завершения.

LaunchProcess(Int32)

Этот API является удаленной версией API Win32 CreateProcess. Реализация объединит блок среды, обработает перенаправление командной строки и запустит процесс.

RemoveDataItem<T>()

Удалите экземпляр T из этого контейнера. Обычно не требуется вызывать этот метод, так как контейнер данных автоматически очищается при закрытии объекта.

(Унаследовано от DkmDataContainer)
ResumeDebuggedProcess(Guid)

Заставляет монитор отладки возобновить запущенный процесс и создать объект DkmProcess. Объект DkmProcess будет создан в потоке событий, а при создании объекта будет отправлено событие создания процесса.

Обратите внимание, что этот метод может вызываться только в ответ на запрос запуска пакета отладчика Visual Studio. Компоненты, которые хотят запустить другой процесс в отладчике, должны отправлять пользовательское событие в пакет Visual Studio. Из пакета можно запросить запуск через API IVsDebugger.LaunchDebugTargets.

ResumeProcess()

Этот API используется для возобновления процесса, который был запущен из CreateProcess с флагом LaunchSuspended, установленным в значение true.

ResumeProcess(DkmProcess)

Этот API используется для возобновления процесса, который был запущен из CreateProcess с флагом LaunchSuspended, установленным в значение true.

Этот API появился в Visual Studio 15 с обновлением 3 (DkmApiVersion.VS15Update3).

SetDataItem<T>(DkmDataCreationDisposition, T)

Поместите новый элемент в контейнер данных.

(Унаследовано от DkmDataContainer)

Явные реализации интерфейса

IDisposable.Dispose()

Будет добавлено.

Применяется к