ICLRDebugging::OpenVirtualProcess (Método)

Obtiene la interfaz ICorDebugProcess que corresponde a un módulo de Common Language Runtime (CLR) cargado en el proceso.

Sintaxis

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] Dirección base de un módulo en el proceso de destino. COR_E_NOT_CLR se devolverá si el módulo especificado no es un módulo CLR.

pDataTarget [in] Abstracción de destino de datos que permite al depurador administrado inspeccionar el estado del proceso. El depurador debe implementar la interfaz ICorDebugDataTarget. Debe implementar la interfaz ICLRDebuggingLibraryProvider para admitir escenarios en los que el CLR que se depura no se instala localmente en el equipo.

pLibraryProvider [in] Interfaz de devolución de llamada del proveedor de bibliotecas que permite buscar y cargar a petición bibliotecas de depuración específicas de la versión. Este parámetro solo es necesario si ppProcess o pFlags no es null.

pMaxDebuggerSupportedVersion [in] La versión más alta de CLR que este depurador puede depurar. Debe especificar las versiones principales, secundarias y de compilación de la versión más reciente de CLR que admite este depurador y establecer el número de revisión en 65535 para dar cabida a futuras versiones de mantenimiento de CLR in situ.

riidProcess [in] Id. de la interfaz ICorDebugProcess que se va a recuperar. Actualmente, los únicos valores aceptados son IID_CORDEBUGPROCESS3, IID_CORDEBUGPROCESS2 y IID_CORDEBUGPROCESS.

ppProcess [out] Puntero a la interfaz COM que identifica riidProcess.

pVersion [in, out] Versión de CLR. En la entrada, este valor puede ser null. También puede apuntar a una estructura CLR_DEBUGGING_VERSION, en cuyo caso el campo wStructVersion de a estructura debe inicializarse en 0 (cero).

En la salida, la estructura CLR_DEBUGGING_VERSION devuelta se rellenará con la información de versión de CLR.

pdwFlags [out] Marcas informativas sobre el runtime especificado. Vea el tema CLR_DEBUGGING_PROCESS_FLAGS para obtener una descripción de las marcas.

Valor devuelto

Este método devuelve los siguientes HRESULT específicos y los errores HRESULT que indican un error del método.

HRESULT Descripción
S_OK El método se completó correctamente.
E_POINTER pDataTarget es null.
CORDBG_E_LIBRARY_PROVIDER_ERROR La devolución de llamada de ICLRDebuggingLibraryProvider devuelve un error o no proporciona un identificador válido.
CORDBG_E_MISSING_DATA_TARGET_INTERFACE pDataTarget no implementa las interfaces de destino de datos necesarias para esta versión del runtime.
CORDBG_E_NOT_CLR El módulo indicado no es un módulo CLR. Este HRESULT también se devuelve cuando no se puede detectar un módulo CLR porque la memoria está dañada, el módulo no está disponible o la versión de CLR es posterior a la versión de correcciones de compatibilidad (shim).
CORDBG_E_UNSUPPORTED_DEBUGGING_MODEL Esta versión del runtime no admite este modelo de depuración. Actualmente, las versiones de CLR anteriores a .NET Framework 4 no admiten el modelo de depuración. El parámetro de salida pwszVersion todavía se establece en el valor correcto después de este error.
CORDBG_E_UNSUPPORTED_FORWARD_COMPAT La versión de CLR es mayor que la versión que admite este depurador. El parámetro de salida pwszVersion todavía se establece en el valor correcto después de este error.
E_NO_INTERFACE La interfaz riidProcess no está disponible.
CORDBG_E_UNSUPPORTED_VERSION_STRUCT La estructura CLR_DEBUGGING_VERSION no tiene un valor reconocido para wStructVersion. El único valor aceptado en este momento es 0.

Excepciones

Observaciones

Requisitos

Plataformas: Vea Requisitos de sistema.

Encabezado: CorDebug.idl, CorDebug.h

Biblioteca: CorGuids.lib

Versiones de .NET Framework: disponible a partir de la versión 4

Versiones de .NET: disponible a partir de .NET Core 2.1

Consulte también