Compartilhar via


Interface ICLRDataTarget

Fornece métodos para interação com um item de destino a Common linguagem tempo de execução (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

Descrição

Método ICLRDataTarget::GetCurrentThreadID

Obtém o identificador do sistema operacional corrente thread.

Método ICLRDataTarget::GetImageBase

Obtém o endereço da memória base para a imagem especificada.

Método ICLRDataTarget::GetMachineType

Obtém um identificador para o tipo de conjunto de instruções que o processo de destino está usando.

Método ICLRDataTarget::GetPointerSize

Obtém o dimensionar em bytes, de um ponteiro para o destino corrente.

Método ICLRDataTarget::GetThreadContext

Obtém um ponteiro para o contexto do segmento com o identificador especificado.

Método ICLRDataTarget::GetTLSValue

Obtém um valor no armazenamento local de thread (TLS) no índice especificado para o segmento especificado.

Método ICLRDataTarget::ReadVirtual

Lê dados do endereço de memória virtual especificado para o buffer especificado.

Método ICLRDataTarget::solicitação

Chamado pelos linguagem tempo de execução (CLR) dados acesso serviços comuns para solicitar uma operação, conforme definido pela implementação.

Método ICLRDataTarget::SetThreadContext

Define o contexto corrente do segmento especificado do processo de destino.

Método ICLRDataTarget::SetTLSValue

Define um valor no armazenamento local de thread (TLS) do segmento especificado do processo de destino.

Método ICLRDataTarget::WriteVirtual

Grava dados do buffer especificado para o endereço de memória virtual especificado.

Comentários

O cliente de API (ou seja, o depurador) deve implementar essa interface conforme apropriado para o item de destino específico. Por exemplo, um processo em tempo real teria uma implementação diferente de um despejo de memória.

Requisitos

Plataformas: See Requisitos de sistema do .NET framework.

Cabeçalho: ClrData.idl

Biblioteca: CorGuids.lib

.NET Framework Versions: 3.5 SP1, 3,5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Consulte também

Referência

Interface ICLRDataTarget2

Outros recursos

Interfaces de depuração