DkmProcess Klasa

Definicja

DkmProcess reprezentuje proces docelowy, który jest debugowany. Debuger debuguje procesy, więc jest to podstawowa jednostka debugowania. Proces DkmProcess może reprezentować proces systemowy lub proces wirtualny, taki jak minidumps.

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
Dziedziczenie
Dziedziczenie
Atrybuty

Właściwości

BaseDebugMonitorId

DkmBaseDebugMonitorId identyfikuje podstawowy monitor debugowania używany do inspekcji i kontrolowania debugowanego procesu. Na przykład DkmBaseDebugMonitorId.WindowsProcess jest używany do procesów debugowanych przez interfejs API debugowania Win32 i DkmBaseDebugMonitorId.DumpFile jest używany do minidumps.

Connection

Reprezentuje to połączenie między monitorem a środowiskiem IDE. Może to być połączenie lokalne, jeśli monitor jest uruchomiony w tym samym procesie co środowisko IDE, lub może być połączeniem zdalnym. W procesie monitorowania istnieje tylko jedno połączenie.

DebugLaunchSettings

Ustawienia podane podczas operacji uruchamiania debugowania z systemu projektu lub innego wywołującego element LaunchDebugTargets (lub różne inne interfejsy API uruchamiania debugowania).

EngineSettings

Zawiera ustawienia debugowania dla całej sesji. Istnieje jedno wystąpienie tego obiektu dla identyfikatora GUID aparatu (np. jedno wystąpienie comPlusOnlyEng2, jedno wystąpienie comPlusNativeEng).

IsAppPackage

Wartość true, jeśli proces należy do pakietu aplikacji ze Sklepu Windows lub Windows Phone pakietu aplikacji.

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

IsMultiArch

Prawda, jeśli proces zawiera kod z wielu architektur.

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 9 (DkmApiVersion.VS16Update9).

IsNativeDebuggingEnabled

Jeśli to prawda, debuger podejmie próbę debugowania kodu natywnego — zostanie zatrzymany w przypadku wyjątków natywnych, załadować symbole, wyświetlić natywne ramki na stosie wywołań, powiązać i trafić do punktów przerwania oraz pozostawić wątki natywne zatrzymane w stanie przerwania.

IsUnloaded

Zwraca wartość true, jeśli dla tego obiektu zostało zgłoszone zdarzenie "zwolniony" (na przykład: DkmThread::Unload jest wywoływane) lub jeśli obiekt został zamknięty. Należy pamiętać, że podczas sprawdzania tego stanu należy zachować ostrożność, ponieważ bez synchronizacji zwrócony stan może nie być już dokładny po odczytaniu instrukcji.

(Odziedziczone po DkmDataContainer)
LivePart

[Opcjonalnie] Informacje istotne dla uruchomionego procesu. Na przykład ta część NIE będzie obecna dla minidumps.

Path

Pełna ścieżka do początkowego pliku wykonywalnego procesu.

StartMethod

StartMethod opisuje, jak aparat debugowania rozpoczął debugowanie tego procesu.

SystemInformation

Zawiera informacje o systemie komputerowym, w którym działa ten proces. Jeśli ten proces działa w ramach WOW (emulacja 32-bitowa w 64-bitowym systemie operacyjnym), te informacje będą dotyczyć podsystemu 32-bitowego, a nie podsystemu 64-bitowego.

UniqueId

Identyfikator GUID, który jednoznacznie identyfikuje ten obiekt procesu. Ta wartość identyfikatora GUID jest taka sama jak identyfikator GUID uwidoczniony w warstwie SDM (IDebugProcess2::GetProcessId) i w warstwie automatyzacji.

Metody

AbortingFuncEvalExecution(DkmFuncEvalFlags)

AbortingFuncEvalExecution jest wywoływany przez monitor debugowania środowiska uruchomieniowego podczas przerywania oceny funkcji. AbortingFuncEvalExecution zaktualizuje stan wewnętrzny obiektu DkmProcess, aby zatrzymanie menedżera zdarzeń umożliwiło dwa zatrzymania zdarzeń za pośrednictwem: pełny punkt przerwania oceny funkcji lub przerwania asynchronicznego.

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

Dodaje wyzwalacz wyjątku, aby zdarzenia ExceptionTriggerHit były wysyłane po spełnieniu wyzwalacza wyjątku.

Jeśli dla tego elementu {SourceId, DkmExceptionTrigger} jest już wyzwolony wyjątek, istniejący wyzwalacz zostanie zmodyfikowany przy użyciu nowych ustawień. Jeśli na przykład składnik definiuje wyzwalacz, który zostanie zatrzymany, gdy zostanie zgłoszony wyjątek naruszenia dostępu, a później ustawi wyzwalacz do uruchomienia, gdy jakikolwiek wyjątek Win32 zostanie nieobsługiwany, wyzwalacz naruszenia dostępu zostanie usunięty.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę ukończenia.

AddExceptionTrigger(Guid, DkmExceptionTrigger)

Dodaje wyzwalacz wyjątku, aby zdarzenia ExceptionTriggerHit były wysyłane po spełnieniu wyzwalacza wyjątku.

Jeśli dla tego elementu {SourceId, DkmExceptionTrigger} jest już wyzwolony wyjątek, istniejący wyzwalacz zostanie zmodyfikowany przy użyciu nowych ustawień. Jeśli na przykład składnik definiuje wyzwalacz, który zostanie zatrzymany, gdy zostanie zgłoszony wyjątek naruszenia dostępu, a później ustawi wyzwalacz do uruchomienia, gdy jakikolwiek wyjątek Win32 zostanie nieobsługiwany, wyzwalacz naruszenia dostępu zostanie usunięty.

AllocateVirtualMemory(UInt64, Int32, Int32, Int32)

Rezerwuje i/lub zatwierdza region pamięci w wirtualnej przestrzeni adresowej procesu docelowego. Funkcja inicjuje pamięć przydzielaną do zera, chyba że zostanie użyta MEM_RESET. Aby uzyskać dodatkowe informacje, zobacz interfejs API Win32 VirtualAlloc w witrynie MSDN.

AsyncBreak(Boolean)

Ta metoda poinformuje monitory debugowania o asynchronicznym przerwaniu wykonywania procesu debuggee. Zdarzenie AsyncBreakComplete jest wysyłane po zakończeniu operacji.

BeforeStopDebugging()

Program obsługi, który jest powiadamiany przed zakończeniem lub odłączonym procesem docelowym.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

ClearAllGPUMemoryAccessWarnings()

Wyłącza wszystkie aktywne ostrzeżenia dotyczące dostępu do pamięci procesora GPU.

ClearExceptionTriggers(Guid)

Usuwa wszystkie wyzwalacze wyjątków, które zostały ustawione przy użyciu określonego identyfikatora SourceId. Po powrocie tej metody wyzwalacze wyjątków nie będą już zgłaszać zdarzeń ExceptionTriggerHit. Wyzwalacze wyjątków są automatycznie czyszczone po zamknięciu obiektu DkmProcess.

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

Tworzy nowy obiekt procesu. Ta metoda jest wywoływana z podstawowego monitora debugowania w wątku zdarzeń w ramach przetwarzania IDkmStartDebuggingOperations.AttachToProcess lub IDkmStartDebuggingOperations.ResumeDebuggedProcess.

Ta metoda spowoduje wysłanie zdarzenia ProcessCreate.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 9 (DkmApiVersion.VS16Update9).

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

Tworzy nowy obiekt procesu. Ta metoda jest wywoływana z podstawowego monitora debugowania w wątku zdarzeń w ramach przetwarzania IDkmStartDebuggingOperations.AttachToProcess lub IDkmStartDebuggingOperations.ResumeDebuggedProcess.

Ta metoda spowoduje wysłanie zdarzenia ProcessCreate.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

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

Tworzy nowy obiekt procesu. Ta metoda jest wywoływana z podstawowego monitora debugowania w wątku zdarzeń w ramach przetwarzania IDkmStartDebuggingOperations.AttachToProcess lub IDkmStartDebuggingOperations.ResumeDebuggedProcess.

Ta metoda spowoduje wysłanie zdarzenia ProcessCreate.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

CreateNativeInstructionAddress(UInt64)

Rozwiązuje instrukcję procesora CPU z modułem natywnym i zwraca instrukcję DkmNativeInstructionAddress do reprezentowania tej instrukcji procesora CPU. Jeśli wskaźnik instrukcji nie znajduje się w module, zwracany jest obiekt DkmUnknownInstructionAddress.

Detach()

Ta metoda jest wywoływana, aby poinformować monitor o odłączeniu od procesu docelowego. Spowoduje to wyzwolenie zdarzenia ProcessExit do wysłania w wątku zdarzenia.

Disassemble(DkmInstructionAddress, UInt32)

Zdezasembluj zakres adresów w procesie debuggee.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

FindNativeModule(UInt64)

Rozwiązuje adres wirtualny z modułem natywnym. Jeśli adres wirtualny nie znajduje się w module, zwracany jest wartość null (S_FALSE zwracany kod w języku natywnym). Wyłączone moduły nie zostaną zwrócone.

FindNativeModule(UInt64, Boolean)

Rozwiązuje adres wirtualny z modułem natywnym. Jeśli adres wirtualny nie znajduje się w module, zwracany jest wartość null (S_FALSE zwracany kod w języku natywnym).

FindProcess(Guid)

Znajdź obiekt DkmProcess. Jeśli żaden obiekt z danym kluczem wejściowym nie istnieje, funkcja FindProcess zakończy się niepowodzeniem.

FindProcessSnapshot(UInt32)

Znajdź element DkmProcessSnapshot w ramach tego obiektu DkmProcess. Jeśli nie ma żadnego elementu z danym kluczem wejściowym, funkcja FindProcessSnapshot zakończy się niepowodzeniem.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

FindRuntimeInstance(DkmRuntimeInstanceId)

Znajdź element DkmRuntimeInstance w tym module DkmProcess. Jeśli nie ma żadnego elementu z danym kluczem wejściowym, funkcja FindRuntimeInstance zakończy się niepowodzeniem.

FindSystemThread(Int32)

Znajdź element DkmThread w tym module DkmProcess. Jeśli nie ma żadnego elementu z danym kluczem wejściowym, element FindSystemThread zakończy się niepowodzeniem. Jeśli obiekt zostanie znaleziony, zawsze będzie zawierać część "System".

FreeVirtualMemory(UInt64, Int32, Int32)

Zwalnia i/lub zwalnia region pamięci w wirtualnej przestrzeni adresowej procesu docelowego. Aby uzyskać dodatkowe informacje, zobacz VirtualFree Win32 API in MSDN (Interfejs API VirtualFree Win32 w witrynie MSDN).

GetComputeKernels()

GetComputeKernels wylicza elementy DkmGPUComputeKernel tego obiektu DkmProcess.

GetDataItem<T>()

Pobiera wystąpienie elementu "T", które zostało dodane do tego wystąpienia kontenera. Jeśli ten kontener nie zawiera ciągu "T", ta funkcja zwróci wartość null.

(Odziedziczone po DkmDataContainer)
GetDumpExePath()

Zwraca ścieżkę do podstawowego pliku wykonywalnego w debugowanym minidump.

Ten interfejs API został wprowadzony w programie Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

GetDumpSaveTime()

Zwraca czas zapisania minidumpa.

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 10 (DkmApiVersion.VS16Update10).

GetEndingTimeContext()

Pobiera kontekst czasu reprezentujący położenie końcowe śledzenia.

Ten interfejs API został wprowadzony w programie Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

GetGPUBreakpointBehavior()

Uzyskaj zachowanie punktu przerwania procesu.

GetHandleCount()

Uzyskuje liczbę aktywnych dojść w procesie.

GetInstructionAddress(DkmInstructionAddress, Int32)

Zwraca adres instrukcji kth względem adresu początkowego. W przypadku zestawów instrukcji o stałej długości jest to proste arytmetyczne. W przypadku zestawów instrukcji o zmiennej długości do uzyskania tego adresu jest wymagana odwrotna dezasemblacja.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

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

Zwraca adres instrukcji kth względem adresu początkowego. W przypadku zestawów instrukcji o stałej długości jest to proste arytmetyczne. W przypadku zestawów instrukcji o zmiennej długości do uzyskania tego adresu jest wymagana odwrotna dezasemblacja.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę uzupełniania.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

GetInstructionAddress(DkmWorkList, UInt64, DkmCompletionRoutine<DkmGetInstructionAddressAsyncResult>)

Rozwiązuje instrukcję procesora CPUAddress do elementu DkmInstructionAddress.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę uzupełniania.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika IDE (poziom > składnika 100 000).

GetManagedStowedException()

Pobierz zarządzany wyjątek z zrzutu. Spowoduje to zwrócenie S_FALSE, jeśli nie ma zarządzanego wyjątku stowed.

Ten interfejs API został wprowadzony w programie Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3).

GetMemoryReadTime(UInt64, UInt32, DkmMemoryTimeFlags)

Wywołano element w celu określenia czasu względem bieżącego czasu procesu, z którego jest rozpoznawana wartość odczytu pamięci.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8).

GetNativeRuntimeInstance()

Zapewnia dostęp do elementu DkmRuntimeInstance, który jest przeznaczony dla naiwnego kodu w procesie. Dla procesu istnieje dokładnie jedna klasa DkmRuntimeInstance.

GetNativeStowedException()

Pobierz natywny wyjątek z zrzutu. Spowoduje to zwrócenie S_FALSE, jeśli nie ma natywnego wyjątku.

Ten interfejs API został wprowadzony w programie Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3).

GetPendingBreakpoints()

GetPendingBreakpoints wylicza elementy DkmPendingBreakpoint tego obiektu DkmProcess.

GetProcesses()

GetProcesses wylicza wszystkie utworzone obiekty DkmProcess.

GetProcessExecuteDirection()

Pobiera wartość wskazującą, czy proces jest uruchamiany w kierunku do przodu, czy odwrotnie. Ta metoda jest implementowana tylko w przypadku procesów podróży w czasie.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8).

GetProcessorArchitecture(UInt64, DkmProcessorArchitecture)

Określa architekturę dla danego adresu.

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 9 (DkmApiVersion.VS16Update9).

GetProcessSnapshots()

GetProcessSnapshots wylicza elementy DkmProcessSnapshot tego obiektu DkmProcess.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

GetRunningTime()

Uzyskuje liczbę cykli zegara, które debuggee został uruchomiony od czasu ostatniego wywołania ResetRunningTime().

GetRuntimeFunctionResolutionRequests()

GetRuntimeFunctionResolutionRequests wylicza elementy DkmRuntimeFunctionResolutionRequest tego obiektu DkmProcess.

GetRuntimeInstances()

GetRuntimeInstances wylicza elementy DkmRuntimeInstance tego obiektu DkmProcess.

GetSerializedProcessInfo()

Uzyskaj informacje o serializowanym procesie.

Ten interfejs API został wprowadzony w programie Visual Studio 17 Update 2 (DkmApiVersion.VS17Update2).

GetSourceSnapshot()

Pobierz obiekt migawki źródłowej dla debugowanego procesu. Debugowany proces musi reprezentować migawki.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

GetStowedExceptions()

Pobierz schowane wyjątki z zrzutu.

Ten interfejs API został wprowadzony w programie Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3).

GetSystemThreads()

Zawiera listę aktywnych wątków systemowych w procesie. Wątki, które nie są wątkami systemowymi (DkmThread::System ma wartość null) lub zostały rozładowane, nie będą obecne w tej kolekcji.

GetTargetCompositionServices(DkmTargetCompositionScenario, Object)

Pobiera element IDebugServiceManager dla odpowiedniego scenariusza, który może służyć do uzyskiwania dostępu do rozszerzeń opartych na kompozycji docelowej.

Ograniczenie lokalizacji: interfejsy kompozycji docelowej nie mogą być kierowane między maszynami, ale są bezpieczne do użycia, jeśli są dostępne.

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

GetThreads()

GetThreads wylicza elementy DkmThread tego obiektu DkmProcess.

InvisibleWriteMemory(UInt64, Byte[])

Zapisz pamięć w procesie docelowym, ale ukryj zapis przed wywołaniami funkcji ReadMemory. Ten interfejs API może służyć do stosowania poprawek instrukcji lub danych w procesie docelowym w celu zaimplementowania funkcji debugera. Przed transferem danych system sprawdza, czy wszystkie dane w adresie podstawowym i pamięci o określonym rozmiarze są dostępne dla dostępu do zapisu, a jeśli nie jest dostępny, funkcja zgłasza błąd E_INVALID_MEMORY_ADDRESS.

IsLoadComplete()

Zwraca wartość true, jeśli po załadowaniu wszystkich początkowych modułów/utworzeniu wątku wszystkie środowiska uruchomieniowe zostaną wysłane dla wszystkich środowisk uruchomieniowych obecnych podczas rozpoczynania debugowania procesu. Pamiętaj, że ta definicja może być inna niż definicja interfejsu API debugowania Win32 ukończona, ponieważ inne wystąpienia środowiska uruchomieniowego mogą wymagać dodatkowego czasu na załadowanie.

Ten interfejs API został wprowadzony w programie Visual Studio 12 Update 2 (DkmApiVersion.VS12Update2).

IsStopped()

Ta metoda umożliwia składnikowi określenie, czy proces jest uznawany za zatrzymany przez dyspozytor. Ta metoda nie musi być wywoływana z poziomu metody interfejsu, która wymaga zatrzymania procesu docelowego, ale może być przydatna podczas operacji, które mogą być wywoływane z trybu uruchamiania.

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

Ta metoda spowoduje przeszukanie dysku lokalnego i wszystkich skonfigurowanych serwerów symboli dla pliku binarnego zgodnego z parametrami. Zwracana jest ścieżka do tego pliku na dysku lokalnym. Jeśli plik znajdował się na serwerze symboli, jest pobierany do pamięci podręcznej, a ścieżka lokalna jest zwracana.

OnAsyncBreakComplete(DkmAsyncBreakStatus, DkmThread)

Zgłoś zdarzenie AsyncBreakComplete. Składniki, które implementują interfejs ujścia zdarzeń, otrzymają powiadomienie o zdarzeniu. Ta metoda spowoduje kolejkowanie zdarzenia, a kontrolka natychmiast powróci do elementu wywołującego.

OnEntryPoint(DkmThread)

Zgłoś zdarzenie programu EntryPoint. Składniki, które implementują interfejs ujścia zdarzeń, otrzymają powiadomienie o zdarzeniu. Ta metoda spowoduje kolejkowanie zdarzenia, a kontrolka natychmiast powróci do elementu wywołującego.

OnHiddenEntryPoint(DkmThread)

Zgłoś zdarzenie HiddenEntryPoint. Składniki, które implementują interfejs ujścia zdarzeń, otrzymają powiadomienie o zdarzeniu. Ta metoda spowoduje kolejkowanie zdarzenia, a kontrolka natychmiast powróci do elementu wywołującego.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

OnInstructionPatchInserted(UInt64, Byte[])

Metoda wywoływana przez podstawowy monitor debugowania w celu poinformowania innych składników, że pamięć instrukcji procesu docelowego została zmodyfikowana. Obecnie jest to używane tylko w przypadku wstawiania punktu przerwania.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

OnInstructionPatchRemoved(UInt64, Byte[])

Metoda wywoływana przez podstawowy monitor debugowania w celu poinformowania innych składników, że pamięć instrukcji procesu docelowego została przywrócona do pierwotnego stanu. Obecnie jest to używane tylko do usuwania punktów przerwania.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

OnLoadComplete()

Ta metoda jest wywoływana przez podstawowy monitor debugowania procesu w celu wywołania zdarzenia LoadComplete. LoadComplete jest wystawiany po utworzeniu obiektów DkmModuleInstance dla początkowego zestawu modułów w procesie, a zazwyczaj został również utworzony początkowy zestaw wątków.

Zdarzenie ukończenia ładowania może zostać odroczone przez monitor debugowania środowiska uruchomieniowego przy użyciu polecenia DkmLoadCompleteEventDeferral.Add, w tym przypadku ta metoda zostanie natychmiast ukończona. W przeciwnym razie ta metoda wyśle zdarzenie do wszystkich składników, które implementują interfejs synchronizacji zdarzeń. Kontrolka zostanie zwrócona po powiadomieniu wszystkich składników.

Ta metoda może być wywoływana tylko przez składnik, który utworzył obiekt.

OnProcessSnapshotAdded(DkmProcessSnapshot)

Procedura obsługi, która jest powiadamiana po utworzeniu migawki procesu dla danego procesu.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

OnProcessSnapshotRemoved(DkmProcessSnapshot)

Procedura obsługi, która jest powiadamiana po usunięciu migawki procesu z danego procesu.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

OnTraceTimeContextSet(DkmTraceTimeContext, DkmTraceTimeContext, DkmTraceTimeContext, DkmThread)

Zgłoś zdarzenie TraceTimeContextSet. Składniki, które implementują interfejs ujścia zdarzeń, otrzymają powiadomienie o zdarzeniu. Kontrolka zostanie zwrócona po powiadomieniu wszystkich składników.

Ta metoda może być wywoływana tylko przez składnik, który utworzył obiekt.

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 2 (DkmApiVersion.VS16Update2).

QueryPerformanceCounters(DkmWorkList, DkmCompletionRoutine<DkmPerformanceCountersAsyncResult>)

Asynchroniczna metoda uzyskiwania danych o chronometrażu z usługi IDkmPerformanceMeasurementDispatcherService zebranych ze zdarzeń emitowanych przez środowiska uruchomieniowe w procesie. Jest to nazywane asynchronicznie, ponieważ uzyskanie obciążenia debugera może być bardzo kosztowne.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę uzupełniania.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

ReadMemory(UInt64, DkmReadMemoryFlags, Byte[])

Odczytywanie pamięci procesu docelowego.

ReadMemory(UInt64, DkmReadMemoryFlags, Void*, Int32)

Odczytywanie pamięci procesu docelowego.

ReadMemoryString(UInt64, DkmReadMemoryFlags, UInt16, Int32)

Odczytuje ciąg zakończony o wartości null z pamięci procesu docelowego. Może służyć do odczytywania ciągów ANSI lub Unicode (UTF-8, UTF-16 lub UTF-32).

RemoveDataItem<T>()

Usuń wystąpienie "T" z tego kontenera. Zwykle nie trzeba wywoływać tej metody, ponieważ kontener danych zostanie automatycznie opróżniony po zamknięciu obiektu.

(Odziedziczone po DkmDataContainer)
RemoveExceptionTrigger(DkmWorkList, Guid, DkmExceptionTrigger, DkmCompletionRoutine<DkmRemoveExceptionTriggerAsyncResult>)

Usuwa wcześniej ustawiony wyzwalacz wyjątku. Należy pamiętać, że etap przetwarzania jest ignorowany i nie musi być zgodny z pierwotnie podaną wartością.

Ta metoda dołączy nowy element roboczy do określonej listy roboczej i powróci po dołączeniu elementu roboczego. Rzeczywiste przetwarzanie elementu roboczego jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony, że żądanie zostało ukończone przez procedurę uzupełniania.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

RemoveExceptionTrigger(Guid, DkmExceptionTrigger)

Usuwa wcześniej ustawiony wyzwalacz wyjątku. Należy pamiętać, że etap przetwarzania jest ignorowany i nie musi być zgodny z pierwotnie podaną wartością.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

RemoveSnapshotById(UInt32)

Usuń migawki procesu dla tego procesu.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5).

RemoveSnapshots()

Usuń migawki procesu dla tego procesu.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

SearchRuntimeFunctionTable(UInt64, UInt64)

Metoda zwróci zawartość IMAGE_RUNTIME_FUNCTION_ENTRY adresu, jeśli jest to możliwe. W przypadku wyszukiwania wpisów statycznych obiekty wywołujące powinny wywoływać równoważną metodę w porcie DkmNativeModuleInstance.

SetCoreDumpParserTargetCompositionServices(Object)

Pobiera element IDebugServiceManager dla scenariusza analizowania plików core, który może służyć do uzyskiwania dostępu do rozszerzeń opartych na kompozycji docelowej.

Ograniczenie lokalizacji: interfejsy kompozycji docelowej nie mogą być kierowane między maszynami, ale są bezpieczne do użycia, jeśli są dostępne.

Ten interfejs API został wprowadzony w programie Visual Studio 16 Update 8 (DkmApiVersion.VS16Update8).

SetDataItem<T>(DkmDataCreationDisposition, T)

Umieść nowy element w kontenerze danych.

(Odziedziczone po DkmDataContainer)
SetDetachUnavailable(Int32)

Wywoływana przez składnik w celu wskazania, że odłączanie nie jest dozwolone w procesie.

Ten interfejs API został wprowadzony w programie Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

SetGPUMemoryAccessWarning(Int32, Boolean)

Włącza/wyłącza ostrzeżenie o dostępie do pamięci określonego procesora GPU.

SetProcessExecuteDirection(DkmProcessExecuteDirection)

Ustawia kierunek wykonywania procesów. Kierunek może być do przodu lub odwrotny. Ta metoda jest implementowana tylko w przypadku procesów podróży w czasie.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8).

SetRunningTime(UInt64)

Ustawia licznik czasu wykonywania na określoną wartość.

StoppingEventProcessingBegin(Boolean)

Polecenie StoppingEventProcessingBegin jest wywoływane przez podstawowy monitor debugowania w wątku zdarzeń. Powiadamia dyspozytor o zatrzymaniu procesu docelowego i może osiągnąć zdarzenie zatrzymania. Na przykład podstawowy monitor debugowania Win32 wywołuje to za każdym razem, gdy otrzyma EXCEPTION_DEBUG_EVENT z systemu operacyjnego. Ta metoda aktualizuje stan wewnętrzny obiektu DkmProcess, aby można było wysyłać zdarzenia zatrzymania.

StoppingEventProcessingContinue()

Polecenie StoppingEventProcessingContinue jest wywoływane przez podstawowy monitor debugowania w wątku zdarzeń. Ta metoda jest wywoływana po wydaniu wszystkich zdarzeń zatrzymania w bieżącej partii (np. DkmRuntimeBreakpoint.OnHit). Ta metoda powiadomi składniki, które zaimplementowały interfejs powiadamiania o zatrzymaniu zdarzenia i wywoła menedżera wykonywania w celu poślizgu procesu do bezpiecznego punktu. Podstawowy monitor debugowania musi wywołać metodę StoppingEventProcessingContinue po pomyślnym wywołaniu metody StoppingEventProcessingBegin. podstawowy monitor debugowania po wystawieniu wszystkich zdarzeń zatrzymania.

Podstawowy monitor debugowania powinien oczekiwać ponownego wywołania, gdy znajduje się on w tej metodzie.

TakeSnapshot(UInt64, DkmThread)

Utwórz migawkę debuggee.

Ograniczenie lokalizacji: Serwer.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

TakeSnapshotWithException(UInt64, DkmExceptionInformation)

Utwórz migawkę debuggee.

Ograniczenie lokalizacji: Serwer.

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5).

Terminate(Int32)

Ta metoda jest wywoływana, aby poinformować monitor o zakończeniu procesu docelowego. Spowoduje to wyzwolenie zdarzenia ProcessExit do wysłania w wątku zdarzenia.

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

Wywoływana w celu zainicjowania lokalizowania plików binarnych, których obrazy mogły nie zostać wcześniej odnalezione lub podjęto próbę załadowania. Ta metoda spowoduje przeszukanie dysku lokalnego i wszystkich skonfigurowanych serwerów symboli dla pliku binarnego zgodnego z parametrami. Zwracana jest ścieżka do tego pliku na dysku lokalnym. Jeśli plik znajdował się na serwerze symboli, jest pobierany do pamięci podręcznej, a ścieżka lokalna jest zwracana.

Ten interfejs API został wprowadzony w programie Visual Studio 11 Update 1 (DkmApiVersion.VS11FeaturePack1).

Unload(Int32)

Element ProcessExit jest wysyłany przez dyspozytor, gdy DkmProcess::Unload jest wywoływany przez monitor.

Ta metoda może być wywoływana tylko przez składnik, który utworzył obiekt.

VolatileReadMemory(UInt64, Byte[])

Odczytaj pamięć z procesu docelowego. Ta metoda różni się od metody "ReadMemory" w tym, że ta metoda może być wywoływana w dowolnym momencie (nie tylko wtedy, gdy element docelowy jest zatrzymany), a debuger nie będzie próbował buforować wyniku tej operacji.

VolatileReadMemory(UInt64, Void*, Int32)

Odczytaj pamięć z procesu docelowego. Ta metoda różni się od metody "ReadMemory" w tym, że ta metoda może być wywoływana w dowolnym momencie (nie tylko wtedy, gdy element docelowy jest zatrzymany), a debuger nie będzie próbował buforować wyniku tej operacji.

VolatileWriteMemory(UInt64, Byte[])

Zapisz w pamięci procesu docelowego. Ta metoda różni się od metody WriteMemory w tym, że ta metoda może być wywoływana w dowolnym momencie (nie tylko wtedy, gdy element docelowy jest zatrzymany), a debuger nie spróbuje buforować wyniku tej operacji. Jeśli nie można zapisać żadnej pamięci, zostanie zgłoszony błąd E_INVALID_MEMORY_ADDRESS. Ponieważ zapis pamięci może wystąpić w trybie uruchamiania, ten błąd może wystąpić po rozpoczęciu operacji kopiowania, co może prowadzić do uszkodzenia pamięci w procesie docelowym. Z tego powodu ta funkcja musi być używana z ostrożnością, a błędy mogą być śmiertelne.

WaitForPausingEventProcessingComplete(Int32, Boolean)

Tę metodę można wywołać z składnika monitora, aby czekać na wszelkie nieobsługiwane z obsługą zdarzeń wstrzymania, a także wszelkie operacje przetwarzania IDkmProcessContinueNotification, które jest obecnie wykonywane do zakończenia. Między innymi może to być przydatne podczas próby przerwania func-evals, upewniając się, że proces docelowy ma możliwość uruchomienia. Należy pamiętać, że ta metoda nie zapewnia żadnej gwarancji, że nie będzie od razu wstrzymywania zdarzeń, więc kod nie powinien zakładać, że po powrocie z tego interfejsu API nie ma miejsca zatrzymanie przetwarzania zdarzeń.

Ograniczenie lokalizacji: interfejs API musi być wywoływany ze składnika Monitor (poziom < składnika 100 000).

Ten interfejs API został wprowadzony w programie Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

WriteDump(DkmDumpType, String, DkmThread)

Ta metoda spowoduje zapisanie zrzutu pamięci procesu do określonej ścieżki.

WriteMemory(UInt64, Byte[])

Zapisuje pamięć w procesie docelowym. Przed transferem danych system sprawdza, czy wszystkie dane w adresie podstawowym i pamięci o określonym rozmiarze są dostępne dla dostępu do zapisu, a jeśli nie jest dostępny, funkcja zgłasza błąd E_INVALID_MEMORY_ADDRESS.

Dotyczy