Compartir a través de


ICLRDataTarget

Actualización: noviembre 2007

Proporciona métodos que permiten la interacción con un elemento de destino de Common Language Runtime (CLR).

interface ICLRDataTarget : IUnknown {
        
    HRESULT GetCurrentThreadID (
        [out] ULONG32           *threadID
    );
        
    HRESULT GetImageBase (
        [in, string] LPCWSTR    imagePath,
        [out] CLRDATA_ADDRESS   *baseAddress
    );
        
    HRESULT GetMachineType (
        [out] ULONG32           *machineType
    );
        
    HRESULT GetPointerSize (
        [out] ULONG32           *pointerSize
    );
        
    HRESULT GetThreadContext (
        [in] ULONG32            threadID,
        [in] ULONG32            contextFlags,
        [in] ULONG32            contextSize,
        [out, size_is(contextSize)] 
            BYTE                *context
    );
        
    HRESULT GetTLSValue (
        [in] ULONG32            threadID,
        [in] ULONG32            index,
        [out] CLRDATA_ADDRESS   *value
    );
        
    HRESULT ReadVirtual (
        [in] CLRDATA_ADDRESS    address,
        [out, size_is(bytesRequested), length_is(*bytesRead)] 
            BYTE                *buffer,
        [in] ULONG32            bytesRequested,
        [out] ULONG32           *bytesRead
    );
        
    HRESULT Request (
        [in] ULONG32            reqCode,
        [in] ULONG32            inBufferSize,
        [in, size_is(inBufferSize)] 
            BYTE                *inBuffer,
        [in] ULONG32            outBufferSize,
        [out, size_is(outBufferSize)] 
            BYTE                *outBuffer
    );
        
    HRESULT SetThreadContext (
        [in] ULONG32            threadID,
        [in] ULONG32            contextSize,
        [in, size_is(contextSize)] 
             BYTE               *context
    );
        
    HRESULT SetTLSValue (
        [in] ULONG32            threadID,
        [in] ULONG32            index,
        [in] CLRDATA_ADDRESS    value
    );
        
    HRESULT WriteVirtual (
        [in] CLRDATA_ADDRESS    address,
        [in, size_is(bytesRequested)] 
                         BYTE               *buffer,
        [in] ULONG32            bytesRequested,
        [out] ULONG32           *bytesWritten
    );
        
};

Métodos

Método

Descripción

ICLRDataTarget::GetCurrentThreadID (Método)

Obtiene el identificador del sistema operativo para el subproceso actual.

ICLRDataTarget::GetImageBase (Método)

Obtiene la dirección de memoria base de la imagen especificada.

ICLRDataTarget::GetMachineType (Método)

Obtiene un identificador de la clase de conjunto de instrucciones que está utilizando el proceso de destino.

ICLRDataTarget::GetPointerSize (Método)

Obtiene el tamaño en bytes de un puntero al destino actual.

ICLRDataTarget::GetThreadContext (Método)

Obtiene un puntero al contexto del subproceso con el identificador especificado.

ICLRDataTarget::GetTLSValue (Método)

Obtiene un valor en el índice especificado del almacenamiento local de subprocesos (TLS) para el subproceso indicado.

ICLRDataTarget::ReadVirtual (Método)

Lee los datos de la dirección de memoria virtual especificada en el búfer especificado.

ICLRDataTarget::Request (Método)

Llamado por los servicios de acceso a datos de Common Language Runtime (CLR) para solicitar una operación, según lo definido por la implementación.

ICLRDataTarget::SetThreadContext (Método)

Establece el contexto actual del subproceso especificado en el proceso de destino.

ICLRDataTarget::SetTLSValue (Método)

Establece un valor en el almacenamiento local de subprocesos (TLS) del subproceso especificado en el proceso de destino.

ICLRDataTarget::WriteVirtual (Método)

Escribe los datos del búfer especificado en la dirección de memoria virtual especificada.

Comentarios

El cliente API (es decir, el depurador) debe implementar esta interfaz según corresponda para el elemento de destino especificado. Por ejemplo, un proceso activo tendría una implementación diferente de la de un volcado de memoria.

Requisitos

Plataformas: vea Requisitos de sistema de .NET Framework.

Encabezado: ClrData.idl

Biblioteca: CorGuids.lib

Versiones de .NET Framework: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Vea también

Referencia

ICLRDataTarget2

Otros recursos

Interfaces para depuración