Freigeben über


Marshal Klasse

Definition

Stellt eine Sammlung von Methoden zum Zuweisen von nicht verwaltetem Arbeitsspeicher, Kopieren nicht verwalteter Speicherblöcke und Konvertieren von verwalteten In nicht verwalteten Typen sowie andere verschiedene Methoden bereit, die bei der Interaktion mit nicht verwaltetem Code verwendet werden.

public ref class Marshal abstract sealed
public ref class Marshal sealed
public static class Marshal
public sealed class Marshal
type Marshal = class
Public Class Marshal
Public NotInheritable Class Marshal
Vererbung
Marshal

Beispiele

Das folgende Beispiel zeigt, wie verschiedene Methoden verwendet werden, die von der Marshal Klasse definiert sind.

using namespace System;
using namespace System::Runtime::InteropServices;

public value struct Point
{
public:
    property int X;
    property int Y;
};
extern bool CloseHandle(IntPtr h);

int main()
{
    // Demonstrate the use of public static fields of the Marshal
    // class.
    Console::WriteLine(
        "SystemDefaultCharSize={0},SystemMaxDBCSCharSize={1}",
        Marshal::SystemDefaultCharSize,
        Marshal::SystemMaxDBCSCharSize);

    // Demonstrate how to call GlobalAlloc and
    // GlobalFree using the Marshal class.
    IntPtr hglobal = Marshal::AllocHGlobal(100);
    Marshal::FreeHGlobal(hglobal);

    // Demonstrate how to use the Marshal class to get the Win32
    // error code when a Win32 method fails.
    bool isCloseHandleSuccess = CloseHandle(IntPtr(-1));
    if (!isCloseHandleSuccess)
    {
        Console::WriteLine(
            "CloseHandle call failed with an error code of: {0}",
            Marshal::GetLastWin32Error());
    }
};

// This is a platform invoke prototype. SetLastError is true,
// which allows the GetLastWin32Error method of the Marshal class
// to work correctly.
[DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
extern bool CloseHandle(IntPtr h);

// This code produces the following output.
//
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// CloseHandle call failed with an error code of: 6
using System;
using System.Text;
using System.Runtime.InteropServices;

public struct Point
{
    public Int32 x, y;
}

public sealed class App
{
    static void Main()
    {
        // Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}",
            Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize);

        // Demonstrate how to call GlobalAlloc and
        // GlobalFree using the Marshal class.
        IntPtr hglobal = Marshal.AllocHGlobal(100);
        Marshal.FreeHGlobal(hglobal);

        // Demonstrate how to use the Marshal class to get the Win32 error
        // code when a Win32 method fails.
        Boolean f = CloseHandle(new IntPtr(-1));
        if (!f)
        {
            Console.WriteLine("CloseHandle call failed with an error code of: {0}",
                Marshal.GetLastWin32Error());
        }
    }

    // This is a platform invoke prototype. SetLastError is true, which allows
    // the GetLastWin32Error method of the Marshal class to work correctly.
    [DllImport("Kernel32", ExactSpelling = true, SetLastError = true)]
    static extern Boolean CloseHandle(IntPtr h);
}

// This code produces the following output.
//
// SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
// CloseHandle call failed with an error code of: 6
Imports System.Text
Imports System.Runtime.InteropServices
Imports System.Security.Permissions

Public Structure Point
    Public x, y As Int32
End Structure

Public NotInheritable Class App

    <SecurityPermission(SecurityAction.LinkDemand, Unrestricted:=True)> _
    Shared Sub Main()
        ' Demonstrate the use of public static fields of the Marshal class.
        Console.WriteLine("SystemDefaultCharSize={0}, SystemMaxDBCSCharSize={1}", Marshal.SystemDefaultCharSize, Marshal.SystemMaxDBCSCharSize)

        ' Demonstrate how to call GlobalAlloc and
        ' GlobalFree using the Marshal class.
        Dim hglobal As IntPtr = Marshal.AllocHGlobal(100)
        Marshal.FreeHGlobal(hglobal)

        ' Demonstrate how to use the Marshal class to get the Win32 error
        ' code when a Win32 method fails.
        Dim f As [Boolean] = CloseHandle(New IntPtr(-1))
        If Not f Then
            Console.WriteLine("CloseHandle call failed with an error code of: {0}", Marshal.GetLastWin32Error())
        End If
    End Sub

    ' This is a platform invoke prototype. SetLastError is true, which allows
    ' the GetLastWin32Error method of the Marshal class to work correctly.
    <DllImport("Kernel32", ExactSpelling:=True, SetLastError:=True)> _
    Shared Function CloseHandle(ByVal h As IntPtr) As [Boolean]

    End Function
End Class

' This code produces the following output.
'
' SystemDefaultCharSize=2, SystemMaxDBCSCharSize=1
' CloseHandle call failed with an error code of: 6

Hinweise

Die static für die Klasse definierten Methoden sind für die Marshal Arbeit mit nicht verwalteten Code unerlässlich. Die meisten in dieser Klasse definierten Methoden werden in der Regel von Entwicklern verwendet, die eine Brücke zwischen den verwalteten und nicht verwalteten Programmiermodellen bereitstellen möchten. Die Methode kopiert z StringToHGlobalAnsi . B. ANSI-Zeichen aus einer angegebenen Zeichenfolge (im verwalteten Heap) in einen Puffer im nicht verwalteten Heap. Außerdem wird der Zielhap der richtigen Größe zugewiesen.

Die Common Language Runtime bietet spezifische Marshaling-Funktionen. Ausführliche Informationen zum Marshallverhalten finden Sie unter Interop Marshaling.

Die Read Methoden Write und Methoden in der Marshal Klasse unterstützen sowohl den ausgerichteten als auch den nicht ausgerichteten Zugriff.

Felder

Name Beschreibung
SystemDefaultCharSize

Stellt die Standardzeichengröße im System dar; Der Standardwert ist 2 für Unicode-Systeme und 1 für ANSI-Systeme. Dieses Feld ist schreibgeschützt.

SystemMaxDBCSCharSize

Stellt die maximale Größe einer DbCS-Größe (Double Byte Character Set) in Bytes für das aktuelle Betriebssystem dar. Dieses Feld ist schreibgeschützt.

Methoden

Name Beschreibung
AddRef(IntPtr)

Erhöht die Referenzanzahl auf der angegebenen Schnittstelle.

AllocCoTaskMem(Int32)

Weist einen Speicherblock der angegebenen Größe aus dem COM-Aufgabenspeicher-Allocator zu.

AllocHGlobal(Int32)

Ordnet Speicher aus dem nicht verwalteten Speicher des Prozesses mithilfe der angegebenen Anzahl von Bytes zu.

AllocHGlobal(IntPtr)

Weist Speicher aus dem nicht verwalteten Speicher des Prozesses zu, indem der Zeiger auf die angegebene Anzahl von Bytes verwendet wird.

AreComObjectsAvailableForCleanup()

Gibt an, ob aufrufbare Runtime-Wrapper (RCWs) aus einem beliebigen Kontext zur Bereinigung verfügbar sind.

BindToMoniker(String)

Ruft einen Schnittstellenzeiger ab, der durch den angegebenen Moniker identifiziert wird.

ChangeWrapperHandleStrength(Object, Boolean)

Ändert die Stärke des COM Callable Wrapper (CCW) -Handles eines Objekts.

CleanupUnusedObjectsInCurrentContext()

Benachrichtigt die Laufzeit, um alle runtime callable Wrapper (RCWs) zu bereinigen , die im aktuellen Kontext zugeordnet sind.

Copy(Byte[], Int32, IntPtr, Int32)

Kopiert Daten aus einem eindimensionalen, verwalteten 8-Bit-Ganzzahlarray in einen nicht verwalteten Speicherzeiger.

Copy(Char[], Int32, IntPtr, Int32)

Kopiert Daten aus einem eindimensionalen verwalteten Zeichenarray in einen nicht verwalteten Speicherzeiger.

Copy(Double[], Int32, IntPtr, Int32)

Kopiert Daten aus einem eindimensionalen, verwalteten Gleitkommazahlenarray mit doppelter Genauigkeit in einen nicht verwalteten Speicherzeiger.

Copy(Int16[], Int32, IntPtr, Int32)

Kopiert Daten aus einem eindimensionalen, verwalteten 16-Bit-Ganzzahlarray in einen nicht verwalteten Speicherzeiger.

Copy(Int32[], Int32, IntPtr, Int32)

Kopiert Daten aus einem eindimensionalen, verwalteten 32-Bit-Ganzzahlarray in einen nicht verwalteten Speicherzeiger.

Copy(Int64[], Int32, IntPtr, Int32)

Kopiert Daten aus einem eindimensionalen, verwalteten 64-Bit-Ganzzahlarray in einen nicht verwalteten Speicherzeiger.

Copy(IntPtr, Byte[], Int32, Int32)

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes 8-Bit-Ganzzahlarray ohne Vorzeichen.

Copy(IntPtr, Char[], Int32, Int32)

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes Zeichenarray.

Copy(IntPtr, Double[], Int32, Int32)

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes Gleitkommazahlenarray mit doppelter Genauigkeit.

Copy(IntPtr, Int16[], Int32, Int32)

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes 16-Bit-Ganzzahlarray mit Vorzeichen.

Copy(IntPtr, Int32[], Int32, Int32)

Kopiert Daten von einem nicht verwalteten Speicherzeiger in ein verwaltetes 32-Bit-Ganzzahlarray.

Copy(IntPtr, Int64[], Int32, Int32)

Kopiert Daten von einem nicht verwalteten Speicherzeiger in ein verwaltetes 64-Bit-Ganzzahlarray.

Copy(IntPtr, IntPtr[], Int32, Int32)

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes IntPtr Array.

Copy(IntPtr, Single[], Int32, Int32)

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes Gleitkommazahlenarray mit einfacher Genauigkeit.

Copy(IntPtr[], Int32, IntPtr, Int32)

Kopiert Daten aus einem eindimensionalen verwalteten Array in einen nicht verwalteten IntPtr Speicherzeiger.

Copy(Single[], Int32, IntPtr, Int32)

Kopiert Daten aus einem eindimensionalen, verwalteten Gleitkommazahlenarray mit einfacher Genauigkeit in einen nicht verwalteten Speicherzeiger.

CreateAggregatedObject(IntPtr, Object)
Veraltet.

Aggregiert ein verwaltetes Objekt mit dem angegebenen COM-Objekt.

CreateAggregatedObject<T>(IntPtr, T)

Aggregiert ein verwaltetes Objekt des angegebenen Typs mit dem angegebenen COM-Objekt.

CreateWrapperOfType(Object, Type)
Veraltet.

Umschließt das angegebene COM-Objekt in einem Objekt des angegebenen Typs.

CreateWrapperOfType<T,TWrapper>(T)

Umschließt das angegebene COM-Objekt in einem Objekt des angegebenen Typs.

DestroyStructure(IntPtr, Type)
Veraltet.

Gibt alle Unterstrukturen frei, auf die der angegebene nicht verwaltete Speicherblock verweist.

DestroyStructure<T>(IntPtr)

Gibt alle Unterstrukturen eines angegebenen Typs frei, auf die der angegebene nicht verwaltete Speicherblock verweist.

FinalReleaseComObject(Object)

Gibt alle Verweise auf einen Runtime Callable Wrapper (RCW) frei, indem die Referenzanzahl auf 0 festgelegt wird.

FreeBSTR(IntPtr)

Gibt eine BSTR Verwendung der COM SysFreeString-Funktion frei.

FreeCoTaskMem(IntPtr)

Gibt einen Speicherblock frei, der vom nicht verwalteten COM-Aufgabenspeicher-Allocator zugewiesen wird.

FreeHGlobal(IntPtr)

Gibt Speicher frei, der zuvor aus dem nicht verwalteten Speicher des Prozesses zugewiesen wurde.

GenerateGuidForType(Type)

Gibt die GUID (Globally Unique Identifier) für den angegebenen Typ zurück oder generiert eine GUID mithilfe des Algorithmus, der vom Typbibliotheksexporteur (Tlbexp.exe) verwendet wird.

GenerateProgIdForType(Type)

Gibt einen programmgesteuerten Bezeichner (ProgID) für den angegebenen Typ zurück.

GetActiveObject(String)

Ruft eine ausgeführte Instanz des angegebenen Objekts aus der ausgeführten Objekttabelle (ROT) ab.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Veraltet.

Gibt einen Zeiger auf eine IUnknown-Schnittstelle zurück, die die angegebene Schnittstelle für das angegebene Objekt darstellt. Der Zugriff auf benutzerdefinierte Abfrageschnittstellen wird durch den angegebenen Anpassungsmodus gesteuert.

GetComInterfaceForObject(Object, Type)
Veraltet.

Gibt einen Zeiger auf eine IUnknown-Schnittstelle zurück, die die angegebene Schnittstelle für das angegebene Objekt darstellt. Der Zugriff auf benutzerdefinierte Abfrageschnittstellen ist standardmäßig aktiviert.

GetComInterfaceForObject<T,TInterface>(T)

Gibt einen Zeiger auf eine IUnknown-Schnittstelle zurück, die die angegebene Schnittstelle für ein Objekt des angegebenen Typs darstellt. Der Zugriff auf benutzerdefinierte Abfrageschnittstellen ist standardmäßig aktiviert.

GetComInterfaceForObjectInContext(Object, Type)

Gibt einen Schnittstellenzeiger zurück, der die angegebene Schnittstelle für ein Objekt darstellt, wenn sich der Aufrufer im gleichen Kontext wie dieses Objekt befindet.

GetComObjectData(Object, Object)

Ruft Daten ab, auf die vom angegebenen Schlüssel aus dem angegebenen COM-Objekt verwiesen wird.

GetComSlotForMethodInfo(MemberInfo)

Ruft den Virtuellen Funktionstabellenplatz (v-table oder VTBL) für einen angegebenen MemberInfo Typ ab, wenn dieser Typ für COM verfügbar gemacht wird.

GetDelegateForFunctionPointer(IntPtr, Type)
Veraltet.

Konvertiert einen nicht verwalteten Funktionszeiger in einen Delegaten.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Konvertiert einen nicht verwalteten Funktionszeiger in einen Delegaten eines angegebenen Typs.

GetEndComSlot(Type)

Ruft den letzten Steckplatz in der virtuellen Funktionstabelle (v-Tabelle oder VTBL) eines Typs ab, wenn com verfügbar gemacht wird.

GetExceptionCode()
Veraltet.

Ruft einen Code ab, der den Typ der aufgetretenen Ausnahme identifiziert.

GetExceptionForHR(Int32, Guid, IntPtr)

Stellt eine Sammlung von Methoden zum Zuweisen von nicht verwaltetem Arbeitsspeicher, Kopieren nicht verwalteter Speicherblöcke und Konvertieren von verwalteten In nicht verwalteten Typen sowie andere verschiedene Methoden bereit, die bei der Interaktion mit nicht verwaltetem Code verwendet werden.

GetExceptionForHR(Int32, IntPtr)

Konvertiert den angegebenen HRESULT-Fehlercode in ein entsprechendes Exception Objekt, wobei zusätzliche Fehlerinformationen in einer IErrorInfo-Schnittstelle für das Ausnahmeobjekt übergeben werden.

GetExceptionForHR(Int32)

Konvertiert den angegebenen HRESULT-Fehlercode in ein entsprechendes Exception Objekt.

GetExceptionPointers()

Ruft eine computerunabhängige Beschreibung einer Ausnahme und Informationen zum Status ab, der für den Thread vorhanden ist, wenn die Ausnahme aufgetreten ist.

GetFunctionPointerForDelegate(Delegate)
Veraltet.

Konvertiert einen Delegaten in einen Funktionszeiger, der aus nicht verwaltetem Code aufgerufen werden kann.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Konvertiert einen Delegaten eines angegebenen Typs in einen Funktionszeiger, der aus nicht verwaltetem Code aufgerufen werden kann.

GetHINSTANCE(Module)

Gibt das Instanzhandle (HINSTANCE) für das angegebene Modul zurück.

GetHRForException(Exception)

Konvertiert die angegebene Ausnahme in ein HRESULT.

GetHRForLastWin32Error()

Gibt das HRESULT zurück, das dem letzten Fehler entspricht, der von Win32-Code generiert wurde, der mit Marshal.

GetIDispatchForObject(Object)

Gibt eine IDispatch-Schnittstelle aus einem verwalteten Objekt zurück.

GetIDispatchForObjectInContext(Object)

Gibt einen IDispatch-Schnittstellenzeiger aus einem verwalteten Objekt zurück, wenn sich der Aufrufer im gleichen Kontext wie dieses Objekt befindet.

GetITypeInfoForType(Type)

Gibt eine ITypeInfo Schnittstelle aus einem verwalteten Typ zurück.

GetIUnknownForObject(Object)

Gibt eine IUnknown-Schnittstelle aus einem verwalteten Objekt zurück.

GetIUnknownForObjectInContext(Object)

Gibt eine IUnknown-Schnittstelle aus einem verwalteten Objekt zurück, wenn sich der Aufrufer im gleichen Kontext wie dieses Objekt befindet.

GetLastPInvokeError()

Abrufen des letzten Aufruffehlers der Plattform für den aktuellen Thread.

GetLastPInvokeErrorMessage()

Ruft die Systemfehlermeldung für den letzten PInvoke-Fehlercode ab.

GetLastSystemError()

Ruft den letzten Systemfehler im aktuellen Thread ab.

GetLastWin32Error()

Gibt den von der letzten nicht verwalteten Funktion zurückgegebenen Fehlercode zurück, der mithilfe des Plattformaufrufs aufgerufen wurde, der den SetLastError Flagsatz aufweist.

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)
Veraltet.

Ruft einen Zeiger auf eine laufzeitgenerierte Funktion ab, die einen Aufruf von verwaltetem zu nicht verwaltetem Code marshallt.

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Ruft ein MemberInfo Objekt für den angegebenen virtuellen Funktionstabellenplatz (v-table oder VTBL) ab.

GetNativeVariantForObject(Object, IntPtr)
Veraltet.

Konvertiert ein Objekt in einen COM VARIANT-Wert.

GetNativeVariantForObject<T>(T, IntPtr)
Veraltet.

Konvertiert ein Objekt eines angegebenen Typs in einen COM VARIANT-Wert.

GetObjectForIUnknown(IntPtr)

Gibt eine Instanz eines Typs zurück, die ein COM-Objekt durch einen Zeiger auf die IUnknown-Schnittstelle darstellt.

GetObjectForNativeVariant(IntPtr)
Veraltet.

Wandelt einen COM VARIANT-Wert in ein Objekt um.

GetObjectForNativeVariant<T>(IntPtr)
Veraltet.

Konvertiert eine COM VARIANT in ein Objekt eines angegebenen Typs.

GetObjectsForNativeVariants(IntPtr, Int32)
Veraltet.

Konvertiert ein Array von COM-VARIANTs in ein Array von Objekten.

GetObjectsForNativeVariants<T>(IntPtr, Int32)
Veraltet.

Konvertiert ein Array von COM-VARIANTs in ein Array eines angegebenen Typs.

GetPInvokeErrorMessage(Int32)

Ruft die Systemfehlermeldung für den angegebenen Fehlercode ab.

GetStartComSlot(Type)

Ruft den ersten Steckplatz in der virtuellen Funktionstabelle (v-table oder VTBL) ab, die benutzerdefinierte Methoden enthält.

GetThreadFromFiberCookie(Int32)
Veraltet.

Wandelt ein Fasercookies in die entsprechende Thread Instanz um.

GetTypedObjectForIUnknown(IntPtr, Type)

Gibt ein verwaltetes Objekt eines angegebenen Typs zurück, das ein COM-Objekt darstellt.

GetTypeForITypeInfo(IntPtr)

Konvertiert ein nicht verwaltetes ITypeInfo -Objekt in ein verwaltetes Type Objekt.

GetTypeFromCLSID(Guid)

Gibt den Typ zurück, der dem angegebenen Klassenbezeichner (CLSID) zugeordnet ist.

GetTypeInfoName(ITypeInfo)

Ruft den Namen des Typs ab, der durch ein ITypeInfo -Objekt dargestellt wird.

GetTypeInfoName(UCOMITypeInfo)
Veraltet.

Ruft den Namen des Typs ab, der durch ein ITypeInfo -Objekt dargestellt wird.

GetTypeLibGuid(ITypeLib)

Ruft die Bibliotheks-ID (LIBID) einer Typbibliothek ab.

GetTypeLibGuid(UCOMITypeLib)
Veraltet.

Ruft die Bibliotheks-ID (LIBID) einer Typbibliothek ab.

GetTypeLibGuidForAssembly(Assembly)

Ruft die Bibliotheks-ID (LIBID) ab, die einer Typbibliothek zugewiesen ist, als sie aus der angegebenen Assembly exportiert wurde.

GetTypeLibLcid(ITypeLib)

Ruft die LCID einer Typbibliothek ab.

GetTypeLibLcid(UCOMITypeLib)
Veraltet.

Ruft die LCID einer Typbibliothek ab.

GetTypeLibName(ITypeLib)

Ruft den Namen einer Typbibliothek ab.

GetTypeLibName(UCOMITypeLib)
Veraltet.

Ruft den Namen einer Typbibliothek ab.

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

Ruft die Versionsnummer einer Typbibliothek ab, die aus der angegebenen Assembly exportiert wird.

GetUniqueObjectForIUnknown(IntPtr)

Erstellt ein eindeutiges Runtime Callable Wrapper (RCW) -Objekt für eine bestimmte IUnknown-Schnittstelle .

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)
Veraltet.

Ruft einen Zeiger auf eine laufzeitgenerierte Funktion ab, die einen Aufruf von nicht verwaltetem code marshallt.

InitHandle(SafeHandle, IntPtr)

Initialisiert das zugrunde liegende Handle eines neu erstellten SafeHandle werts.

IsComObject(Object)

Gibt an, ob ein angegebenes Objekt ein COM-Objekt darstellt.

IsTypeVisibleFromCom(Type)

Gibt an, ob ein Typ für COM-Clients sichtbar ist.

NumParamBytes(MethodInfo)

Berechnet die Anzahl der Bytes im nicht verwalteten Speicher, die zum Speichern der Parameter für die angegebene Methode erforderlich sind.

OffsetOf(Type, String)
Veraltet.

Gibt den Feldoffset des nicht verwalteten Formulars der verwalteten Klasse zurück.

OffsetOf<T>(String)

Gibt den Feldoffset der nicht verwalteten Form einer angegebenen verwalteten Klasse zurück.

Prelink(MethodInfo)

Führt Einmalige Methodensetupaufgaben aus, ohne die Methode aufzurufen.

PrelinkAll(Type)

Führt eine Vorabverknüpfungsprüfung für alle Methoden einer Klasse aus.

PtrToStringAnsi(IntPtr, Int32)

Weist eine verwaltete StringZeichenfolge zu, kopiert eine angegebene Anzahl von Zeichen aus einer nicht verwalteten ANSI- oder UTF-8-Zeichenfolge in die Zeichenfolge, und erweitert jedes Zeichen auf UTF-16.

PtrToStringAnsi(IntPtr)

Kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten ANSI- oder UTF-8-Zeichenfolge in eine verwaltete StringZeichenfolge und erweitert jedes Zeichen auf UTF-16.

PtrToStringAuto(IntPtr, Int32)

Weist eine verwaltete String Zeichenfolge zu und kopiert die angegebene Anzahl von Zeichen aus einer Zeichenfolge, die im nicht verwalteten Speicher gespeichert ist.

PtrToStringAuto(IntPtr)

Weist ein verwaltetes String Zeichen zu und kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer Zeichenfolge, die im nicht verwalteten Speicher gespeichert ist.

PtrToStringBSTR(IntPtr)

Weist eine verwaltete binär Zeichenfolge (BSTR) zu, die im nicht verwalteten Speicher gespeichert ist.

PtrToStringUni(IntPtr, Int32)

Weist eine verwaltete String Zeichenfolge zu und kopiert eine bestimmte Anzahl von Zeichen aus einer nicht verwalteten Unicode-Zeichenfolge darin.

PtrToStringUni(IntPtr)

Weist ein verwaltetes String Zeichen zu und kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten Unicode-Zeichenfolge darin.

PtrToStringUTF8(IntPtr, Int32)

Weist eine verwaltete String Zeichenfolge zu und kopiert eine angegebene Anzahl von Bytes aus einer nicht verwalteten UTF8-Zeichenfolge darin.

PtrToStringUTF8(IntPtr)

Weist ein verwaltetes String Zeichen zu und kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten UTF-8-Zeichenfolge darin.

PtrToStructure(IntPtr, Object)
Veraltet.

Marshallen von Daten aus einem nicht verwalteten Speicherblock zu einem verwalteten Objekt.

PtrToStructure(IntPtr, Type)
Veraltet.

Marshallen von Daten aus einem nicht verwalteten Speicherblock an ein neu zugeordnetes verwaltetes Objekt des angegebenen Typs.

PtrToStructure<T>(IntPtr, T)

Marshallen von Daten aus einem nicht verwalteten Speicherblock in ein verwaltetes Objekt des angegebenen Typs.

PtrToStructure<T>(IntPtr)

Marshallt Daten aus einem nicht verwalteten Speicherblock in ein neu zugeordnetes verwaltetes Objekt des Typs, der durch einen generischen Typparameter angegeben wird.

QueryInterface(IntPtr, Guid, IntPtr)

Fordert einen Zeiger auf eine angegebene Schnittstelle von einem COM-Objekt an.

ReadByte(IntPtr, Int32)

Liest ein einzelnes Byte bei einem bestimmten Offset (oder Index) aus nicht verwaltetem Speicher.

ReadByte(IntPtr)

Liest ein einzelnes Byte aus nicht verwaltetem Speicher.

ReadByte(Object, Int32)
Veraltet.

Liest ein einzelnes Byte bei einem bestimmten Offset (oder Index) aus nicht verwaltetem Speicher.

ReadInt16(IntPtr, Int32)

Liest eine 16-Bit-Ganzzahl mit Vorzeichen bei einem bestimmten Offset aus nicht verwaltetem Speicher.

ReadInt16(IntPtr)

Liest eine 16-Bit-ganzzahlige Vorzeichen aus nicht verwaltetem Arbeitsspeicher.

ReadInt16(Object, Int32)
Veraltet.

Liest eine 16-Bit-Ganzzahl mit Vorzeichen bei einem bestimmten Offset aus nicht verwaltetem Speicher.

ReadInt32(IntPtr, Int32)

Liest eine 32-Bit-Ganzzahl mit Vorzeichen bei einem bestimmten Offset aus nicht verwaltetem Arbeitsspeicher.

ReadInt32(IntPtr)

Liest eine 32-Bit-Ganzzahl mit Vorzeichen aus nicht verwaltetem Speicher.

ReadInt32(Object, Int32)
Veraltet.

Liest eine 32-Bit-Ganzzahl mit Vorzeichen bei einem bestimmten Offset aus nicht verwaltetem Arbeitsspeicher.

ReadInt64(IntPtr, Int32)

Liest eine 64-Bit-Ganzzahl mit Vorzeichen bei einem bestimmten Offset aus nicht verwaltetem Speicher.

ReadInt64(IntPtr)

Liest eine 64-Bit-ganzzahlige Vorzeichen aus nicht verwaltetem Speicher.

ReadInt64(Object, Int32)
Veraltet.

Liest eine 64-Bit-Ganzzahl mit Vorzeichen bei einem bestimmten Offset aus nicht verwaltetem Speicher.

ReadIntPtr(IntPtr, Int32)

Liest eine prozessoreigene ganzzahlige Zahl in einem bestimmten Offset aus nicht verwaltetem Speicher.

ReadIntPtr(IntPtr)

Liest eine prozessoreigene ganzzahlige Zahl aus nicht verwaltetem Arbeitsspeicher.

ReadIntPtr(Object, Int32)
Veraltet.

Liest eine prozessoreigene ganzzahlige Zahl aus nicht verwaltetem Arbeitsspeicher.

ReAllocCoTaskMem(IntPtr, Int32)

Ändert die Größe eines Speicherblocks, der zuvor mit AllocCoTaskMem(Int32)zugeordnet wurde.

ReAllocHGlobal(IntPtr, IntPtr)

Ändert die Größe eines Speicherblocks, der zuvor mit AllocHGlobal(IntPtr)zugeordnet wurde.

Release(IntPtr)

Erhöht die Referenzanzahl auf der angegebenen Schnittstelle.

ReleaseComObject(Object)

Erhöht die Referenzanzahl des Runtime Callable Wrapper (RCW), der dem angegebenen COM-Objekt zugeordnet ist.

ReleaseThreadCache()
Veraltet.

Gibt den Threadcache frei.

SecureStringToBSTR(SecureString)

Weist eine nicht verwaltete binäre Zeichenfolge (BSTR) zu und kopiert den Inhalt eines verwalteten SecureString Objekts in die Zeichenfolge.

SecureStringToCoTaskMemAnsi(SecureString)

Kopiert den Inhalt eines verwalteten Objekts in einen Speicherblock, der dem nicht verwalteten SecureString COM-Aufgabenverteiler zugeordnet ist.

SecureStringToCoTaskMemUnicode(SecureString)

Kopiert den Inhalt eines verwalteten Objekts in einen Speicherblock, der dem nicht verwalteten SecureString COM-Aufgabenverteiler zugeordnet ist.

SecureStringToGlobalAllocAnsi(SecureString)

Kopiert den Inhalt eines verwalteten SecureString Speichers in nicht verwalteten Speicher, und wandelt beim Kopieren in das ANSI-Format um.

SecureStringToGlobalAllocUnicode(SecureString)

Kopiert den Inhalt eines verwalteten SecureString Objekts in nicht verwalteten Speicher.

SetComObjectData(Object, Object, Object)

Legt Daten fest, auf die vom angegebenen Schlüssel im angegebenen COM-Objekt verwiesen wird.

SetLastPInvokeError(Int32)

Legt den letzten Aufruffehler der Plattform für den aktuellen Thread fest.

SetLastSystemError(Int32)

Legt den letzten Systemfehler im aktuellen Thread fest.

SizeOf(Object)
Veraltet.

Gibt die nicht verwaltete Größe eines Objekts in Bytes zurück.

SizeOf(Type)
Veraltet.

Gibt die Größe eines nicht verwalteten Typs in Byte zurück.

SizeOf<T>()

Gibt die Größe eines nicht verwalteten Typs in Byte zurück.

SizeOf<T>(T)

Gibt die nicht verwaltete Größe eines Objekts eines angegebenen Typs in Byte zurück.

StringToBSTR(String)

Weist einen BSTR zu und kopiert den Inhalt eines verwalteten String Elements.

StringToCoTaskMemAnsi(String)

Kopiert den Inhalt eines verwalteten String Speichers in einen Speicherblock, der dem nicht verwalteten COM-Aufgabenverteiler zugeordnet ist.

StringToCoTaskMemAuto(String)

Kopiert den Inhalt eines verwalteten String Speichers in einen Speicherblock, der dem nicht verwalteten COM-Aufgabenverteiler zugeordnet ist.

StringToCoTaskMemUni(String)

Kopiert den Inhalt eines verwalteten String Speichers in einen Speicherblock, der dem nicht verwalteten COM-Aufgabenverteiler zugeordnet ist.

StringToCoTaskMemUTF8(String)

Kopiert den Inhalt eines verwalteten String Speichers in einen Speicherblock, der dem nicht verwalteten COM-Aufgabenverteiler zugeordnet ist.

StringToHGlobalAnsi(String)

Kopiert den Inhalt eines verwalteten String Speichers in nicht verwalteten Speicher, und wandelt beim Kopieren in das ANSI-Format um.

StringToHGlobalAuto(String)

Kopiert den Inhalt eines verwalteten String Speichers in nicht verwalteten Speicher, wenn erforderlich, in EINSI-Format konvertiert.

StringToHGlobalUni(String)

Kopiert den Inhalt eines verwalteten String Speichers in nicht verwalteten Speicher.

StructureToPtr(Object, IntPtr, Boolean)
Veraltet.

Marshallen von Daten aus einem verwalteten Objekt zu einem nicht verwalteten Speicherblock.

StructureToPtr<T>(T, IntPtr, Boolean)

Marshallen von Daten aus einem verwalteten Objekt eines angegebenen Typs zu einem nicht verwalteten Speicherblock.

ThrowExceptionForHR(Int32, Guid, IntPtr)

Stellt eine Sammlung von Methoden zum Zuweisen von nicht verwaltetem Arbeitsspeicher, Kopieren nicht verwalteter Speicherblöcke und Konvertieren von verwalteten In nicht verwalteten Typen sowie andere verschiedene Methoden bereit, die bei der Interaktion mit nicht verwaltetem Code verwendet werden.

ThrowExceptionForHR(Int32, IntPtr)

Löst eine Ausnahme mit einem bestimmten Fehler-HRESULT basierend auf der angegebenen IErrorInfo-Schnittstelle aus.

ThrowExceptionForHR(Int32)

Löst eine Ausnahme mit einem bestimmten HRESULT-Fehlerwert aus.

UnsafeAddrOfPinnedArrayElement(Array, Int32)
Veraltet.

Ruft die Adresse des Elements am angegebenen Index innerhalb des angegebenen Arrays ab.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

Ruft die Adresse des Elements am angegebenen Index in einem Array eines angegebenen Typs ab.

WriteByte(IntPtr, Byte)

Schreibt einen einzelnen Bytewert in nicht verwalteten Arbeitsspeicher.

WriteByte(IntPtr, Int32, Byte)

Schreibt einen einzelnen Bytewert in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteByte(Object, Int32, Byte)
Veraltet.

Schreibt einen einzelnen Bytewert in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteInt16(IntPtr, Char)

Schreibt ein Zeichen als ganzzahliger 16-Bit-Wert in nicht verwalteten Arbeitsspeicher.

WriteInt16(IntPtr, Int16)

Schreibt einen ganzzahligen 16-Bit-Wert in nicht verwalteten Arbeitsspeicher.

WriteInt16(IntPtr, Int32, Char)

Schreibt einen ganzzahligen 16-Bit-Ganzzahlwert in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteInt16(IntPtr, Int32, Int16)

Schreibt einen ganzzahligen 16-Bit-Wert mit Vorzeichen in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteInt16(Object, Int32, Char)
Veraltet.

Schreibt einen ganzzahligen 16-Bit-Ganzzahlwert in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteInt16(Object, Int32, Int16)
Veraltet.

Schreibt einen ganzzahligen 16-Bit-Ganzzahlwert in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteInt32(IntPtr, Int32, Int32)

Schreibt einen ganzzahligen 32-Bit-Wert mit Vorzeichen in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteInt32(IntPtr, Int32)

Schreibt einen ganzzahligen 32-Bit-Wert mit Vorzeichen in nicht verwalteten Arbeitsspeicher.

WriteInt32(Object, Int32, Int32)
Veraltet.

Schreibt einen ganzzahligen 32-Bit-Wert mit Vorzeichen in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteInt64(IntPtr, Int32, Int64)

Schreibt einen ganzzahligen 64-Bit-Wert mit Vorzeichen in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteInt64(IntPtr, Int64)

Schreibt einen ganzzahligen 64-Bit-Wert mit Vorzeichen in nicht verwalteten Arbeitsspeicher.

WriteInt64(Object, Int32, Int64)
Veraltet.

Schreibt einen ganzzahligen 64-Bit-Wert mit Vorzeichen in nicht verwalteten Arbeitsspeicher bei einem angegebenen Offset.

WriteIntPtr(IntPtr, Int32, IntPtr)

Schreibt einen ganzzahligen Wert der prozessoreigenen Größe in nicht verwalteten Speicher in einem angegebenen Offset.

WriteIntPtr(IntPtr, IntPtr)

Schreibt einen ganzzahligen Wert der prozessoreigenen Größe in nicht verwalteten Arbeitsspeicher.

WriteIntPtr(Object, Int32, IntPtr)
Veraltet.

Schreibt einen ganzzahligen Wert der prozessoreigenen Größe in nicht verwalteten Arbeitsspeicher.

ZeroFreeBSTR(IntPtr)

Gibt einen BSTR-Zeiger frei, der mit der SecureStringToBSTR(SecureString) Methode zugewiesen wurde.

ZeroFreeCoTaskMemAnsi(IntPtr)

Gibt einen nicht verwalteten Zeichenfolgenzeiger frei, der mithilfe der SecureStringToCoTaskMemAnsi(SecureString) Methode zugewiesen wurde.

ZeroFreeCoTaskMemUnicode(IntPtr)

Gibt einen nicht verwalteten Zeichenfolgenzeiger frei, der mithilfe der SecureStringToCoTaskMemUnicode(SecureString) Methode zugewiesen wurde.

ZeroFreeCoTaskMemUTF8(IntPtr)

Gibt einen nicht verwalteten Zeichenfolgenzeiger frei, der mithilfe der StringToCoTaskMemUTF8(String) Methode zugewiesen wurde.

ZeroFreeGlobalAllocAnsi(IntPtr)

Gibt einen nicht verwalteten Zeichenfolgenzeiger frei, der mithilfe der SecureStringToGlobalAllocAnsi(SecureString) Methode zugewiesen wurde.

ZeroFreeGlobalAllocUnicode(IntPtr)

Gibt einen nicht verwalteten Zeichenfolgenzeiger frei, der mithilfe der SecureStringToGlobalAllocUnicode(SecureString) Methode zugewiesen wurde.

Gilt für: