DkmProcess Klasa

Definicja

DkmProcess reprezentuje proces docelowy, który jest debugowany. Debuger debuguje procesy, więc jest podstawową jednostką debugowania. DkmProcess może reprezentować proces systemowy lub proces wirtualny, taki jak minizrzutów.

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
Atrybuty

Właściwości

BaseDebugMonitorId

DkmBaseDebugMonitorId identyfikuje podstawowy Monitor debugowania używany do sprawdzania i kontrolowania debugowanego procesu. Na przykład DkmBaseDebugMonitorId. zasób windowsprocess jest używany w przypadku procesów debugowanych przez interfejs API debugowania Win32 i DkmBaseDebugMonitorId. zrzut jest używany do minizrzutów.

Connection

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

DebugLaunchSettings

Ustawienia podane podczas operacji uruchamiania debugowania z systemu projektu lub innego obiektu wywołującego LaunchDebugTargets (lub inne inne rozpoczęte debugowanie interfejsów API).

EngineSettings

Zawiera ustawienia debugowania całej sesji. Istnieje jedno wystąpienie tego obiektu na identyfikator GUID aparatu (np. jedno wystąpienie dla COMPlusOnlyEng2, jedno wystąpienie dla COMPlusNativeEng).

IsAppPackage

Ma wartość true, jeśli proces należy do pakietu aplikacji ze sklepu Windows lub pakietu aplikacji Windows Phone.

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

IsNativeDebuggingEnabled

Jeśli wartość jest równa true, debuger podejmie próbę debugowania kodu natywnego — zostanie zatrzymany na natywnych wyjątkach, Załaduj symbole, wyświetlić ramki natywne na stosie wywołań, w punktach przerwania powiązania i trafień i pozostawić natywne wątki zatrzymane w stanie przerwania.

IsUnloaded

Zwraca wartość PRAWDA, jeśli zgłoszono zdarzenie "zwolnione" dla tego obiektu (przykład: DkmThread:: Unload jest wywoływana) lub jeśli obiekt został zamknięty. Należy zauważyć, że należy zachować ostrożność podczas sprawdzania tego stanu jako, bez synchronizacji, zwrócony stan może nie być już dokładny po odczytaniu.

(Odziedziczone po DkmDataContainer)
LivePart

Obowiązkowe Informacje istotne dla uruchomionego procesu. Na przykład ta część nie będzie obecna dla minizrzutów.

Path

Pełna ścieżka do uruchamiania pliku wykonywalnego procesu.

StartMethod

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

SystemInformation

Zawiera informacje o systemie komputera, w którym jest uruchomiony ten proces. Jeśli ten proces jest uruchomiony w ramach emulacji WOW (32-bit na 64-bitowym systemie operacyjnym), te informacje będą przeznaczone dla podsystemu 32-bitowego, a nie w podsystemie 64-bitowym.

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, dzięki czemu Menedżer zdarzeń zatrzymujący będzie zezwalał na dwa zdarzenia zatrzymujące: punkt przerwania oceny funkcji lub przerwanie asynchroniczne.

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

Dodaje wyzwalacz wyjątku, dzięki czemu zdarzenia ExceptionTriggerHit będą wysyłane po spełnieniu wyzwalacza wyjątku.

Jeśli istnieje już wyjątek zdefiniowany dla tej kolekcji {SourceId, DkmExceptionTrigger}, istniejący wyzwalacz zostanie zmodyfikowany przy użyciu nowych ustawień. Na przykład, jeśli składnik definiuje wyzwalacz do zatrzymania, gdy zostanie zgłoszony wyjątek naruszenia zasad dostępu, i później ustawi wyzwalacz do uruchomienia w przypadku nieobsłużonego wyjątku Win32, wyzwalacz naruszenia zasad dostępu zostanie usunięty.

Ta metoda spowoduje dołączenie nowego elementu pracy do określonej listy zadań i zwrócenie po dołączeniu elementu pracy. Rzeczywiste przetwarzanie elementu pracy jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony o tym, że żądanie zostało zakończone przez procedurę ukończenia.

AddExceptionTrigger(Guid, DkmExceptionTrigger)

Dodaje wyzwalacz wyjątku, dzięki czemu zdarzenia ExceptionTriggerHit będą wysyłane po spełnieniu wyzwalacza wyjątku.

Jeśli istnieje już wyjątek zdefiniowany dla tej kolekcji {SourceId, DkmExceptionTrigger}, istniejący wyzwalacz zostanie zmodyfikowany przy użyciu nowych ustawień. Na przykład, jeśli składnik definiuje wyzwalacz do zatrzymania, gdy zostanie zgłoszony wyjątek naruszenia zasad dostępu, i później ustawi wyzwalacz do uruchomienia w przypadku nieobsłużonego wyjątku Win32, wyzwalacz naruszenia zasad 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ęć przydzielona do zera, chyba że zostanie użyta MEM_RESET. Aby uzyskać dodatkowe informacje, zobacz Funkcja VirtualAlloc Win32 API w witrynie MSDN.

AsyncBreak(Boolean)

Ta metoda poinformuje monitory debugowania o asynchronicznym przerwaniu wykonywania procesu debugowanego obiektu. Po zakończeniu operacji jest wysyłane zdarzenie AsyncBreakComplete.

BeforeStopDebugging()

Program obsługi, który jest powiadamiany przed zakończeniem lub odłączeniem procesu docelowego.

Ograniczenie lokalizacji: interfejs API musi zostać wywołany 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 dostępu do pamięci procesora GPU.

ClearExceptionTriggers(Guid)

Usuwa wszystkie wyzwalacze wyjątków, które zostały ustawione z określonym identyfikatorem SourceId. Po powrocie tej metody wyzwalacze wyjątków nie będą już powodowały zdarzeń ExceptionTriggerHit. Wyzwalacze wyjątków są automatycznie czyszczone, gdy obiekt DkmProcess jest zamknięty.

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 wyśle zdarzenie ProcessCreate.

Ograniczenie lokalizacji: interfejs API musi zostać wywołany ze składnika monitora (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 wyśle zdarzenie ProcessCreate.

Ograniczenie lokalizacji: interfejs API musi zostać wywołany ze składnika monitora (poziom składnika < 100 000).

CreateNativeInstructionAddress(UInt64)

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

Detach()

Ta metoda jest wywoływana w celu poinformowania monitora o odłączeniu od procesu docelowego. Spowoduje to wyzwolenie zdarzenia ProcessExit do wysłania w wątku zdarzeń.

Disassemble(DkmInstructionAddress, UInt32)

Odbierz zakres adresów w procesie debugowanego obiektu.

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

FindNativeModule(UInt64)

Rozwiązuje adres wirtualny do modułu macierzystego. Jeśli adres wirtualny nie znajduje się w module, zwracana jest wartość null (S_FALSE Kod powrotu w kodzie natywnym). Wyłączone moduły nie zostaną zwrócone.

FindNativeModule(UInt64, Boolean)

Rozwiązuje adres wirtualny do modułu macierzystego. Jeśli adres wirtualny nie znajduje się w module, zwracana jest wartość null (S_FALSE Kod powrotu w kodzie natywnym).

FindProcess(Guid)

Znajdź obiekt DkmProcess. Jeśli żaden obiekt z podanym kluczem wejściowym nie jest obecny, FindProcess zakończy się niepowodzeniem.

FindProcessSnapshot(UInt32)

Znajdź element DkmProcessSnapshot w tym DkmProcess. Jeśli żaden element z danym kluczem wejściowym nie jest obecny, 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 DkmProcess. Jeśli żaden element z danym kluczem wejściowym nie jest obecny, FindRuntimeInstance zakończy się niepowodzeniem.

FindSystemThread(Int32)

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

FreeVirtualMemory(UInt64, Int32, Int32)

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

GetComputeKernels()

GetComputeKernels wylicza elementy DkmGPUComputeKernel tego obiektu DkmProcess.

GetDataItem<T>()

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

(Odziedziczone po DkmDataContainer)
GetDumpExePath()

Zwraca ścieżkę do podstawowego pliku wykonywalnego w debugowanej minizrzutu.

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

Pobiera kontekst czasu reprezentujący końcową pozycję śledzenia.

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

Pobierz 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 prosta arytmetyczna. W przypadku zestawów instrukcji o zmiennej długości do uzyskania tego adresu wymagany jest odwrócenie odwzorowania.

Ograniczenie lokalizacji: interfejs API musi zostać wywołany 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 prosta arytmetyczna. W przypadku zestawów instrukcji o zmiennej długości do uzyskania tego adresu wymagany jest odwrócenie odwzorowania.

Ta metoda spowoduje dołączenie nowego elementu pracy do określonej listy zadań i zwrócenie po dołączeniu elementu pracy. Rzeczywiste przetwarzanie elementu pracy jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony o tym, że żądanie zostało zakończone przez procedurę ukończenia.

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

GetInstructionAddress(DkmWorkList, UInt64, DkmCompletionRoutine<DkmGetInstructionAddressAsyncResult>)

Rozwiązuje InstructionAddress procesora CPU do DkmInstructionAddress.

Ta metoda spowoduje dołączenie nowego elementu pracy do określonej listy zadań i zwrócenie po dołączeniu elementu pracy. Rzeczywiste przetwarzanie elementu pracy jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony o tym, że żądanie zostało zakończone przez procedurę ukończenia.

Ograniczenie lokalizacji: interfejs API musi zostać wywołany 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 istnieje żaden zarządzany wyjątek.

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

GetMemoryReadTime(UInt64, UInt32, DkmMemoryTimeFlags)

Wywołuje się, by dowiedzieć się, jakiego czasu odnoszą się do bieżącego czasu procesu, z którego jest rozwiązywana wartość odczytywania pamięci.

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

GetNativeRuntimeInstance()

Zapewnia dostęp do DkmRuntimeInstance, który jest przeznaczony dla kodu algorytmie w ramach procesu. Dla procesu istnieje dokładnie jeden DkmRuntimeInstance.

GetNativeStowedException()

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

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 uruchomiony w kierunku do przodu lub odwrotnie. Ta metoda jest implementowana tylko dla procesów poruszania czasu.

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

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, w których uruchomiono debugowanego obiektu od momentu ResetRunningTime ().

GetRuntimeFunctionResolutionRequests()

GetRuntimeFunctionResolutionRequests wylicza elementy DkmRuntimeFunctionResolutionRequest tego obiektu DkmProcess.

GetRuntimeInstances()

GetRuntimeInstances wylicza elementy DkmRuntimeInstance tego obiektu DkmProcess.

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 zapakowane wyjątki ze 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 zwolnione, nie będą znajdować się w tej kolekcji.

GetTargetCompositionServices(DkmTargetCompositionScenario, Object)

Pobiera IDebugServiceManager dla odpowiedniego scenariusza, który może być używany w celu uzyskania dostępu do rozszerzeń opartych na kompozycji docelowej.

Ograniczenie lokalizacji: docelowe interfejsy kompozycji nie mogą być rozłożone 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()

Getthreaders wylicza elementy DkmThread tego obiektu DkmProcess.

InvisibleWriteMemory(UInt64, Byte[])

Zapisz pamięć w procesie docelowym, ale Ukryj zapis z wywołań do ReadMemory —. Ten interfejs API może służyć do poprawki instrukcji lub danych w procesie docelowym w celu zaimplementowania funkcji debugera. Przed przeprowadzeniem transferu danych system weryfikuje, 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 są dostępne, funkcja zgłasza błąd E_INVALID_MEMORY_ADDRESS.

IsLoadComplete()

Zwraca wartość true, jeśli po rozpoczęciu debugowania procesu wszystkie początkowe obciążenia/wątki modułu zostały wysłane dla wszystkich środowisk uruchomieniowych obecnych. Należy zauważyć, że ta definicja może różnić się od definicji interfejsu API debugowania Win32 ukończonej, ponieważ inne wystąpienia środowiska uruchomieniowego mogą potrzebować 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 ustalenie, czy proces jest uznawany za zatrzymany przez dyspozytora. 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 przeszukiwania dysku lokalnego oraz wszelkich skonfigurowanych serwerów symboli dla plików binarnych, które pasują do parametrów. Zostanie zwrócona ścieżka do tego pliku na dysku lokalnym. Jeśli plik znajduje się na serwerze symboli, jest pobierany do pamięci podręcznej i zwracana jest ścieżka lokalna.

OnAsyncBreakComplete(DkmAsyncBreakStatus, DkmThread)

Zgłoś zdarzenie AsyncBreakComplete. Składniki implementujące interfejs ujścia zdarzeń otrzymają powiadomienie o zdarzeniu. Ta metoda spowoduje zakolejkowania zdarzenia i kontrolka natychmiast powróci do obiektu wywołującego.

OnEntryPoint(DkmThread)

Zgłoś zdarzenie punktu wejścia. Składniki implementujące interfejs ujścia zdarzeń otrzymają powiadomienie o zdarzeniu. Ta metoda spowoduje zakolejkowania zdarzenia i kontrolka natychmiast powróci do obiektu wywołującego.

OnHiddenEntryPoint(DkmThread)

Zgłoś zdarzenie HiddenEntryPoint. Składniki implementujące interfejs ujścia zdarzeń otrzymają powiadomienie o zdarzeniu. Ta metoda spowoduje zakolejkowania zdarzenia i kontrolka natychmiast powróci do obiektu 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 informowania innych składników, że została zmodyfikowana pamięć instrukcji procesu docelowego. Obecnie jest to używane tylko w przypadku wstawiania punktów przerwania.

Ograniczenie lokalizacji: interfejs API musi zostać wywołany ze składnika monitora (poziom składnika < 100 000).

OnInstructionPatchRemoved(UInt64, Byte[])

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

Ograniczenie lokalizacji: interfejs API musi zostać wywołany ze składnika monitora (poziom składnika < 100 000).

OnLoadComplete()

Ta metoda jest wywoływana przez podstawowy Monitor debugowania procesu, aby zgłosić zdarzenie LoadComplete. LoadComplete jest wystawiany po utworzeniu obiektów DkmModuleInstance dla początkowego zestawu modułów w procesie i na ogół został utworzony początkowy zestaw wątków.

Zdarzenie ukończenia ładowania może zostać odroczone przez Monitor debugowania środowiska uruchomieniowego za pomocą DkmLoadCompleteEventDeferral. Add, w którym 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 zwróci wynik po powiadomieniu wszystkich składników.

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

OnProcessSnapshotAdded(DkmProcessSnapshot)

Program obsługi, który jest powiadamiany po wykonaniu migawki procesu dla danego procesu.

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

OnProcessSnapshotRemoved(DkmProcessSnapshot)

Program obsługi, który jest powiadamiany 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 implementujące interfejs ujścia zdarzeń otrzymają powiadomienie o zdarzeniu. Kontrolka zwróci wynik 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>)

Metoda asynchroniczna do uzyskiwania danych o chronometrażu z 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 spowoduje dołączenie nowego elementu pracy do określonej listy zadań i zwrócenie po dołączeniu elementu pracy. Rzeczywiste przetwarzanie elementu pracy jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony o tym, że żądanie zostało zakończone przez procedurę ukończenia.

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

ReadMemory(UInt64, DkmReadMemoryFlags, Byte[])

Odczytaj pamięć procesu docelowego.

ReadMemory(UInt64, DkmReadMemoryFlags, Void*, Int32)

Odczytaj pamięć procesu docelowego.

ReadMemoryString(UInt64, DkmReadMemoryFlags, UInt16, Int32)

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

RemoveDataItem<T>()

Usuń wystąpienie elementu "t" z tego kontenera. Zwykle nie jest konieczne wywoływanie tej metody, ponieważ kontener danych zostanie automatycznie opróżniony, gdy obiekt zostanie zamknięty.

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

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

Ta metoda spowoduje dołączenie nowego elementu pracy do określonej listy zadań i zwrócenie po dołączeniu elementu pracy. Rzeczywiste przetwarzanie elementu pracy jest asynchroniczne. Obiekt wywołujący zostanie powiadomiony o tym, że żądanie zostało zakończone przez procedurę ukończenia.

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 zauważyć, ż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 procesów dla tego procesu.

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

Usuń migawki procesów 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. Do wyszukiwania wpisów statycznych obiekty wywołujące powinny wywołać równoważną metodę w DkmNativeModuleInstance.

SetDataItem<T>(DkmDataCreationDisposition, T)

Umieść nowy element w kontenerze danych.

(Odziedziczone po DkmDataContainer)
SetDetachUnavailable(Int32)

Wywoływane przez składnik, aby wskazać, że odłączenie 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 określone ostrzeżenie dotyczące dostępu do pamięci procesora GPU.

SetProcessExecuteDirection(DkmProcessExecuteDirection)

Ustawia kierunek wykonywania procesów. Kierunek można przesłać do przodu lub do tyłu. Ta metoda jest implementowana tylko dla procesów poruszania czasu.

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

SetRunningTime(UInt64)

Ustawia licznik czasu działania na określoną wartość.

StoppingEventProcessingBegin(Boolean)

StoppingEventProcessingBegin jest wywoływany przez podstawowy Monitor debugowania w wątku zdarzeń. Powiadamia dyspozytora, że proces docelowy został zatrzymany i mógł uzyskać zatrzymywanie zdarzenia. Na przykład, podstawowy Monitor debugowania Win32 wywołuje to za każdym razem, gdy odbierze EXCEPTION_DEBUG_EVENT od systemu operacyjnego. Ta metoda aktualizuje stan wewnętrzny obiektu DkmProcess w taki sposób, aby zdarzenia zatrzymywania mogły być wysyłane.

StoppingEventProcessingContinue()

StoppingEventProcessingContinue jest wywoływany przez podstawowy Monitor debugowania w wątku zdarzeń. Ta metoda jest wywoływana po wydaniu wszystkich zdarzeń zatrzymywania w bieżącej partii (np. o nazwie DkmRuntimeBreakpoint. OnHit). Ta metoda powiadomi składniki, w których zaimplementowano interfejs zatrzymywania powiadomień o zdarzeniach, a następnie wywoła się do Menedżera wykonywania w celu przetworzenia dokumentu do punktu bezpiecznego. Podstawowy Monitor debugowania musi wywołać StoppingEventProcessingContinue po każdym pomyślnym wywołaniu StoppingEventProcessingBegin. podstawowy Monitor debugowania po wydaniu wszystkich zdarzeń zatrzymywania.

Podstawowy Monitor debugowania powinien zostać wywołany w sposób, w którym jest w tej metodzie.

TakeSnapshot(UInt64, DkmThread)

Utwórz migawkę debugowanego obiektu.

         Ograniczenie lokalizacji: serwer.

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

Utwórz migawkę debugowanego obiektu.

         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, aby zakończyć proces docelowy. Spowoduje to wyzwolenie zdarzenia ProcessExit do wysłania w wątku zdarzeń.

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

Wywołuje się, by zainicjować Lokalizowanie plików binarnych, których obrazy mogą nie znajdować się wcześniej lub próba załadowania. Ta metoda przeszukiwania dysku lokalnego oraz wszelkich skonfigurowanych serwerów symboli dla plików binarnych, które pasują do parametrów. Zostanie zwrócona ścieżka do tego pliku na dysku lokalnym. Jeśli plik znajduje się na serwerze symboli, jest pobierany do pamięci podręcznej i zwracana jest ścieżka lokalna.

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

Unload(Int32)

ProcessExit jest wysyłany przez dyspozytora, gdy DkmProcess:: Unload jest wywoływana 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 "ReadMemory —" w tym, że ta metoda może być wywoływana w dowolnym momencie (nie tylko wtedy, gdy element docelowy został 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 "ReadMemory —" w tym, że ta metoda może być wywoływana w dowolnym momencie (nie tylko wtedy, gdy element docelowy został 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 "WriteMemory —" w tym, że ta metoda może być wywoływana w dowolnym momencie (nie tylko wtedy, gdy element docelowy został zatrzymany), a debuger nie będzie próbować 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 i w związku z tym może doprowadzić do uszkodzenia pamięci w procesie docelowym. Z tego powodu ta funkcja musi być używana z opieką, a błędy mogą być krytyczne.

WaitForPausingEventProcessingComplete(Int32, Boolean)

Ta metoda może być wywoływana ze składnika monitora w celu oczekiwania na jakiekolwiek zatrzymywanie z obsługą zdarzeń wstrzymania, a także dowolnego przetwarzania IDkmProcessContinueNotification, które jest obecnie wykonywane. Może to być przydatne w przypadku próby przerwania funkcji Func-eval przez zagwarantowanie, że proces docelowy ma możliwość uruchomienia. Należy zauważyć, że ta metoda nie zapewnia żadnych gwarancji, że nie będzie od razu dłużej wstrzymywane zdarzenia, więc kod nie powinien zajmować się tym, że po powrocie z tego interfejsu API nie jest wykonywane zatrzymywanie przetwarzania zdarzeń.

Ograniczenie lokalizacji: interfejs API musi zostać wywołany ze składnika monitora (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 przeprowadzeniem transferu danych system weryfikuje, 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 są dostępne, funkcja zgłasza błąd E_INVALID_MEMORY_ADDRESS.

Dotyczy