Freigeben über


ICLRDataTarget

Aktualisiert: November 2007

Stellt Methoden für die Interaktion mit einem Zielelement der Common Language Runtime (CLR) zur Verfügung.

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
    );
        
};

Methoden

Methode

Beschreibung

ICLRDataTarget::GetCurrentThreadID-Methode

Ruft den Betriebssystembezeichner für den aktuellen Thread ab.

ICLRDataTarget::GetImageBase-Methode

Ruft die Adresse des Basisspeichers für das angegebene Bild ab.

ICLRDataTarget::GetMachineType-Methode

Ruft einen Bezeichner für die Art von Befehlssatz ab, die der Zielprozess verwendet.

ICLRDataTarget::GetPointerSize-Methode

Ruft die Größe (in Byte) eines Zeigers auf das aktuelle Ziel ab.

ICLRDataTarget::GetThreadContext-Methode

Ruft einen Zeiger auf den Kontext des Threads mit dem angegebenen Bezeichner ab.

ICLRDataTarget::GetTLSValue-Methode

Ruft am angegebenen Index einen Wert im lokalen Threadspeicher (TLS) für den angegebenen Thread ab.

ICLRDataTarget::ReadVirtual-Methode

Liest Daten aus der angegebenen Adresse des virtuellen Arbeitsspeichers in den angegebenen Puffer.

ICLRDataTarget::Request-Methode

Wird von den Datenzugriffsdiensten der Common Language Runtime (CLR) aufgerufen, um einen Vorgang anzufordern, wie durch die Implementierung definiert.

ICLRDataTarget::SetThreadContext-Methode

Legt den aktuellen Kontext des angegebenen Threads im Zielprozess fest.

ICLRDataTarget::SetTLSValue-Methode

Legt einen Wert im lokalen Threadspeicher (TLS) des angegebenen Threads im Zielprozess fest.

ICLRDataTarget::WriteVirtual-Methode

Schreibt Daten aus dem angegebenen Puffer an die angegebene Adresse des virtuellen Arbeitsspeichers.

Hinweise

Der API-Client (d. h. der Debugger) muss diese Schnittstelle in einer für das jeweiligen Zielelement geeigneten Form implementieren. So hätte ein Liveprozess z. B. eine andere Implementierung als ein Speicherdump.

Anforderungen

Plattformen: siehe Systemanforderungen für .NET Framework.

Header: ClrData.idl

Bibliothek: CorGuids.lib

.NET Framework-Versionen: 3.5 SP1, 3.5, 3.0 SP1, 3.0, 2.0 SP1, 2.0

Siehe auch

Referenz

ICLRDataTarget2

Weitere Ressourcen

Debugschnittstellen