DkmProcess Класс

Определение

Дкмпроцесс представляет целевой процесс, который отлаживается. Отладчик выполняет обработку ошибок, поэтому это основная единица отладки. Дкмпроцесс может представлять системный процесс или виртуальный процесс, например Мини-дампы.

public ref class DkmProcess : Microsoft::VisualStudio::Debugger::DkmDataContainer
[System.Runtime.InteropServices.Guid("a6eaf62b-6db1-4f38-6359-46e9262d7a0a")]
public class DkmProcess : Microsoft.VisualStudio.Debugger.DkmDataContainer
[<System.Runtime.InteropServices.Guid("a6eaf62b-6db1-4f38-6359-46e9262d7a0a")>]
type DkmProcess = class
    inherit DkmDataContainer
Public Class DkmProcess
Inherits DkmDataContainer
Наследование
Атрибуты

Свойства

BaseDebugMonitorId

Дкмбаседебугмониторид определяет базовый монитор отладки, используемый для проверки и контроля отлаживаемого процесса. Например, Дкмбаседебугмониторид. ресурс windowsprocess используется для процессов, отладка которых осуществляется с помощью API отладки Win32, а Дкмбаседебугмониторид. DumpFile (используется для мини-дампов.

Connection

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

DebugLaunchSettings

Параметры, предоставляемые во время начальной операции отладки, из системы проекта или другого вызывающего объекта Лаунчдебугтаржетс (или различных других API-интерфейсов отладки запуска).

EngineSettings

Содержит параметры отладки для всего сеанса. Существует один экземпляр этого объекта на идентификатор GUID ядра (например, один экземпляр для COMPlusOnlyEng2, один экземпляр для Комплуснативинг).

IsAppPackage

Значение true, если процесс принадлежит пакету приложения для Магазина Windows или пакету приложения Windows Phone.

Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).

IsNativeDebuggingEnabled

Если задано значение true, отладчик попытается выполнить отладку машинного кода — он остановится на собственных исключениях, загрузит символы, выведет машинные кадры в стеке вызовов, привязывает и приостанавливает точки останова и оставляет собственные потоки остановленными в состоянии приостановки.

IsUnloaded

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

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

Используемых Сведения, относящиеся к выполняющемуся процессу. Например, эта часть не будет присутствовать для мини малого дампа.

Path

Полный путь к начальному исполняемому файлу процесса.

StartMethod

Стартмесод описывает, как отладчик начинает отладку этого процесса.

SystemInformation

Содержит сведения о компьютерной системе, в которой выполняется этот процесс. Если этот процесс выполняется в режиме WOW (32-разрядная эмуляция в 64-разрядной ОС), эта информация будет содержаться в 32-разрядной подсистеме, а не в 64-разрядной подсистеме.

UniqueId

Идентификатор GUID, однозначно определяющий этот объект процесса. Это значение GUID совпадает с идентификатором GUID, предоставленным на уровне SDM (IDebugProcess2:: GetProcessId), и на уровне автоматизации.

Методы

AbortingFuncEvalExecution(DkmFuncEvalFlags)

Абортингфунцевалексекутион вызывается монитором отладки среды выполнения при прерывании вычисления функции. Абортингфунцевалексекутион будет обновлять внутреннее состояние объекта Дкмпроцесс, чтобы остановка диспетчера событий позволяла выполнить два события остановки через: завершение или асинхронное прерывание вычисления функции.

AddExceptionTrigger(DkmWorkList, Guid, DkmExceptionTrigger, DkmCompletionRoutine<DkmAddExceptionTriggerAsyncResult>)

Добавляет триггер исключения, чтобы события Ексцептионтригжерхит отправлялись при выполнении триггера исключения.

Если для этого кортежа {SourceId, Дкмексцептионтригжер} уже определено исключение, то существующий триггер будет изменен с учетом новых параметров. Например, если компонент определяет триггер, который должен останавливаться при возникновении исключения нарушения прав доступа, а позднее задает срабатывание триггера, когда любое исключение Win32 становится необработанным, то триггер нарушения прав доступа будет удален.

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

AddExceptionTrigger(Guid, DkmExceptionTrigger)

Добавляет триггер исключения, чтобы события Ексцептионтригжерхит отправлялись при выполнении триггера исключения.

Если для этого кортежа {SourceId, Дкмексцептионтригжер} уже определено исключение, то существующий триггер будет изменен с учетом новых параметров. Например, если компонент определяет триггер, который должен останавливаться при возникновении исключения нарушения прав доступа, а позднее задает срабатывание триггера, когда любое исключение Win32 становится необработанным, то триггер нарушения прав доступа будет удален.

AllocateVirtualMemory(UInt64, Int32, Int32, Int32)

Резервирует или фиксирует область памяти в виртуальном адресном пространстве целевого процесса. Функция инициализирует память, выделенную в ноль, если MEM_RESET не используется. Дополнительные сведения см. в разделе об API-интерфейсе VirtualAlloc Win32 в MSDN.

AsyncBreak(Boolean)

Этот метод сообщит мониторам отладки асинхронно прерывать выполнение отлаживаемого процесса. После завершения операции отправляется событие Асинкбреаккомплете.

BeforeStopDebugging()

Обработчик, который получает уведомления перед завершением или отсоединением целевого процесса.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

Этот API появился в Visual Studio 14 RTM (Дкмапиверсион. VS14RTM).

ClearAllGPUMemoryAccessWarnings()

Отключает все активные предупреждения о доступе к памяти GPU.

ClearExceptionTriggers(Guid)

Удаляет все триггеры исключения, установленные с определенным SourceId. После возврата из этого метода триггеры исключений больше не будут вызывать события Ексцептионтригжерхит. Триггеры исключений автоматически очищаются при закрытии объекта Дкмпроцесс.

Create(DkmTransportConnection, String, Guid, DkmStartMethod, DkmEngineSettings, DkmDebugLaunchSettings, DkmSystemInformation, Guid, Boolean, Boolean, DkmProcess+Live, DkmDataItem)

Создает новый объект процесса. Этот метод вызывается из базового монитора отладки в потоке событий в ходе обработки Идкмстартдебуггингоператионс. Аттачтопроцесс или Идкмстартдебуггингоператионс. Ресумедебугжедпроцесс.

Этот метод будет отсылать событие Процесскреате.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).

Create(DkmTransportConnection, String, Guid, DkmStartMethod, DkmEngineSettings, DkmDebugLaunchSettings, DkmSystemInformation, Guid, Boolean, DkmProcess+Live, DkmDataItem)

Создает новый объект процесса. Этот метод вызывается из базового монитора отладки в потоке событий в ходе обработки Идкмстартдебуггингоператионс. Аттачтопроцесс или Идкмстартдебуггингоператионс. Ресумедебугжедпроцесс.

Этот метод будет отсылать событие Процесскреате.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

CreateNativeInstructionAddress(UInt64)

Разрешает инструкцию ЦП в собственный модуль и возвращает Дкмнативеинструктионаддресс для представления этой инструкции ЦП. Если указатель инструкции находится за пределами модуля, вместо него возвращается объект Дкмункновнинструктионаддресс.

Detach()

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

Disassemble(DkmInstructionAddress, UInt32)

Расформирование диапазона адресов в отлаживаемом процессе.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

FindNativeModule(UInt64)

Разрешает виртуальный адрес в собственный модуль. Если виртуальный адрес не входит в модуль, возвращается значение null (S_FALSE код возврата в машинном коде). Отключенные модули не будут возвращены.

FindNativeModule(UInt64, Boolean)

Разрешает виртуальный адрес в собственный модуль. Если виртуальный адрес не входит в модуль, возвращается значение null (S_FALSE код возврата в машинном коде).

FindProcess(Guid)

Найдите объект Дкмпроцесс. Если объект с указанным входным ключом отсутствует, Финдпроцесс завершится ошибкой.

FindProcessSnapshot(UInt32)

Найдите элемент Дкмпроцессснапшот в этом Дкмпроцесс. Если элемент с указанным входным ключом отсутствует, Финдпроцессснапшот завершится ошибкой.

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

FindRuntimeInstance(DkmRuntimeInstanceId)

Найдите элемент Дкмрунтимеинстанце в этом Дкмпроцесс. Если элемент с указанным входным ключом отсутствует, Финдрунтимеинстанце завершится ошибкой.

FindSystemThread(Int32)

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

FreeVirtualMemory(UInt64, Int32, Int32)

Выпуски или отменяют выделение области памяти в виртуальном адресном пространстве целевого процесса. Дополнительные сведения см. в статье об API-интерфейсе функции VirtualFree для Win32 в MSDN.

GetComputeKernels()

Жеткомпутекернелс перечисляет элементы Дкмгпукомпутекернел этого объекта Дкмпроцесс.

GetDataItem<T>()

Возвращает экземпляр элемента "t", который был добавлен в этот экземпляр контейнера. Если этот контейнер не содержит 'T, эта функция возвратит значение null.

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

Возвращает путь к основному исполняемому файлу в отлаживаемом дампе.

         Этот API появился в Visual Studio 12 RTM (Дкмапиверсион. VS12RTM).
GetEndingTimeContext()

Возвращает контекст времени, представляющий конечную точку трассировки.

         Этот API появился в Visual Studio 16 RTM (Дкмапиверсион. VS16RTMPreview).
GetGPUBreakpointBehavior()

Возвращает поведение точки останова процесса.

GetHandleCount()

Получает количество активных дескрипторов в процессе.

GetInstructionAddress(DkmInstructionAddress, Int32)

Возвращает адрес инструкции КС относительно начального адреса. Для наборов инструкций с постоянной длиной это простая арифметическая операция. Для наборов инструкций переменной длины для получения этого адреса требуется обратный дизассемблирование.

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

GetInstructionAddress(DkmWorkList, DkmInstructionAddress, Int32, DkmCompletionRoutine<DkmGetRelativeInstructionAddressAsyncResult>)

Возвращает адрес инструкции КС относительно начального адреса. Для наборов инструкций с постоянной длиной это простая арифметическая операция. Для наборов инструкций переменной длины для получения этого адреса требуется обратный дизассемблирование.

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

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

GetInstructionAddress(DkmWorkList, UInt64, DkmCompletionRoutine<DkmGetInstructionAddressAsyncResult>)

Разрешает Инструктионаддресс ЦП в Дкминструктионаддресс.

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

Ограничение расположения: API должен вызываться из компонента IDE (уровень компонентов > 100 000).

GetManagedStowedException()

Получение исключения управляемого заполнения из дампа. Это приведет к возврату S_FALSE, если отсутствует управляемое исключение заполнения.

Этот API появился в Visual Studio 12 с обновлением 3 (Дкмапиверсион. VS12Update3).

GetMemoryReadTime(UInt64, UInt32, DkmMemoryTimeFlags)

Вызывается, чтобы узнать, какое время относительно текущего времени обработки значение из считывания памяти разрешено из.

Этот API появился в Visual Studio 15 с обновлением 8 (Дкмапиверсион. VS15Update8).

GetNativeRuntimeInstance()

Предоставляет доступ к Дкмрунтимеинстанце, который относится к упрощенному коду в рамках процесса. Для процесса существует ровно один Дкмрунтимеинстанце.

GetNativeStowedException()

Получение собственного исключения заполнения из дампа. Это приведет к возврату S_FALSE, если отсутствует собственное исключение заполнения.

Этот API появился в Visual Studio 12 с обновлением 3 (Дкмапиверсион. VS12Update3).

GetPendingBreakpoints()

Жетпендингбреакпоинтс перечисляет элементы Дкмпендингбреакпоинт этого объекта Дкмпроцесс.

GetProcesses()

Процесс обработки и перечисление всех созданных объектов Дкмпроцесс.

GetProcessExecuteDirection()

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

Этот API появился в Visual Studio 15 с обновлением 8 (Дкмапиверсион. VS15Update8).

GetProcessSnapshots()

Жетпроцессснапшотс перечисляет элементы Дкмпроцессснапшот этого объекта Дкмпроцесс.

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

GetRunningTime()

Получает число циклов часов, которые выполнял отладчик с момента последнего вызова Ресетруннингтиме ().

GetRuntimeFunctionResolutionRequests()

Жетрунтимефунктионресолутионрекуестс перечисляет элементы Дкмрунтимефунктионресолутионрекуест этого объекта Дкмпроцесс.

GetRuntimeInstances()

Жетрунтимеинстанцес перечисляет элементы Дкмрунтимеинстанце этого объекта Дкмпроцесс.

GetSourceSnapshot()

Получите исходный объект снимка для отлаживаемого процесса. Отлаживаемый процесс должен представлять моментальные снимки.

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

GetStowedExceptions()

Получение исключений заполнения из дампа.

         Этот API появился в Visual Studio 12 с обновлением 3 (Дкмапиверсион. VS12Update3).
GetSystemThreads()

Предоставляет список активных системных потоков в процессе. Потоки, которые не являются системными потоками (Дкмсреад:: System имеют значение null) или были выгружены, не будут присутствовать в этой коллекции.

GetTargetCompositionServices(DkmTargetCompositionScenario, Object)

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

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

Этот API появился в Visual Studio 16 с обновлением 5 (Дкмапиверсион. VS16Update5).

GetThreads()

GetObject перечисляет элементы Дкмсреад этого объекта Дкмпроцесс.

InvisibleWriteMemory(UInt64, Byte[])

Запишите память в целевой процесс, но скройте запись из вызовов ReadMemory. Этот API может использоваться для исправления инструкций или данных в целевом процессе для реализации функций отладчика. Перед передачей данных система проверяет, чтобы все данные в базовом адресе и памяти указанного размера были доступны для доступа на запись, и если она недоступна, функция вызывает ошибку E_INVALID_MEMORY_ADDRESS.

IsLoadComplete()

Возвращает значение true, если после загрузки всех исходных модулей или создания потока для всех сред выполнения, имеющихся во время начала отладки процесса, были отправлены потоки. Обратите внимание, что это определение может отличаться от определения API отладки Win32 для загрузки, так как для загрузки других экземпляров среды выполнения может потребоваться дополнительное время.

Этот API появился в Visual Studio 12 с обновлением 2 (Дкмапиверсион. VS12Update2).

IsStopped()

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

LocateBinary(String, String, String, UInt32, UInt32)

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

OnAsyncBreakComplete(DkmAsyncBreakStatus, DkmThread)

Вызов события Асинкбреаккомплете. Компоненты, реализующие интерфейс приемника событий, получат уведомление о событии. Этот метод поставит в очередь событие, и элемент управления немедленно вернется вызывающему объекту.

OnEntryPoint(DkmThread)

Создайте событие EntryPoint. Компоненты, реализующие интерфейс приемника событий, получат уведомление о событии. Этот метод поставит в очередь событие, и элемент управления немедленно вернется вызывающему объекту.

OnHiddenEntryPoint(DkmThread)

Вызов события Хидденентрипоинт. Компоненты, реализующие интерфейс приемника событий, получат уведомление о событии. Этот метод поставит в очередь событие, и элемент управления немедленно вернется вызывающему объекту.

Этот API появился в Visual Studio 14 RTM (Дкмапиверсион. VS14RTM).

OnInstructionPatchInserted(UInt64, Byte[])

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

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

OnInstructionPatchRemoved(UInt64, Byte[])

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

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

OnLoadComplete()

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

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

Этот метод может вызываться только компонентом, создавшим объект.

OnProcessSnapshotAdded(DkmProcessSnapshot)

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

Этот API появился в Visual Studio 15 с обновлением 6 (Дкмапиверсион. VS15Update6).

OnProcessSnapshotRemoved(DkmProcessSnapshot)

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

Этот API появился в Visual Studio 15 с обновлением 6 (Дкмапиверсион. VS15Update6).

OnTraceTimeContextSet(DkmTraceTimeContext, DkmTraceTimeContext, DkmTraceTimeContext, DkmThread)

Вызов события Трацетимеконтекстсет. Компоненты, реализующие интерфейс приемника событий, получат уведомление о событии. Элемент управления возвратит после получения уведомления обо всех компонентах.

Этот метод может вызываться только компонентом, создавшим объект.

Этот API появился в Visual Studio 16 с обновлением 2 (Дкмапиверсион. VS16Update2).

QueryPerformanceCounters(DkmWorkList, DkmCompletionRoutine<DkmPerformanceCountersAsyncResult>)

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

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

Этот API появился в Visual Studio 14 RTM (Дкмапиверсион. VS14RTM).

ReadMemory(UInt64, DkmReadMemoryFlags, Byte[])

Считывает память целевого процесса.

ReadMemory(UInt64, DkmReadMemoryFlags, Void*, Int32)

Считывает память целевого процесса.

ReadMemoryString(UInt64, DkmReadMemoryFlags, UInt16, Int32)

Считывает строку, завершающуюся нулем, из памяти целевого процесса процесса. Это можно использовать для чтения строк ANSI или Unicode (UTF-8, UTF-16 или UTF-32).

RemoveDataItem<T>()

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

(Унаследовано от DkmDataContainer)
RemoveExceptionTrigger(DkmWorkList, Guid, DkmExceptionTrigger, DkmCompletionRoutine<DkmRemoveExceptionTriggerAsyncResult>)

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

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

Этот API появился в Visual Studio 14 RTM (Дкмапиверсион. VS14RTM).

RemoveExceptionTrigger(Guid, DkmExceptionTrigger)

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

Этот API появился в Visual Studio 14 RTM (Дкмапиверсион. VS14RTM).

RemoveSnapshotById(UInt32)

Удалите моментальные снимки процесса для этого процесса.

         Этот API появился в Visual Studio 15 с обновлением 5 (Дкмапиверсион. VS15Update5).
RemoveSnapshots()

Удалите моментальные снимки процесса для этого процесса.

         Этот API появился в Visual Studio 15 с обновлением 3 (Дкмапиверсион. VS15Update3).
SearchRuntimeFunctionTable(UInt64, UInt64)

По возможности метод возвратит содержимое IMAGE_RUNTIME_FUNCTION_ENTRY для адреса. Для поиска статических записей вызывающие объекты должны вызывать эквивалентный метод для Дкмнативемодулеинстанце.

SetDataItem<T>(DkmDataCreationDisposition, T)

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

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

Вызывается компонентом, чтобы указать, что отсоединение не разрешено в процессе.

         Этот API появился в Visual Studio 14 RTM (Дкмапиверсион. VS14RTM).
SetGPUMemoryAccessWarning(Int32, Boolean)

Включает или отключает определенное предупреждение о доступе к памяти GPU.

SetProcessExecuteDirection(DkmProcessExecuteDirection)

Задает направление выполнения процессов. Направление может быть прямым или обратным. Этот метод реализован только для процессов, наподобие времени.

Этот API появился в Visual Studio 15 с обновлением 8 (Дкмапиверсион. VS15Update8).

SetRunningTime(UInt64)

Устанавливает для счетчика времени выполнения указанное значение.

StoppingEventProcessingBegin(Boolean)

Стоппинжевентпроцессингбегин вызывается базовым монитором отладки в потоке событий. Он уведомляет диспетчер о том, что целевой процесс остановлен и может додостигнуть события остановки. Например, базовый монитор отладки Win32 вызывает эту функцию при получении EXCEPTION_DEBUG_EVENT от операционной системы. Этот метод обновляет внутреннее состояние объекта Дкмпроцесс, чтобы разрешить отправку событий остановки.

StoppingEventProcessingContinue()

Стоппинжевентпроцессингконтинуе вызывается базовым монитором отладки в потоке событий. Этот метод вызывается после выдачи всех событий остановки в текущем пакете (например, с именем Дкмрунтимебреакпоинт. Онхит). Этот метод будет уведомлять компоненты, которые реализовали интерфейс прекращения уведомлений о событиях, и будет вызывать диспетчер выполнения для передачи процесса в сейфовый момент. Базовый монитор отладки должен вызвать Стоппинжевентпроцессингконтинуе после любого успешного вызова Стоппинжевентпроцессингбегин. Базовый монитор отладки после того, как он выдавал все события остановки.

Базовый монитор отладки должен иметь возможность повторного вызова, пока он находится в этом методе.

TakeSnapshot(UInt64, DkmThread)

Создание моментального снимка отлаживаемой программы.

         Ограничение расположения: сервер.

         Этот API появился в Visual Studio 15 с обновлением 3 (Дкмапиверсион. VS15Update3).
TakeSnapshotWithException(UInt64, DkmExceptionInformation)

Создание моментального снимка отлаживаемой программы.

         Ограничение расположения: сервер.

         Этот API появился в Visual Studio 15 с обновлением 5 (Дкмапиверсион. VS15Update5).
Terminate(Int32)

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

TryLocateBinary(String, String, String, UInt32, UInt32)

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

Этот API появился в Visual Studio 11 с обновлением 1 (Дкмапиверсион. VS11FeaturePack1).

Unload(Int32)

ProcessExit отправляется диспетчером при вызове Дкмпроцесс:: unload с помощью монитора.

Этот метод может вызываться только компонентом, создавшим объект.

VolatileReadMemory(UInt64, Byte[])

Считывание памяти из целевого процесса. Этот метод отличается от "ReadMemory" тем, что этот метод можно вызывать в любое время (не только при остановке целевого объекта), и отладчик не будет пытаться кэшировать результат этой операции.

VolatileReadMemory(UInt64, Void*, Int32)

Считывание памяти из целевого процесса. Этот метод отличается от "ReadMemory" тем, что этот метод можно вызывать в любое время (не только при остановке целевого объекта), и отладчик не будет пытаться кэшировать результат этой операции.

VolatileWriteMemory(UInt64, Byte[])

Запись в память целевого процесса. Этот метод отличается от "WriteMemory" тем, что этот метод можно вызывать в любое время (не только при остановке целевого объекта), и отладчик не будет пытаться кэшировать результат этой операции. Если запись в память невозможна, возникнет ошибка E_INVALID_MEMORY_ADDRESS. Поскольку запись в память может происходить из режима выполнения, эта ошибка может произойти после того, как операция копирования уже началась, и, таким причиной, может привести к повреждению памяти в целевом процессе. По этой причине эта функция должна использоваться с осторожностью, а сбои могут быть неустранимыми.

WaitForPausingEventProcessingComplete(Int32, Boolean)

Этот метод может быть вызван из компонента монитора для ожидания любой неостановки при обработке событий Pause, а также любой Идкмпроцессконтинуенотификатион обработки, которая в данный момент завершается. Помимо прочего, это может оказаться полезным при попытке прервать действия Func-evals, убедившись, что у целевого процесса есть возможность запуска. Обратите внимание, что этот метод не предоставляет никаких гарантий того, что не будет немедленно приостанавливать события, поэтому код не должен считать, что после возврата от этого API не происходит обработки события остановки.

Ограничение расположения: API должен вызываться из компонента монитора (уровень компонентов < 100 000).

Этот API появился в Visual Studio 15 с обновлением 6 (Дкмапиверсион. VS15Update6).

WriteDump(DkmDumpType, String, DkmThread)

Этот метод записывает дамп памяти процесса в указанный путь.

WriteMemory(UInt64, Byte[])

Записывает память в целевой процесс. Перед передачей данных система проверяет, чтобы все данные в базовом адресе и памяти указанного размера были доступны для доступа на запись, и если она недоступна, функция вызывает ошибку E_INVALID_MEMORY_ADDRESS.

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