ICLRDataTarget

更新:2007 年 11 月

提供与公共语言运行库 (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
    );
        
};

方法

方法

说明

ICLRDataTarget::GetCurrentThreadID 方法

获取当前线程的操作系统标识符。

ICLRDataTarget::GetImageBase 方法

获取指定映像的内存基址。

ICLRDataTarget::GetMachineType 方法

获取目标进程正在使用的指令集类型的标识符。

ICLRDataTarget::GetPointerSize 方法

获取指向当前目标的指针的大小(以字节为单位)。

ICLRDataTarget::GetThreadContext 方法

获取一个指针,该指针指向具有指定标识符的线程的上下文。

ICLRDataTarget::GetTLSValue 方法

为指定线程获取位于线程本地存储区 (TLS) 中指定索引处的值。

ICLRDataTarget::ReadVirtual 方法

将指定的虚拟内存地址中的数据读入指定缓冲区。

ICLRDataTarget::Request 方法

由公共语言运行库 (CLR) 数据访问服务调用以请求操作(如实现所定义)。

ICLRDataTarget::SetThreadContext 方法

设置目标进程中指定线程的当前上下文。

ICLRDataTarget::SetTLSValue 方法

在目标进程中指定线程的线程本地存储区 (TLS) 中设置一个值。

ICLRDataTarget::WriteVirtual 方法

将指定的缓冲区中的数据写入指定的虚拟内存地址。

备注

API 客户端(即调试器)必须为特定的目标项相应地实现此接口。例如,活动进程将与内存转储具有不同实现。

要求

**平台:**请参见 .NET Framework 系统要求

**头文件:**ClrData.idl

**库:**CorGuids.lib

**.NET Framework 版本:**3.5 SP1、3.5、3.0 SP1、3.0、2.0 SP1、2.0

请参见

参考

ICLRDataTarget2

其他资源

调试接口