次の方法で共有


ICLRDataTarget

更新 : 2007 年 11 月

共通言語ランタイム (CLR: Common Language Runtime) のターゲット項目と対話するためのメソッドを提供します。

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: Thread Local Storage) の値を取得します。

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

その他の技術情報

デバッグのインターフェイス