Compartilhar via


Método ICLRDebugging::OpenVirtualProcess

Obtém a interface ICorDebugProcess que corresponde a um módulo CLR (Common Language Runtime) carregado no processo.

Sintaxe

HRESULT OpenVirtualProcess(
    [in] ULONG64 moduleBaseAddress,
    [in] IUnknown * pDataTarget,
    [in] ICLRDebuggingLibraryProvider * pLibraryProvider,
    [in] CLR_DEBUGGING_VERSION * pMaxDebuggerSupportedVersion,
    [in] REFIID riidProcess,
    [out, iid_is(riidProcess)] IUnknown ** ppProcess,
    [in, out] CLR_DEBUGGING_VERSION * pVersion,
    [out] CLR_DEBUGGING_PROCESS_FLAGS * pdwFlags);

Parâmetros

moduleBaseAddress [in] O endereço base de um módulo no processo de destino. COR_E_NOT_CLR será retornado se o módulo especificado não for um módulo CLR.

pDataTarget [in] Uma abstração de destino de dados que permite ao depurador gerenciado inspecionar o estado do processo. O depurador deve implementar a interface ICorDebugDataTarget . Você deve implementar a interface ICLRDebuggingLibraryProvider para dar suporte a cenários em que o CLR que está sendo depurado não está instalado localmente no computador.

pLibraryProvider [in] Uma interface de retorno de chamada do provedor de biblioteca que permite que bibliotecas de depuração específicas de versão sejam localizadas e carregadas sob demanda. Esse parâmetro é necessário somente se ppProcess ou pFlags não nullfor .

pMaxDebuggerSupportedVersion [in] A versão mais alta do CLR que esse depurador pode depurar. Você deve especificar as versões principais, secundárias e de build da versão mais recente do CLR compatível com esse depurador e definir o número de revisão como 65535 para acomodar futuras versões de manutenção clr in-loco.

riidProcess [in] A ID da interface ICorDebugProcess a ser recuperada. Atualmente, os únicos valores aceitos são IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2e IID_CORDEBUGPROCESS.

ppProcess [out] Um ponteiro para a interface COM identificada por riidProcess.

pVersion [dentro, fora] A versão do CLR. Na entrada, esse valor pode ser null. Ele também pode apontar para uma estrutura de CLR_DEBUGGING_VERSION , nesse caso, o campo da wStructVersion estrutura deve ser inicializado como 0 (zero).

Na saída, a estrutura retornada CLR_DEBUGGING_VERSION será preenchida com as informações de versão do CLR.

pdwFlags [out] Sinalizadores informativos sobre o runtime especificado. Para obter uma descrição dos sinalizadores, consulte CLR_DEBUGGING_PROCESS_FLAGS.

Valor de retorno

Esse método retorna os HRESULTs específicos a seguir, bem como erros HRESULT que indicam falha de método.

HRESULT Description
S_OK O método foi concluído com êxito.
E_POINTER pDataTarget é null.
CORDBG_E_LIBRARY_PROVIDER_ERROR O retorno de chamada ICLRDebuggingLibraryProvider retorna um erro ou não fornece um identificador válido.
CORDBG_E_MISSING_DATA_TARGET_INTERFACE pDataTarget não implementa as interfaces de destino de dados necessárias para esta versão do runtime.
CORDBG_E_NOT_CLR O módulo indicado não é um módulo CLR. Esse HRESULT também é retornado quando um módulo CLR não pode ser detectado porque a memória foi corrompida, o módulo não está disponível ou a versão CLR é posterior à versão do shim.
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL Essa versão de runtime não dá suporte a esse modelo de depuração. Atualmente, não há suporte para o modelo de depuração por versões CLR antes do .NET Framework 4. O pwszVersion parâmetro de saída ainda está definido como o valor correto após esse erro.
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT A versão do CLR é maior do que a versão que esse depurador afirma dar suporte. O pwszVersion parâmetro de saída ainda está definido como o valor correto após esse erro.
E_NO_INTERFACE A riidProcess interface não está disponível.
CORDBG_E_UNSUPPORTED_VERSION_STRUCT A CLR_DEBUGGING_VERSION estrutura não tem um valor reconhecido para wStructVersion. O único valor aceito neste momento é 0.

Exceptions

Observações

Requirements

Plataformas: confira Requisitos do sistema.

Cabeçalho: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versões do .NET Framework: Disponível desde 4

Versões do .NET: Disponível desde o .NET Core 2.1

Consulte também