Share via


DkmProcess Classe

Definizione

DkmProcess rappresenta un processo di destinazione in fase di debug. Il debugger esegue il debug dei processi, quindi questa è l'unità di base del debug. Un DkmProcess può rappresentare un processo di sistema o un processo virtuale, ad esempio minidump.

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
Ereditarietà
Ereditarietà
Attributi

Proprietà

BaseDebugMonitorId

DkmBaseDebugMonitorId identifica il monitoraggio di debug di base usato per controllare e controllare il processo sottoposto a debug. Ad esempio, DkmBaseDebugMonitorId.WindowsProcess viene usato per i processi di debug dall'API di debug Win32 e DkmBaseDebugMonitorId.DumpFile viene usato per i minidump.

Connection

Rappresenta una connessione tra il monitoraggio e l'IDE. Può trattarsi di una connessione locale se il monitoraggio è in esecuzione nello stesso processo dell'IDE oppure può essere una connessione remota. Nel processo di monitoraggio è presente una sola connessione.

DebugLaunchSettings

Impostazioni fornite durante un'operazione di avvio del debug da un sistema di progetto o da un altro chiamante di LaunchDebugTargets (o varie altre API di avvio del debug).

EngineSettings

Contiene le impostazioni di debug a livello di sessione. Esiste un'istanza di questo oggetto per ogni GUID del motore (ad esempio, un'istanza per COMPlusOnlyEng2, un'istanza per COMPlusNativeEng).

IsAppPackage

True se il processo appartiene a un pacchetto di app di Windows Store o Windows Phone pacchetto dell'app.

Questa API è stata introdotta in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

IsMultiArch

True se il processo contiene codice da più architetture.

Questa API è stata introdotta in Visual Studio 16 Update 9 (DkmApiVersion.VS16Update9).

IsNativeDebuggingEnabled

Quando true, il debugger tenterà di eseguire il debug del codice nativo: si arresterà sulle eccezioni native, sui simboli di caricamento, visualizza i fotogrammi nativi nello stack di chiamate, associa e raggiungerà i punti di interruzione e lascerà i thread nativi arrestati durante lo stato di interruzione.

IsUnloaded

Restituisce true se per questo oggetto è stato generato un evento 'unloaded', ad esempio DkmThread::Unload, o se l'oggetto è stato chiuso. Si noti che è necessario prestare attenzione quando si controlla questo stato come, senza sincronizzazione, lo stato restituito potrebbe non essere più accurato dopo la lettura.

(Ereditato da DkmDataContainer)
LivePart

[Facoltativo] Informazioni rilevanti per un processo in esecuzione. Ad esempio, questa parte non sarà presente per minidumps.

Path

Percorso completo dell'eseguibile iniziale del processo.

StartMethod

StartMethod descrive come il motore di debug ha avviato il debug di questo processo.

SystemInformation

Contiene informazioni sul sistema computer in esecuzione in questo processo. Se questo processo viene eseguito in WOW (emulazione a 32 bit in un sistema operativo a 64 bit), queste informazioni saranno per il sottosistema a 32 bit anziché per il sottosistema a 64 bit.

UniqueId

Guid che identifica in modo univoco questo oggetto di processo. Questo valore Guid corrisponde al Guid esposto al livello SDM (IDebugProcess2::GetProcessId) e al livello di automazione.

Metodi

AbortingFuncEvalExecution(DkmFuncEvalFlags)

L'interruzioneFuncEvalExecution viene chiamata dal monitoraggio di debug di runtime quando si interrompe una valutazione di una funzione. InterruzioneFuncEvalExecution aggiornerà lo stato interno dell'oggetto DkmProcess in modo che la gestione eventi di arresto consentirà due eventi di arresto: un punto di interruzione della valutazione della funzione completo o un'interruzione asincrona.

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

Aggiunge un trigger di eccezione in modo che gli eventi ExceptionTriggerHit vengano inviati quando viene soddisfatto il trigger di eccezione.

Se per questa tupla {SourceId, DkmExceptionTrigger} è già stata attivata un'eccezione, il trigger esistente verrà modificato con le nuove impostazioni. Ad esempio, se un componente definisce un trigger da arrestare quando viene generata un'eccezione di violazione di accesso e successivamente imposta un trigger da attivare quando un'eccezione Win32 non viene gestita, il trigger di violazione di accesso verrà rimosso.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta accodato l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

AddExceptionTrigger(Guid, DkmExceptionTrigger)

Aggiunge un trigger di eccezione in modo che gli eventi ExceptionTriggerHit vengano inviati quando viene soddisfatto il trigger di eccezione.

Se per questa tupla {SourceId, DkmExceptionTrigger} è già stata attivata un'eccezione, il trigger esistente verrà modificato con le nuove impostazioni. Ad esempio, se un componente definisce un trigger da arrestare quando viene generata un'eccezione di violazione di accesso e successivamente imposta un trigger da attivare quando un'eccezione Win32 non viene gestita, il trigger di violazione di accesso verrà rimosso.

AllocateVirtualMemory(UInt64, Int32, Int32, Int32)

Riserva e/o esegue il commit di un'area di memoria all'interno dello spazio indirizzi virtuale del processo di destinazione. La funzione inizializza la memoria che assegna a zero, a meno che non sia utilizzato MEM_RESET. Per altre informazioni, vedere l'API Win32 VirtualAlloc in MSDN.

AsyncBreak(Boolean)

Questo metodo indicherà ai monitoraggi di debug di interrompere in modo asincrono l'esecuzione del processo di debug. Al termine dell'operazione viene inviato un evento AsyncBreakComplete.

BeforeStopDebugging()

Gestore che riceve una notifica prima che il processo di destinazione venga terminato o scollegato.

Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000).

Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

ClearAllGPUMemoryAccessWarnings()

Disabilita tutti gli avvisi di accesso alla memoria GPU attivi.

ClearExceptionTriggers(Guid)

Rimuove tutti i trigger di eccezione impostati con un determinato SourceId. Al termine di questo metodo, i trigger di eccezione non genereranno più eventi ExceptionTriggerHit. I trigger di eccezione vengono cancellati automaticamente quando l'oggetto DkmProcess viene chiuso.

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

Crea un nuovo oggetto processo. Questo metodo viene chiamato dal monitoraggio di debug di base nel thread di evento come parte dell'elaborazione di IDkmStartDebuggingOperations.AttachToProcess o IDkmStartDebuggingOperations.ResumeDebuggedProcess.

Questo metodo invierà un evento ProcessCreate.

Vincolo location: l'API deve essere chiamata da un componente Monitor (livello < componente 100.000).

Questa API è stata introdotta in Visual Studio 16 Update 9 (DkmApiVersion.VS16Update9).

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

Crea un nuovo oggetto processo. Questo metodo viene chiamato dal monitoraggio di debug di base nel thread di evento come parte dell'elaborazione di IDkmStartDebuggingOperations.AttachToProcess o IDkmStartDebuggingOperations.ResumeDebuggedProcess.

Questo metodo invierà un evento ProcessCreate.

Vincolo location: l'API deve essere chiamata da un componente Monitor (livello < componente 100.000).

Questa API è stata introdotta in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

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

Crea un nuovo oggetto processo. Questo metodo viene chiamato dal monitoraggio di debug di base nel thread di evento come parte dell'elaborazione di IDkmStartDebuggingOperations.AttachToProcess o IDkmStartDebuggingOperations.ResumeDebuggedProcess.

Questo metodo invierà un evento ProcessCreate.

Vincolo location: l'API deve essere chiamata da un componente Monitor (livello < componente 100.000).

CreateNativeInstructionAddress(UInt64)

Risolve un'istruzione della CPU in un modulo nativo e restituisce un oggetto DkmNativeInstructionAddress per rappresentare questa istruzione della CPU. Se il puntatore all'istruzione non si trova all'interno di un modulo, viene restituito invece un oggetto DkmUnknownInstructionAddress.

Detach()

Questo metodo viene chiamato per indicare al monitor di disconnettersi dal processo di destinazione. Verrà attivato un evento ProcessExit da inviare nel thread dell'evento.

Disassemble(DkmInstructionAddress, UInt32)

Disassemblare un intervallo di indirizzi nel processo di debug.

Vincolo location: l'API deve essere chiamata da un componente IDE (livello > componente 100.000).

FindNativeModule(UInt64)

Risolve un indirizzo virtuale in un modulo nativo. Se l'indirizzo virtuale non si trova all'interno di un modulo, viene restituito Null (S_FALSE codice restituito in nativo). I moduli disabilitati non verranno restituiti.

FindNativeModule(UInt64, Boolean)

Risolve un indirizzo virtuale in un modulo nativo. Se l'indirizzo virtuale non si trova all'interno di un modulo, viene restituito Null (S_FALSE codice restituito in nativo).

FindProcess(Guid)

Trovare un oggetto DkmProcess. Se non è presente alcun oggetto con la chiave di input specificata, FindProcess avrà esito negativo.

FindProcessSnapshot(UInt32)

Trovare un elemento DkmProcessSnapshot all'interno di questo DkmProcess. Se non è presente alcun elemento con la chiave di input specificata, FindProcessSnapshot avrà esito negativo.

Questa API è stata introdotta in Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

FindRuntimeInstance(DkmRuntimeInstanceId)

Trovare un elemento DkmRuntimeInstance all'interno di questo DkmProcess. Se non è presente alcun elemento con la chiave di input specificata, FindRuntimeInstance avrà esito negativo.

FindSystemThread(Int32)

Trovare un elemento DkmThread all'interno di questo DkmProcess. Se non è presente alcun elemento con la chiave di input specificata, FindSystemThread avrà esito negativo. Se viene trovato un oggetto, conterrà sempre la parte 'System'.

FreeVirtualMemory(UInt64, Int32, Int32)

Rilascia e/o commette un'area di memoria all'interno dello spazio indirizzi virtuale del processo di destinazione. Per altre informazioni, vedere l'API Win32 VirtualFree in MSDN.

GetComputeKernels()

GetComputeKernels enumera gli elementi DkmGPUComputeKernel di questo oggetto DkmProcess.

GetDataItem<T>()

Ottiene l'istanza di 'T' aggiunta a questa istanza del contenitore. Se questo contenitore non contiene un 'T', questa funzione restituirà Null.

(Ereditato da DkmDataContainer)
GetDumpExePath()

Restituisce il percorso dell'eseguibile primario nel minidump sottoposto a debug.

Questa API è stata introdotta in Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

GetDumpSaveTime()

Restituisce l'ora in cui è stato salvato il minidump.

Questa API è stata introdotta in Visual Studio 16 Update 10 (DkmApiVersion.VS16Update10).

GetEndingTimeContext()

Ottiene il contesto di tempo che rappresenta la posizione finale della traccia.

Questa API è stata introdotta in Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

GetGPUBreakpointBehavior()

Ottenere il comportamento del punto di interruzione del processo.

GetHandleCount()

Ottiene il numero di handle attivi nel processo.

GetInstructionAddress(DkmInstructionAddress, Int32)

Restituisce l'indirizzo dell'istruzione kth rispetto a un indirizzo iniziale. Per i set di istruzioni di lunghezza costante, questo è semplice aritmetico. Per i set di istruzioni di lunghezza variabile, è necessario eseguire il disassembly inverso per ottenere questo indirizzo.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

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

Restituisce l'indirizzo dell'istruzione kth rispetto a un indirizzo iniziale. Per i set di istruzioni di lunghezza costante, questo è semplice aritmetico. Per i set di istruzioni di lunghezza variabile, è necessario eseguire il disassembly inverso per ottenere questo indirizzo.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

GetInstructionAddress(DkmWorkList, UInt64, DkmCompletionRoutine<DkmGetInstructionAddressAsyncResult>)

Risolve un'istruzione CPUAddress in un oggetto DkmInstructionAddress.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Vincolo percorso: l'API deve essere chiamata da un componente IDE (livello > di componente 100.000).

GetManagedStowedException()

Ottenere l'eccezione gestita da un dump. Verrà restituito S_FALSE se non è presente alcuna eccezione gestita.

Questa API è stata introdotta in Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3).

GetMemoryReadTime(UInt64, UInt32, DkmMemoryTimeFlags)

Chiamato per individuare il tempo relativo al tempo corrente di un valore da una lettura di memoria viene risolto.

Questa API è stata introdotta in Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8).

GetNativeRuntimeInstance()

Fornisce l'accesso a DkmRuntimeInstance che è per il codice naïve all'interno di un processo. C'è esattamente una DkmRuntimeInstance per un processo.

GetNativeStowedException()

Ottenere l'eccezione nativa da un dump. Verrà restituito S_FALSE se non è presente alcuna eccezione nativa.

Questa API è stata introdotta in Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3).

GetPendingBreakpoints()

GetPendingBreakpoints enumera gli elementi DkmPendingBreakpoint di questo oggetto DkmProcess.

GetProcesses()

GetProcesses enumera tutti gli oggetti DkmProcess creati.

GetProcessExecuteDirection()

Ottiene un valore che indica se il processo è in esecuzione nella direzione in avanti o inversa. Questo metodo viene implementato solo per i processi di viaggio in tempo.

Questa API è stata introdotta in Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8).

GetProcessorArchitecture(UInt64, DkmProcessorArchitecture)

Determina l'architettura per un determinato indirizzo.

Questa API è stata introdotta in Visual Studio 16 Update 9 (DkmApiVersion.VS16Update9).

GetProcessSnapshots()

GetProcessSnapshots enumera gli elementi DkmProcessSnapshot di questo oggetto DkmProcess.

Questa API è stata introdotta in Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

GetRunningTime()

Ottiene il numero di cicli di orologio in cui è stato eseguito il debug dopo l'ultima chiamata resetRunningTime().

GetRuntimeFunctionResolutionRequests()

GetRuntimeFunctionResolutionRequest enumera gli elementi DkmRuntimeFunctionResolutionRequest di questo oggetto DkmProcess.

GetRuntimeInstances()

GetRuntimeInstances enumera gli elementi DkmRuntimeInstance di questo oggetto DkmProcess.

GetSerializedProcessInfo()

Ottenere informazioni su un processo serializzato.

Questa API è stata introdotta in Visual Studio 17 Update 2 (DkmApiVersion.VS17Update2).

GetSourceSnapshot()

Ottenere l'oggetto snapshot di origine per il processo di debug. Il processo di debug deve rappresentare gli snapshot.

Questa API è stata introdotta in Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

GetStowedExceptions()

Ottenere le eccezioni da un dump.

Questa API è stata introdotta in Visual Studio 12 Update 3 (DkmApiVersion.VS12Update3).

GetSystemThreads()

Fornisce l'elenco dei thread di sistema attivi nel processo. I thread che non sono thread di sistema (DkmThread::System è null) o non sono stati caricati, non saranno presenti in questa raccolta.

GetTargetCompositionServices(DkmTargetCompositionScenario, Object)

Ottiene IDebugServiceManager per lo scenario corrispondente, che può essere usato per accedere alle estensioni basate su Composizione di destinazione.

Vincolo percorso: non è possibile eseguire il marshalling delle interfacce di composizione di destinazione nel computer, ma è possibile usare se disponibile.

Questa API è stata introdotta in Visual Studio 16 Update 5 (DkmApiVersion.VS16Update5).

GetThreads()

GetThreads enumera gli elementi DkmThread di questo oggetto DkmProcess.

InvisibleWriteMemory(UInt64, Byte[])

Scrivere memoria nel processo di destinazione, ma nascondere la scrittura dalle chiamate a ReadMemory. Questa API può essere usata per applicare patch alle istruzioni o ai dati all'interno del processo di destinazione per implementare le funzionalità del debugger. Prima che si verifichi il trasferimento dei dati, il sistema verifica che tutti i dati nell'indirizzo di base e la memoria delle dimensioni specificate siano accessibili per l'accesso in scrittura e, se non è accessibile, la funzione genera un errore di E_INVALID_MEMORY_ADDRESS.

IsLoadComplete()

Restituisce true se una volta che tutti i carichi/thread iniziali vengono inviati per tutti i runtime presenti al momento dell'avvio del debug del processo. Si noti che questa definizione può essere diversa dalla definizione dell'API Debug Win32 del carico completa perché altre istanze di runtime potrebbero richiedere tempo aggiuntivo per il caricamento.

Questa API è stata introdotta in Visual Studio 12 Update 2 (DkmApiVersion.VS12Update2).

IsStopped()

Questo metodo consente a un componente di determinare se il processo viene considerato arrestato dal Dispatcher. Questo metodo non deve essere chiamato dall'interno di un metodo di interfaccia che richiede che il processo di destinazione venga arrestato, ma può essere utile durante le operazioni che possono essere chiamate dalla modalità di esecuzione.

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

Questo metodo cercherà il disco locale e tutti i server simboli configurati per un file binario che corrisponde ai parametri. Viene restituito il percorso di questo file nel disco locale. Se il file era in un server simbolo, viene scaricato in una cache e viene restituito il percorso locale.

OnAsyncBreakComplete(DkmAsyncBreakStatus, DkmThread)

Generare un evento AsyncBreakComplete. I componenti che implementano l'interfaccia del sink di eventi riceveranno la notifica dell'evento. Questo metodo eseguirà la sequenza dell'evento e del controllo restituirà immediatamente al chiamante.

OnEntryPoint(DkmThread)

Generare un evento EntryPoint. I componenti che implementano l'interfaccia del sink di eventi riceveranno la notifica dell'evento. Questo metodo eseguirà la sequenza dell'evento e del controllo restituirà immediatamente al chiamante.

OnHiddenEntryPoint(DkmThread)

Generare un evento HiddenEntryPoint. I componenti che implementano l'interfaccia del sink di eventi riceveranno la notifica dell'evento. Questo metodo eseguirà la sequenza dell'evento e del controllo restituirà immediatamente al chiamante.

Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

OnInstructionPatchInserted(UInt64, Byte[])

Metodo chiamato dal monitoraggio di debug di base per informare altri componenti che la memoria delle istruzioni del processo di destinazione è stata modificata. Attualmente, questa operazione viene usata solo per l'inserimento dei punti di interruzione.

Vincolo percorso: l'API deve essere chiamata da un componente Monitor (livello < di componente 100.000).

OnInstructionPatchRemoved(UInt64, Byte[])

Metodo chiamato dal monitoraggio di debug di base per informare altri componenti che la memoria delle istruzioni del processo di destinazione è stata ripristinata allo stato originale. Attualmente, questa operazione viene usata solo per la rimozione dei punti di interruzione.

Vincolo percorso: l'API deve essere chiamata da un componente Monitor (livello < di componente 100.000).

OnLoadComplete()

Questo metodo viene chiamato dal monitoraggio di debug di base del processo per generare un evento LoadComplete. LoadComplete viene rilasciato dopo la creazione di oggetti DkmModuleInstance per il set iniziale di moduli nel processo e in genere è stato creato anche il set iniziale di thread.

L'evento completo del carico può essere posticipato da un monitoraggio del debug di runtime usando DkmLoadCompleteEventDeferral.Add, nel qual caso questo metodo verrà completato immediatamente. In caso contrario, questo metodo invierà l'evento a tutti i componenti che implementano l'interfaccia di sincronizzazione eventi. Il controllo restituirà una volta che tutti i componenti sono stati notificati.

Questo metodo può essere chiamato solo dal componente che ha creato l'oggetto.

OnProcessSnapshotAdded(DkmProcessSnapshot)

Gestore che riceve una notifica dopo l'acquisizione di uno snapshot del processo per il processo specificato.

Questa API è stata introdotta in Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

OnProcessSnapshotRemoved(DkmProcessSnapshot)

Gestore che riceve una notifica dopo che uno snapshot del processo viene rimosso dal processo specificato.

Questa API è stata introdotta in Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

OnTraceTimeContextSet(DkmTraceTimeContext, DkmTraceTimeContext, DkmTraceTimeContext, DkmThread)

Generare un evento TraceTimeContextSet. I componenti che implementano l'interfaccia del sink di eventi riceveranno la notifica dell'evento. Il controllo restituirà una volta che tutti i componenti sono stati notificati.

Questo metodo può essere chiamato solo dal componente che ha creato l'oggetto.

Questa API è stata introdotta in Visual Studio 16 Update 2 (DkmApiVersion.VS16Update2).

QueryPerformanceCounters(DkmWorkList, DkmCompletionRoutine<DkmPerformanceCountersAsyncResult>)

Metodo asincrono per ottenere i dati di temporizzazione dai runtimePerformanceMeasurementDispatcherService raccolti dagli eventi generati dai runtime nel processo. Questo valore viene chiamato in modo asincrono perché il sovraccarico del debugger può essere molto costoso.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

ReadMemory(UInt64, DkmReadMemoryFlags, Byte[])

Leggere la memoria del processo di destinazione.

ReadMemory(UInt64, DkmReadMemoryFlags, Void*, Int32)

Leggere la memoria del processo di destinazione.

ReadMemoryString(UInt64, DkmReadMemoryFlags, UInt16, Int32)

Legge una stringa con terminazione null dalla memoria del processo di destinazione. Questa operazione può essere usata per leggere stringhe ANSI o Unicode (UTF-8, UTF-16 o UTF-32).

RemoveDataItem<T>()

Rimuovere l'istanza di 'T' da questo contenitore. In genere non è necessario chiamare questo metodo come contenitore di dati verrà svuotato automaticamente quando l'oggetto viene chiuso.

(Ereditato da DkmDataContainer)
RemoveExceptionTrigger(DkmWorkList, Guid, DkmExceptionTrigger, DkmCompletionRoutine<DkmRemoveExceptionTriggerAsyncResult>)

Rimuove un trigger di eccezione impostato in precedenza. Si noti che la fase di elaborazione viene ignorata e non deve corrispondere al valore originariamente fornito.

Questo metodo aggiungerà un nuovo elemento di lavoro all'elenco di lavoro specificato e restituirà una volta aggiunto l'elemento di lavoro. L'elaborazione effettiva dell'elemento di lavoro è asincrona. Il chiamante riceverà una notifica che la richiesta viene completata tramite la routine di completamento.

Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

RemoveExceptionTrigger(Guid, DkmExceptionTrigger)

Rimuove un trigger di eccezione impostato in precedenza. Si noti che la fase di elaborazione viene ignorata e non deve corrispondere al valore originariamente fornito.

Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

RemoveSnapshotById(UInt32)

Rimuovere gli snapshot del processo per questo processo.

Questa API è stata introdotta in Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5).

RemoveSnapshots()

Rimuovere gli snapshot del processo per questo processo.

Questa API è stata introdotta in Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

SearchRuntimeFunctionTable(UInt64, UInt64)

Il metodo restituirà il contenuto del IMAGE_RUNTIME_FUNCTION_ENTRY per un indirizzo, se possibile. Per la ricerca di voci statiche, i chiamanti devono chiamare il metodo equivalente in DkmNativeModuleInstance.

SetCoreDumpParserTargetCompositionServices(Object)

Ottiene l'oggetto IDebugServiceManager per lo scenario di analisi dei file Core, che può essere usato per accedere alle estensioni basate su Composizione di destinazione.

Vincolo percorso: non è possibile eseguire il marshalling delle interfacce di composizione di destinazione nel computer, ma è possibile usare se disponibile.

Questa API è stata introdotta in Visual Studio 16 Update 8 (DkmApiVersion.VS16Update8).

SetDataItem<T>(DkmDataCreationDisposition, T)

Inserire un nuovo elemento nel contenitore di dati.

(Ereditato da DkmDataContainer)
SetDetachUnavailable(Int32)

Chiamato da un componente per indicare che il disconnessione non è consentito nel processo.

Questa API è stata introdotta in Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

SetGPUMemoryAccessWarning(Int32, Boolean)

Abilita/disabilita un particolare avviso di accesso alla memoria GPU.

SetProcessExecuteDirection(DkmProcessExecuteDirection)

Imposta la direzione di esecuzione dei processi. La direzione può essere in avanti o inversa. Questo metodo viene implementato solo per i processi di viaggio in tempo.

Questa API è stata introdotta in Visual Studio 15 Update 8 (DkmApiVersion.VS15Update8).

SetRunningTime(UInt64)

Imposta il contatore del tempo di esecuzione sul valore specificato.

StoppingEventProcessingBegin(Boolean)

L'arrestoEventProcessingBegin viene chiamato dal monitoraggio di debug di base nel thread dell'evento. Notifica al dispatcher che il processo di destinazione viene arrestato e potrebbe aver raggiunto un evento di arresto. Ad esempio, il monitoraggio di debug di base Win32 chiama questa operazione ogni volta che riceve un EXCEPTION_DEBUG_EVENT dal sistema operativo. Questo metodo aggiorna lo stato interno dell'oggetto DkmProcess in modo che gli eventi di arresto possano essere inviati.

StoppingEventProcessingContinue()

L'arresto diEventProcessingContinue viene chiamato dal monitoraggio di debug di base nel thread dell'evento. Questo metodo viene chiamato dopo che tutti gli eventi di arresto all'interno del batch corrente sono stati emessi (ad esempio: denominato DkmRuntimeBreakpoint.OnHit). Questo metodo notifica i componenti che hanno implementato un'interfaccia di notifica degli eventi di arresto e chiamerà il gestore di esecuzione per inviare il processo a un punto sicuro. Il monitoraggio di debug di base deve chiamare StopEventProcessingContinue dopo qualsiasi chiamata riuscita a ArrestaEventProcessingBegin. monitoraggio debug di base dopo aver rilasciato tutti gli eventi di arresto.

Un monitoraggio di debug di base deve essere chiamato in modo reentrantly mentre si trova in questo metodo.

TakeSnapshot(UInt64, DkmThread)

Acquisire uno snapshot del debug.

Vincolo percorso: server.

Questa API è stata introdotta in Visual Studio 15 Update 3 (DkmApiVersion.VS15Update3).

TakeSnapshotWithException(UInt64, DkmExceptionInformation)

Acquisire uno snapshot del debug.

Vincolo percorso: server.

Questa API è stata introdotta in Visual Studio 15 Update 5 (DkmApiVersion.VS15Update5).

Terminate(Int32)

Questo metodo viene chiamato per indicare al monitoraggio di terminare il processo di destinazione. Verrà attivato un evento ProcessExit da inviare nel thread dell'evento.

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

Chiamato per avviare l'individuazione dei file binari le cui immagini potrebbero non essere state trovate o tentate di essere caricate in precedenza. Questo metodo cercherà il disco locale e tutti i server simboli configurati per un file binario che corrisponde ai parametri. Viene restituito il percorso di questo file nel disco locale. Se il file era in un server simbolo, viene scaricato in una cache e viene restituito il percorso locale.

Questa API è stata introdotta in Visual Studio 11 Update 1 (DkmApiVersion.VS11FeaturePack1).

Unload(Int32)

ProcessExit viene inviato dal dispatcher quando DkmProcess::Unload viene richiamato dal monitoraggio.

Questo metodo può essere chiamato solo dal componente che ha creato l'oggetto.

VolatileReadMemory(UInt64, Byte[])

Leggere la memoria dal processo di destinazione. Questo metodo differisce da 'ReadMemory' in quanto questo metodo può essere chiamato in qualsiasi momento (non solo quando la destinazione viene arrestata) e il debugger non tenterà di memorizzare nella cache il risultato di questa operazione.

VolatileReadMemory(UInt64, Void*, Int32)

Leggere la memoria dal processo di destinazione. Questo metodo differisce da 'ReadMemory' in quanto questo metodo può essere chiamato in qualsiasi momento (non solo quando la destinazione viene arrestata) e il debugger non tenterà di memorizzare nella cache il risultato di questa operazione.

VolatileWriteMemory(UInt64, Byte[])

Scrivere nella memoria del processo di destinazione. Questo metodo differisce da "WriteMemory" in quanto questo metodo può essere chiamato in qualsiasi momento (non solo quando la destinazione viene arrestata) e il debugger non tenterà di memorizzare nella cache il risultato di questa operazione. Se non è possibile scrivere memoria, verrà generato un errore di E_INVALID_MEMORY_ADDRESS. Poiché la scrittura della memoria può verificarsi dalla modalità di esecuzione, questo errore può verificarsi dopo l'avvio dell'operazione di copia e quindi può causare il danneggiamento della memoria nel processo di destinazione. Per questo motivo, questa funzione deve essere usata con attenzione e gli errori possono essere irreversibili.

WaitForPausingEventProcessingComplete(Int32, Boolean)

Questo metodo può essere chiamato da un componente di monitoraggio per attendere qualsiasi interruzione con la gestione degli eventi di sospensione, nonché qualsiasi elaborazione IDkmProcessContinueNotification che sta attualmente accadendo per terminare. Tra le altre cose, questo può essere utile quando si tenta di interrompere func-evals assicurandosi che il processo di destinazione abbia l'opportunità di eseguire. Si noti che questo metodo non fornisce alcuna garanzia che non ci saranno immediatamente più eventi di sospensione, pertanto il codice non deve presupporre che dopo aver restituito da questa API non si arresta l'elaborazione degli eventi.

Vincolo percorso: l'API deve essere chiamata da un componente Monitor (livello < di componente 100.000).

Questa API è stata introdotta in Visual Studio 15 Update 6 (DkmApiVersion.VS15Update6).

WriteDump(DkmDumpType, String, DkmThread)

Questo metodo scriverà un dump di memoria del processo nel percorso specificato.

WriteMemory(UInt64, Byte[])

Scrive la memoria nel processo di destinazione. Prima che si verifichi il trasferimento dei dati, il sistema verifica che tutti i dati nell'indirizzo di base e la memoria delle dimensioni specificate siano accessibili per l'accesso in scrittura e, se non è accessibile, la funzione genera un errore di E_INVALID_MEMORY_ADDRESS.

Si applica a