Compartilhar via


DkmProcess Classe

Definição

DkmProcess representa um processo de destino que está sendo depurado. O depurador depura processos, portanto, essa é a unidade básica de depuração. Um DkmProcess pode representar um processo do sistema ou um processo virtual, como minidespejos.

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
Herança
Herança
Atributos

Propriedades

BaseDebugMonitorId

DkmBaseDebugMonitorId identifica o monitor de depuração base usado para inspecionar e controlar o processo depurado. Por exemplo, DkmBaseDebugMonitorId.WindowsProcess é usado para processos depurados pela API de depuração do Win32 e DkmBaseDebugMonitorId.DumpFile é usado para minidumps.

Connection

Isso representa uma conexão entre o monitor e o IDE. Ele pode ser uma conexão local se o monitor estiver em execução no mesmo processo que o IDE ou pode ser uma conexão remota. No processo do monitor, há apenas uma conexão.

DebugLaunchSettings

Configurações fornecidas durante uma operação de depuração de início de um sistema de projeto ou outro chamador de LaunchDebugTargets (ou várias outras APIs de depuração de início).

EngineSettings

Contém as configurações de depuração em toda a sessão. Há uma instância desse objeto por Guid do mecanismo (por exemplo: uma instância para COMPlusOnlyEng2, uma instância para COMPlusNativeEng).

IsAppPackage

True se o processo pertencer a um pacote de aplicativo da Windows Store ou Windows Phone pacote do aplicativo.

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

IsMultiArch

True se o processo contiver código de várias arquiteturas.

Essa API foi introduzida no Visual Studio 16 Atualização 9 (DkmApiVersion.VS16Update9).

IsNativeDebuggingEnabled

Quando true, o depurador tentará depurar o código nativo – ele será interrompido em exceções nativas, carregará símbolos, exibirá quadros nativos na pilha de chamadas, associará e atingirá pontos de interrupção e deixará threads nativos interrompidos enquanto estiverem no estado de interrupção.

IsUnloaded

Retornará true se um evento 'descarregado' tiver sido gerado para este objeto (exemplo: DkmThread::Unload for chamado) ou se o objeto tiver sido fechado. Observe que o cuidado deve ser usado ao verificar esse status, pois, sem sincronização, o status retornado pode não ser mais preciso após a leitura.

(Herdado de DkmDataContainer)
LivePart

[Opcional] Informações relevantes para um processo em execução. Por exemplo, esta Parte NÃO estará presente para minidespejos.

Path

Caminho completo para o executável inicial do processo.

StartMethod

StartMethod descreve como o mecanismo de depuração começou a depurar esse processo.

SystemInformation

Contém informações sobre o sistema de computador no qual esse processo está sendo executado. Se esse processo estiver em execução em WOW (emulação de 32 bits em um sistema operacional de 64 bits), essas informações serão para o subsistema de 32 bits em vez do subsistema de 64 bits.

UniqueId

Guid que identifica exclusivamente esse objeto de processo. Esse valor guid é o mesmo que o Guid exposto na camada do SDM (IDebugProcess2::GetProcessId) e na camada de automação.

Métodos

AbortingFuncEvalExecution(DkmFuncEvalFlags)

AbortingFuncEvalExecution é chamado pelo monitor de depuração de runtime ao anular uma avaliação de função. AbortingFuncEvalExecution atualizará o estado interno do objeto DkmProcess para que o gerenciador de eventos de interrupção permita dois eventos de interrupção: um ponto de interrupção completo de avaliação de função ou uma interrupção assíncrona.

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

Adiciona um gatilho de exceção para que os eventos ExceptionTriggerHit sejam enviados quando o gatilho de exceção for atendido.

Se já houver uma exceção disparada definida para esta tupla {SourceId, DkmExceptionTrigger}, o gatilho existente será modificado com as novas configurações. Por exemplo, se um componente definir um gatilho para parar quando uma exceção de violação de acesso for lançada e posteriormente definir um gatilho a ser acionado quando qualquer exceção do Win32 não for tratada, o gatilho de violação de acesso será removido.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

AddExceptionTrigger(Guid, DkmExceptionTrigger)

Adiciona um gatilho de exceção para que os eventos ExceptionTriggerHit sejam enviados quando o gatilho de exceção for atendido.

Se já houver uma exceção disparada definida para esta tupla {SourceId, DkmExceptionTrigger}, o gatilho existente será modificado com as novas configurações. Por exemplo, se um componente definir um gatilho para parar quando uma exceção de violação de acesso for lançada e posteriormente definir um gatilho a ser acionado quando qualquer exceção do Win32 não for tratada, o gatilho de violação de acesso será removido.

AllocateVirtualMemory(UInt64, Int32, Int32, Int32)

Reserva e/ou confirma uma região de memória dentro do espaço de endereço virtual do processo de destino. A função inicializa a memória que ela atribui a zero, a menos que MEM_RESET seja usado. Para obter informações adicionais, consulte a API VirtualAlloc Win32 no MSDN.

AsyncBreak(Boolean)

Esse método informará os monitores de depuração para interromper de forma assíncrona a execução do processo de depuração. Um evento AsyncBreakComplete é enviado após a conclusão da operação.

BeforeStopDebugging()

Manipulador que é notificado antes que o processo de destino seja encerrado ou desanexado.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

ClearAllGPUMemoryAccessWarnings()

Desabilita todos os avisos de acesso de memória de GPU ativos.

ClearExceptionTriggers(Guid)

Remove todos os gatilhos de exceção que foram definidos com uma SourceId específica. Depois que esse método retornar, os gatilhos de exceção não gerarão mais eventos ExceptionTriggerHit. Os gatilhos de exceção são limpos automaticamente quando o objeto DkmProcess é fechado.

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

Cria um novo objeto de processo. Esse método é chamado do monitor de depuração base no thread de eventos como parte do processamento de IDkmStartDebuggingOperations.AttachToProcess ou IDkmStartDebuggingOperations.ResumeDebuggedProcess.

Esse método enviará um evento ProcessCreate.

Restrição de local: a API deve ser chamada de um componente monitor (nível < de componente 100.000).

Essa API foi introduzida no Visual Studio 16 Atualização 9 (DkmApiVersion.VS16Update9).

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

Cria um novo objeto de processo. Esse método é chamado do monitor de depuração base no thread de eventos como parte do processamento de IDkmStartDebuggingOperations.AttachToProcess ou IDkmStartDebuggingOperations.ResumeDebuggedProcess.

Esse método enviará um evento ProcessCreate.

Restrição de local: a API deve ser chamada de um componente monitor (nível < de componente 100.000).

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

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

Cria um novo objeto de processo. Esse método é chamado do monitor de depuração base no thread de eventos como parte do processamento de IDkmStartDebuggingOperations.AttachToProcess ou IDkmStartDebuggingOperations.ResumeDebuggedProcess.

Esse método enviará um evento ProcessCreate.

Restrição de local: a API deve ser chamada de um componente monitor (nível < de componente 100.000).

CreateNativeInstructionAddress(UInt64)

Resolve uma instrução de CPU para um módulo nativo e retorna um DkmNativeInstructionAddress para representar essa instrução de CPU. Se o ponteiro de instrução não estiver dentro de um módulo, um objeto DkmUnknownInstructionAddress será retornado.

Detach()

Esse método é chamado para instruir o monitor a desanexar do processo de destino. Isso disparará um evento ProcessExit a ser enviado no thread de evento.

Disassemble(DkmInstructionAddress, UInt32)

Desmonte um intervalo de endereços no processo de depuração.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

FindNativeModule(UInt64)

Resolve um endereço virtual para um módulo nativo. Se o endereço virtual não estiver dentro de um módulo, nulo será retornado (S_FALSE código de retorno nativamente). Módulos desabilitados não serão retornados.

FindNativeModule(UInt64, Boolean)

Resolve um endereço virtual para um módulo nativo. Se o endereço virtual não estiver dentro de um módulo, nulo será retornado (S_FALSE código de retorno nativamente).

FindProcess(Guid)

Localize um objeto DkmProcess. Se nenhum objeto com a chave de entrada fornecida estiver presente, FindProcess falhará.

FindProcessSnapshot(UInt32)

Localize um elemento DkmProcessSnapshot dentro deste DkmProcess. Se nenhum elemento com a chave de entrada fornecida estiver presente, FindProcessSnapshot falhará.

Essa API foi introduzida no Visual Studio 15 Atualização 3 (DkmApiVersion.VS15Update3).

FindRuntimeInstance(DkmRuntimeInstanceId)

Localize um elemento DkmRuntimeInstance dentro deste DkmProcess. Se nenhum elemento com a chave de entrada fornecida estiver presente, FindRuntimeInstance falhará.

FindSystemThread(Int32)

Localize um elemento DkmThread dentro deste DkmProcess. Se nenhum elemento com a chave de entrada fornecida estiver presente, FindSystemThread falhará. Se um objeto for encontrado, ele sempre conterá a parte 'System'.

FreeVirtualMemory(UInt64, Int32, Int32)

Libera e/ou confirma uma região de memória dentro do espaço de endereço virtual do processo de destino. Para obter informações adicionais, consulte a API VirtualFree Win32 no MSDN.

GetComputeKernels()

GetComputeKernels enumera os elementos DkmGPUComputeKernel deste objeto DkmProcess.

GetDataItem<T>()

Obtém a instância de 'T' que foi adicionada a essa instância de contêiner. Se esse contêiner não contiver um 'T', essa função retornará nulo.

(Herdado de DkmDataContainer)
GetDumpExePath()

Retorna o caminho para o executável primário no minidespejo que está sendo depurado.

Essa API foi introduzida no Visual Studio 12 RTM (DkmApiVersion.VS12RTM).

GetDumpSaveTime()

Retorna a hora em que o minidespejo foi salvo.

Essa API foi introduzida no Visual Studio 16 Atualização 10 (DkmApiVersion.VS16Update10).

GetEndingTimeContext()

Obtém o contexto de tempo que representa a posição final do rastreamento.

Essa API foi introduzida no Visual Studio 16 RTM (DkmApiVersion.VS16RTMPreview).

GetGPUBreakpointBehavior()

Obter o comportamento do ponto de interrupção do processo.

GetHandleCount()

Obtém o número de identificadores ativos no processo.

GetInstructionAddress(DkmInstructionAddress, Int32)

Retorna o endereço da instrução kth em relação a um endereço inicial. Para conjuntos de instruções de comprimento constante, isso é aritmético simples. Para conjuntos de instruções de comprimento variável, a desmontagem inversa é necessária para obter esse endereço.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

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

Retorna o endereço da instrução kth em relação a um endereço inicial. Para conjuntos de instruções de comprimento constante, isso é aritmético simples. Para conjuntos de instruções de comprimento variável, a desmontagem inversa é necessária para obter esse endereço.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

GetInstructionAddress(DkmWorkList, UInt64, DkmCompletionRoutine<DkmGetInstructionAddressAsyncResult>)

Resolve um InstructionAddress da CPU para um DkmInstructionAddress.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

Restrição de local: a API deve ser chamada de um componente IDE (nível > de componente 100.000).

GetManagedStowedException()

Obtenha a exceção gerenciada de um despejo. Isso retornará S_FALSE se não houver nenhuma exceção gerenciada.

Essa API foi introduzida no Visual Studio 12 Atualização 3 (DkmApiVersion.VS12Update3).

GetMemoryReadTime(UInt64, UInt32, DkmMemoryTimeFlags)

Chamado para descobrir de que horas relativas ao tempo de processo atual um valor de uma leitura de memória é resolvido.

Essa API foi introduzida no Visual Studio 15 Atualização 8 (DkmApiVersion.VS15Update8).

GetNativeRuntimeInstance()

Fornece acesso ao DkmRuntimeInstance, que é para o código ingênuo dentro de um processo. Há exatamente um DkmRuntimeInstance para um processo.

GetNativeStowedException()

Obtenha a exceção nativa de um despejo. Isso retornará S_FALSE se não houver nenhuma exceção nativa.

Essa API foi introduzida no Visual Studio 12 Atualização 3 (DkmApiVersion.VS12Update3).

GetPendingBreakpoints()

GetPendingBreakpoints enumera os elementos DkmPendingBreakpoint deste objeto DkmProcess.

GetProcesses()

GetProcesses enumera todos os objetos DkmProcess criados.

GetProcessExecuteDirection()

Obtém um valor que indica se o processo está em execução na direção para frente ou inversa. Esse método só é implementado para processos de viagem no tempo.

Essa API foi introduzida no Visual Studio 15 Atualização 8 (DkmApiVersion.VS15Update8).

GetProcessorArchitecture(UInt64, DkmProcessorArchitecture)

Determina a arquitetura de um determinado endereço.

Essa API foi introduzida no Visual Studio 16 Atualização 9 (DkmApiVersion.VS16Update9).

GetProcessSnapshots()

GetProcessSnapshots enumera os elementos DkmProcessSnapshot deste objeto DkmProcess.

Essa API foi introduzida no Visual Studio 15 Atualização 3 (DkmApiVersion.VS15Update3).

GetRunningTime()

Obtém o número de ciclos de relógio que o depurador está executando desde que ResetRunningTime() foi chamado pela última vez.

GetRuntimeFunctionResolutionRequests()

GetRuntimeFunctionResolutionRequests enumera os elementos DkmRuntimeFunctionResolutionRequest deste objeto DkmProcess.

GetRuntimeInstances()

GetRuntimeInstances enumera os elementos DkmRuntimeInstance deste objeto DkmProcess.

GetSerializedProcessInfo()

Obtenha informações sobre um processo serializado.

Essa API foi introduzida no Visual Studio 17 Atualização 2 (DkmApiVersion.VS17Update2).

GetSourceSnapshot()

Obtenha o objeto de instantâneo de origem para o processo depurado. O processo depurado deve representar instantâneos.

Essa API foi introduzida no Visual Studio 15 Atualização 3 (DkmApiVersion.VS15Update3).

GetStowedExceptions()

Obtenha as exceções de um despejo.

Essa API foi introduzida no Visual Studio 12 Atualização 3 (DkmApiVersion.VS12Update3).

GetSystemThreads()

Fornece a lista de threads do sistema ativos no processo. Threads que não são threads do sistema (DkmThread::System é nulo) ou que foram descarregados, não estarão presentes nesta coleção.

GetTargetCompositionServices(DkmTargetCompositionScenario, Object)

Obtém o IDebugServiceManager para o cenário correspondente, que pode ser usado para acessar extensões baseadas em Composição de Destino.

Restrição de local: as interfaces de composição de destino não podem ter marshaling em todo o computador, mas são seguras de usar, se disponíveis.

Essa API foi introduzida no Visual Studio 16 Atualização 5 (DkmApiVersion.VS16Update5).

GetThreads()

GetThreads enumera os elementos DkmThread desse objeto DkmProcess.

InvisibleWriteMemory(UInt64, Byte[])

Gravar memória no processo de destino, mas ocultar a gravação de chamadas para ReadMemory. Essa API pode ser usada para corrigir instruções ou dados dentro do processo de destino para implementar recursos do depurador. Antes que a transferência de dados ocorra, o sistema verifica se todos os dados no endereço base e na memória do tamanho especificado estão acessíveis para acesso de gravação e, se não estiverem acessíveis, a função gerará um erro de E_INVALID_MEMORY_ADDRESS.

IsLoadComplete()

Retornará true se, depois que todos os módulos iniciais forem carregados/criações de thread, tiverem sido enviados para todos os runtimes presentes quando começamos a depurar o processo. Observe que essa definição pode ser diferente da definição da API de Depuração win32 de carga concluída, pois outras instâncias de runtime podem precisar de tempo adicional para carregar.

Essa API foi introduzida no Visual Studio 12 Atualização 2 (DkmApiVersion.VS12Update2).

IsStopped()

Esse método permite que um componente determine se o processo é considerado interrompido pelo Dispatcher. Esse método não precisa ser chamado de dentro de um método de interface que exige que o processo de destino seja interrompido, mas pode ser útil durante operações que podem ser chamadas do modo de execução.

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

Esse método pesquisará o disco local e todos os servidores de símbolo configurados para um binário que corresponda aos parâmetros. O caminho para esse arquivo no disco local é retornado. Se o arquivo estiver em um servidor de símbolos, ele será baixado para um cache e o caminho local será retornado.

OnAsyncBreakComplete(DkmAsyncBreakStatus, DkmThread)

Gerar um evento AsyncBreakComplete. Os componentes que implementam a interface do coletor de eventos receberão a notificação de evento. Esse método enfileirará o evento e o controle retornará imediatamente ao chamador.

OnEntryPoint(DkmThread)

Gerar um evento EntryPoint. Os componentes que implementam a interface do coletor de eventos receberão a notificação de evento. Esse método enfileirará o evento e o controle retornará imediatamente ao chamador.

OnHiddenEntryPoint(DkmThread)

Gerar um evento HiddenEntryPoint. Os componentes que implementam a interface do coletor de eventos receberão a notificação de evento. Esse método enfileirará o evento e o controle retornará imediatamente ao chamador.

Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

OnInstructionPatchInserted(UInt64, Byte[])

Método chamado pelo monitor de depuração base para informar a outros componentes que a memória de instrução do processo de destino foi modificada. Atualmente, isso só é usado para inserção de ponto de interrupção.

Restrição de local: a API deve ser chamada de um componente monitor (nível < de componente 100.000).

OnInstructionPatchRemoved(UInt64, Byte[])

Método chamado pelo monitor de depuração base para informar a outros componentes que a memória de instrução do processo de destino foi restaurada para seu estado original. Atualmente, isso só é usado para remoção de ponto de interrupção.

Restrição de local: a API deve ser chamada de um componente monitor (nível < de componente 100.000).

OnLoadComplete()

Esse método é chamado pelo monitor de depuração base do processo para gerar um evento LoadComplete. LoadComplete é emitido depois que objetos DkmModuleInstance foram criados para o conjunto inicial de módulos no processo e, geralmente, o conjunto inicial de threads também foi criado.

O evento de carregamento completo pode ser adiado por um monitor de depuração de runtime usando DkmLoadCompleteEventDeferral.Add, caso em que esse método será concluído imediatamente. Caso contrário, esse método enviará o evento para todos os componentes que implementam a interface de sincronização de eventos. O controle retornará depois que todos os componentes forem notificados.

Esse método só pode ser chamado pelo componente que criou o objeto .

OnProcessSnapshotAdded(DkmProcessSnapshot)

Manipulador que é notificado após um processo instantâneo é usado para o processo determinado.

Essa API foi introduzida no Visual Studio 15 Atualização 6 (DkmApiVersion.VS15Update6).

OnProcessSnapshotRemoved(DkmProcessSnapshot)

Manipulador que é notificado após um processo instantâneo é removido do processo determinado.

Essa API foi introduzida no Visual Studio 15 Atualização 6 (DkmApiVersion.VS15Update6).

OnTraceTimeContextSet(DkmTraceTimeContext, DkmTraceTimeContext, DkmTraceTimeContext, DkmThread)

Gere um evento TraceTimeContextSet. Os componentes que implementam a interface do coletor de eventos receberão a notificação de evento. O controle retornará depois que todos os componentes forem notificados.

Esse método só pode ser chamado pelo componente que criou o objeto .

Essa API foi introduzida no Visual Studio 16 Atualização 2 (DkmApiVersion.VS16Update2).

QueryPerformanceCounters(DkmWorkList, DkmCompletionRoutine<DkmPerformanceCountersAsyncResult>)

Método assíncrono para obter os dados de tempo do IDkmPerformanceMeasurementDispatcherService coletados de eventos emitidos pelos runtimes no processo. Isso é chamado de forma assíncrona porque obter a sobrecarga do depurador pode ser muito caro.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

ReadMemory(UInt64, DkmReadMemoryFlags, Byte[])

Leia a memória do processo de destino.

ReadMemory(UInt64, DkmReadMemoryFlags, Void*, Int32)

Leia a memória do processo de destino.

ReadMemoryString(UInt64, DkmReadMemoryFlags, UInt16, Int32)

Lê uma cadeia de caracteres terminada em nulo da memória do processo de destino. Isso pode ser usado para ler cadeias de caracteres ANSI ou Unicode (UTF-8, UTF-16 ou UTF-32).

RemoveDataItem<T>()

Remova a instância de 'T' desse contêiner. Geralmente, é desnecessário chamar esse método, pois um contêiner de dados será esvaziado automaticamente quando o objeto for fechado.

(Herdado de DkmDataContainer)
RemoveExceptionTrigger(DkmWorkList, Guid, DkmExceptionTrigger, DkmCompletionRoutine<DkmRemoveExceptionTriggerAsyncResult>)

Remove um gatilho de exceção definido anteriormente. Observe que o estágio de processamento é ignorado e não precisa corresponder ao valor originalmente fornecido.

Esse método acrescentará um novo item de trabalho à lista de trabalho especificada e retornará depois que o item de trabalho for acrescentado. O processamento real do item de trabalho é assíncrono. O chamador será notificado de que a solicitação foi concluída por meio da rotina de conclusão.

Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

RemoveExceptionTrigger(Guid, DkmExceptionTrigger)

Remove um gatilho de exceção definido anteriormente. Observe que o estágio de processamento é ignorado e não precisa corresponder ao valor originalmente fornecido.

Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

RemoveSnapshotById(UInt32)

Remova os instantâneos do processo para esse processo.

Essa API foi introduzida no Visual Studio 15 Atualização 5 (DkmApiVersion.VS15Update5).

RemoveSnapshots()

Remova os instantâneos do processo para esse processo.

Essa API foi introduzida no Visual Studio 15 Atualização 3 (DkmApiVersion.VS15Update3).

SearchRuntimeFunctionTable(UInt64, UInt64)

O método retornará o conteúdo do IMAGE_RUNTIME_FUNCTION_ENTRY para um endereço, se possível. Para pesquisar entradas estáticas, os chamadores devem chamar o método equivalente em DkmNativeModuleInstance.

SetCoreDumpParserTargetCompositionServices(Object)

Obtém o IDebugServiceManager para o cenário de análise de arquivo principal, que pode ser usado para acessar extensões baseadas em Composição de Destino.

Restrição de local: as interfaces de composição de destino não podem ter marshaling em todo o computador, mas são seguras de usar, se disponíveis.

Essa API foi introduzida no Visual Studio 16 Atualização 8 (DkmApiVersion.VS16Update8).

SetDataItem<T>(DkmDataCreationDisposition, T)

Coloque um novo item no contêiner de dados.

(Herdado de DkmDataContainer)
SetDetachUnavailable(Int32)

Chamado por um componente para indicar que desanexar não é permitido no processo.

Essa API foi introduzida no Visual Studio 14 RTM (DkmApiVersion.VS14RTM).

SetGPUMemoryAccessWarning(Int32, Boolean)

Habilita/desabilita um aviso de acesso à memória de GPU específico.

SetProcessExecuteDirection(DkmProcessExecuteDirection)

Define a direção de execução dos processos. A direção pode ser para frente ou inverter. Esse método só é implementado para processos de viagem no tempo.

Essa API foi introduzida no Visual Studio 15 Atualização 8 (DkmApiVersion.VS15Update8).

SetRunningTime(UInt64)

Define o contador de tempo de execução como o valor especificado.

StoppingEventProcessingBegin(Boolean)

StopEventProcessingBegin é chamado pelo monitor de depuração base no thread de evento. Ele notifica o Dispatcher de que o processo de destino foi interrompido e pode ter atingido um evento de interrupção. Por exemplo, o monitor de depuração base do Win32 chama isso sempre que recebe uma EXCEPTION_DEBUG_EVENT do sistema operacional. Esse método atualiza o estado interno do objeto DkmProcess para que os eventos de interrupção possam ser enviados.

StoppingEventProcessingContinue()

StopEventProcessingContinue é chamado pelo monitor de depuração base no thread de evento. Esse método é chamado depois que todos os eventos de interrupção no lote atual foram emitidos (por exemplo: DkmRuntimeBreakpoint.OnHit). Esse método notificará os componentes que implementaram uma interface de notificação de eventos de interrupção e chamará o gerenciador de execução para colocar o processo em um ponto seguro. O monitor de depuração base deve chamar StopEventProcessingContinue após qualquer chamada bem-sucedida para StoppingEventProcessingBegin. o monitor de depuração base depois de ter emitido todos os eventos de interrupção.

Um monitor de depuração base deve esperar ser chamado novamente enquanto estiver nesse método.

TakeSnapshot(UInt64, DkmThread)

Tire uma instantâneo do depurador.

Restrição de local: servidor.

Essa API foi introduzida no Visual Studio 15 Atualização 3 (DkmApiVersion.VS15Update3).

TakeSnapshotWithException(UInt64, DkmExceptionInformation)

Tire uma instantâneo do depurador.

Restrição de local: servidor.

Essa API foi introduzida no Visual Studio 15 Atualização 5 (DkmApiVersion.VS15Update5).

Terminate(Int32)

Esse método é chamado para instruir o monitor a encerrar o processo de destino. Isso disparará um evento ProcessExit a ser enviado no thread de evento.

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

Chamado para iniciar a localização de binários cujas imagens podem não ter encontrado ou tentado ser carregadas anteriormente. Esse método pesquisará o disco local e todos os servidores de símbolo configurados para um binário que corresponda aos parâmetros. O caminho para esse arquivo no disco local é retornado. Se o arquivo estiver em um servidor de símbolos, ele será baixado para um cache e o caminho local será retornado.

Essa API foi introduzida no Visual Studio 11 Atualização 1 (DkmApiVersion.VS11FeaturePack1).

Unload(Int32)

ProcessExit é enviado pelo dispatcher quando DkmProcess::Unload é invocado pelo monitor.

Esse método só pode ser chamado pelo componente que criou o objeto .

VolatileReadMemory(UInt64, Byte[])

Ler memória do processo de destino. Esse método difere de 'ReadMemory' porque esse método pode ser chamado a qualquer momento (não apenas quando o destino é interrompido) e o depurador não tentará armazenar em cache o resultado dessa operação.

VolatileReadMemory(UInt64, Void*, Int32)

Ler memória do processo de destino. Esse método difere de 'ReadMemory' porque esse método pode ser chamado a qualquer momento (não apenas quando o destino é interrompido) e o depurador não tentará armazenar em cache o resultado dessa operação.

VolatileWriteMemory(UInt64, Byte[])

Gravar na memória do processo de destino. Esse método difere de 'WriteMemory' porque esse método pode ser chamado a qualquer momento (não apenas quando o destino é interrompido) e o depurador não tentará armazenar em cache o resultado dessa operação. Se nenhuma memória não puder ser gravada, um erro de E_INVALID_MEMORY_ADDRESS será gerado. Como a gravação de memória pode ocorrer no modo de execução, essa falha pode ocorrer depois que a operação de cópia já tiver começado e, portanto, pode levar à corrupção de memória no processo de destino. Por esse motivo, essa função deve ser usada com cuidado e falhas podem ser fatais.

WaitForPausingEventProcessingComplete(Int32, Boolean)

Esse método pode ser chamado de um componente de monitor para aguardar qualquer interrupção com a manipulação de eventos de pausa, bem como qualquer processamento IDkmProcessContinueNotification que esteja acontecendo para ser concluído no momento. Entre outras coisas, isso pode ser útil ao tentar anular func-evals, certificando-se de que o processo de destino tenha a oportunidade de ser executado. Observe que esse método não fornece nenhuma garantia de que não haverá imediatamente mais eventos de pausa, portanto, o código não deve assumir que, depois de retornar dessa API, nenhum processamento de evento de interrupção está acontecendo.

Restrição de local: a API deve ser chamada de um componente monitor (nível < de componente 100.000).

Essa API foi introduzida no Visual Studio 15 Atualização 6 (DkmApiVersion.VS15Update6).

WriteDump(DkmDumpType, String, DkmThread)

Esse método gravará um despejo de memória do processo no caminho especificado.

WriteMemory(UInt64, Byte[])

Grava memória no processo de destino. Antes que a transferência de dados ocorra, o sistema verifica se todos os dados no endereço base e na memória do tamanho especificado estão acessíveis para acesso de gravação e, se não estiverem acessíveis, a função gerará um erro de E_INVALID_MEMORY_ADDRESS.

Aplica-se a