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 |
---|---|
Ruft den Betriebssystembezeichner für den aktuellen Thread ab. |
|
Ruft die Adresse des Basisspeichers für das angegebene Bild ab. |
|
Ruft einen Bezeichner für die Art von Befehlssatz ab, die der Zielprozess verwendet. |
|
Ruft die Größe (in Byte) eines Zeigers auf das aktuelle Ziel ab. |
|
Ruft einen Zeiger auf den Kontext des Threads mit dem angegebenen Bezeichner ab. |
|
Ruft am angegebenen Index einen Wert im lokalen Threadspeicher (TLS) für den angegebenen Thread ab. |
|
Liest Daten aus der angegebenen Adresse des virtuellen Arbeitsspeichers in den angegebenen Puffer. |
|
Wird von den Datenzugriffsdiensten der Common Language Runtime (CLR) aufgerufen, um einen Vorgang anzufordern, wie durch die Implementierung definiert. |
|
Legt den aktuellen Kontext des angegebenen Threads im Zielprozess fest. |
|
Legt einen Wert im lokalen Threadspeicher (TLS) des angegebenen Threads im Zielprozess fest. |
|
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