Freigeben über


Marshal-Klasse

 

Veröffentlicht: Oktober 2016

Bietet eine Auflistung von Methoden zum Belegen von nicht verwaltetem Speicher, zum Kopieren von nicht verwalteten Speicherblöcken und zum Konvertieren von verwalteten in nicht verwaltete Typen sowie sonstige Methoden, die bei der Interaktion mit nicht verwaltetem Code verwendet werden.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

Vererbungshierarchie

System.Object
  System.Runtime.InteropServices.Marshal

Syntax

public static class Marshal
public ref class Marshal abstract sealed 
[<AbstractClass>]
[<Sealed>]
type Marshal = class end
Public NotInheritable Class Marshal

Methoden

Name Beschreibung
System_CAPS_pubmethodSystem_CAPS_static AddRef(IntPtr)

Inkrementiert den Verweiszähler für die angegebene Schnittstelle.

System_CAPS_pubmethodSystem_CAPS_static AllocCoTaskMem(Int32)

Belegt einen Speicherblock der angegebenen Größe aus der Speicherbelegungsfunktion für COM-Aufgaben.

System_CAPS_pubmethodSystem_CAPS_static AllocHGlobal(Int32)

Reserviert Speicher aus dem nicht verwalteten Arbeitsspeicher des Prozesses mit der angegebenen Anzahl von Bytes.

System_CAPS_pubmethodSystem_CAPS_static AllocHGlobal(IntPtr)

Reserviert Speicher aus dem nicht verwalteten Arbeitsspeicher des Prozesses mithilfe des Zeigers auf die angegebene Anzahl von Bytes.

System_CAPS_pubmethodSystem_CAPS_static AreComObjectsAvailableForCleanup()

Gibt an, ob Runtime Callable Wrappers (RCWs) aus einem beliebigen Kontext zur Bereinigung verfügbar sind.

System_CAPS_pubmethodSystem_CAPS_static BindToMoniker(String)

Ruft einen vom angegebenen Moniker bezeichneten Schnittstellenzeiger ab.

System_CAPS_pubmethodSystem_CAPS_static ChangeWrapperHandleStrength(Object, Boolean)

Ändert die Stärke des CCW-Handles (COM Callable Wrapper) für ein Objekt.

System_CAPS_pubmethodSystem_CAPS_static CleanupUnusedObjectsInCurrentContext()

Benachrichtigt die Laufzeit, dass alle im aktuellen Kontext reservierten Runtime Callable Wrapper (RCWs) bereinigt werden sollen.

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

Kopiert Daten aus einem eindimensionalen, verwalteten Array von 8-Bit-Ganzzahlen ohne Vorzeichen in einen nicht verwalteten Speicherzeiger.

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

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

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

Kopiert Daten aus einem eindimensionalen, verwalteten Array von Gleitkommazahlen mit doppelter Genauigkeit in einen nicht verwalteten Speicherzeiger.

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

Kopiert Daten aus einem eindimensionalen, verwalteten Array von 16-Bit-Ganzzahlen mit Vorzeichen in einen nicht verwalteten Speicherzeiger.

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

Kopiert Daten aus einem eindimensionalen, verwalteten Array von 32-Bit-Ganzzahlen mit Vorzeichen in einen nicht verwalteten Speicherzeiger.

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

Kopiert Daten aus einem eindimensionalen, verwalteten Array von 64-Bit-Ganzzahlen mit Vorzeichen in einen nicht verwalteten Speicherzeiger.

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

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

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

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

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

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes Array von Gleitkommazahlen mit doppelter Genauigkeit.

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

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

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

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes Array von 32-Bit-Ganzzahlen mit Vorzeichen.

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

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes Array von 64-Bit-Ganzzahlen mit Vorzeichen.

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

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

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

Kopiert Daten aus einem nicht verwalteten Speicherzeiger in ein verwaltetes Array von Gleitkommazahlen mit einfacher Genauigkeit.

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

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

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

Kopiert Daten aus einem eindimensionalen, verwalteten Array von Gleitkommazahlen mit einfacher Genauigkeit in einen nicht verwalteten Speicherzeiger.

System_CAPS_pubmethodSystem_CAPS_static CreateAggregatedObject(IntPtr, Object)

Verbindet ein verwaltetes Objekt mit dem angegebenen COM-Objekt.

System_CAPS_pubmethodSystem_CAPS_static CreateAggregatedObject<T>(IntPtr, T)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static CreateWrapperOfType(Object, Type)

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

System_CAPS_pubmethodSystem_CAPS_static CreateWrapperOfType<T, TWrapper>(T)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static DestroyStructure(IntPtr, Type)

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

System_CAPS_pubmethodSystem_CAPS_static DestroyStructure<T>(IntPtr)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static FinalReleaseComObject(Object)

Gibt alle Verweise auf einen Runtime Callable Wrapper (RCW) durch Festlegen des Verweiszählers auf 0 frei.

System_CAPS_pubmethodSystem_CAPS_static FreeBSTR(IntPtr)

Frei eine BSTR mithilfe der COM SysFreeString Funktion.

System_CAPS_pubmethodSystem_CAPS_static FreeCoTaskMem(IntPtr)

Gibt einen Speicherblock frei, der von der nicht verwalteten Speicherbelegungsfunktion für COM-Aufgaben belegt wurde.

System_CAPS_pubmethodSystem_CAPS_static FreeHGlobal(IntPtr)

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

System_CAPS_pubmethodSystem_CAPS_static GenerateGuidForType(Type)

Gibt die GUID (Globally Unique Identifier, globaler eindeutiger Bezeichner) für den angegebenen Typ zurück oder generiert eine GUID mithilfe des vom Type Library Exporter-Tool (TlbExp.exe) verwendeten Algorithmus.

System_CAPS_pubmethodSystem_CAPS_static GenerateProgIdForType(Type)

Gibt eine ProgID (Programmbezeichner) für den angegebenen Typ zurück.

System_CAPS_pubmethodSystem_CAPS_static GetActiveObject(String)

Ruft eine ausgeführte Instanz des angegebenen Objekts aus der ROT (Running Object Table) ab.

System_CAPS_pubmethodSystem_CAPS_static GetComInterfaceForObject(Object, Type)

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

System_CAPS_pubmethodSystem_CAPS_static GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)

Gibt einen Zeiger auf eine IUnknown -Schnittstelle, die die angegebene Schnittstelle für das angegebene Objekt darstellt. Der benutzerdefinierte Zugriff auf die Abfrageschnittstelle wird vom angegebenen Anpassungsmodus gesteuert.

System_CAPS_pubmethodSystem_CAPS_static GetComInterfaceForObject<T, TInterface>(T)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static GetComInterfaceForObjectInContext(Object, Type)

Gibt einen Schnittstellenzeiger zurück, der die angegebene Schnittstelle für ein Objekt zurückgibt, wenn sich der Aufrufer in demselben Kontext wie das betreffende Objekt befindet.

System_CAPS_pubmethodSystem_CAPS_static GetComObjectData(Object, Object)

Ruft Daten ab, auf die durch den angegebenen Schlüssel im angegebenen COM-Objekt verwiesen wird.

System_CAPS_pubmethodSystem_CAPS_static GetComSlotForMethodInfo(MemberInfo)

Ruft den VTBL-Slot (virtuelle Funktionstabelle, Vtable) für einen angegebenen System.Reflection.MemberInfo-Typ ab, wenn dieser Typ für COM verfügbar gemacht wird.

System_CAPS_pubmethodSystem_CAPS_static GetDelegateForFunctionPointer(IntPtr, Type)

Konvertiert einen nicht verwalteten Funktionszeiger in einen Delegaten.

System_CAPS_pubmethodSystem_CAPS_static GetDelegateForFunctionPointer<TDelegate>(IntPtr)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static GetEndComSlot(Type)

Ruft den letzten Slot in der virtuellen Funktionstabelle (Vtable oder VTBL) eines Typs ab, wenn dieser für COM verfügbar gemacht wird.

System_CAPS_pubmethodSystem_CAPS_static GetExceptionCode()

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

System_CAPS_pubmethodSystem_CAPS_static GetExceptionForHR(Int32)

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

System_CAPS_pubmethodSystem_CAPS_static GetExceptionForHR(Int32, IntPtr)

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

System_CAPS_pubmethodSystem_CAPS_static GetExceptionPointers()

Ruft eine computerunabhängige Beschreibung einer Ausnahme und Informationen zu dem Zustand ab, der beim Auftreten der Ausnahme für den Thread vorlag.

System_CAPS_pubmethodSystem_CAPS_static GetFunctionPointerForDelegate(Delegate)

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

System_CAPS_pubmethodSystem_CAPS_static GetFunctionPointerForDelegate<TDelegate>(TDelegate)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static GetHINSTANCE(Module)

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

System_CAPS_pubmethodSystem_CAPS_static GetHRForException(Exception)

Konvertiert die angegebene Ausnahme in ein HRESULT.

System_CAPS_pubmethodSystem_CAPS_static GetHRForLastWin32Error()

Gibt das HRESULT für den letzten Fehler zurück, der durch einen mit Marshal ausgeführten Win32-Code ausgelöst wurde.

System_CAPS_pubmethodSystem_CAPS_static GetIDispatchForObject(Object)

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

System_CAPS_pubmethodSystem_CAPS_static GetIDispatchForObjectInContext(Object)

Gibt einen IDispatch-Schnittstellenzeiger aus einem verwalteten Objekt zurück, falls sich der Aufrufer in demselben Kontext wie das Objekt befindet.

System_CAPS_pubmethodSystem_CAPS_static GetITypeInfoForType(Type)

Gibt eine System.Runtime.InteropServices.ComTypes.ITypeInfo-Schnittstelle aus einem verwalteten Typ zurück.

System_CAPS_pubmethodSystem_CAPS_static GetIUnknownForObject(Object)

Gibt eine IUnknown -Schnittstelle aus einem verwalteten Objekt.

System_CAPS_pubmethodSystem_CAPS_static GetIUnknownForObjectInContext(Object)

Gibt eine IUnknown -Schnittstelle aus einem verwalteten Objekt, wenn der Aufrufer in demselben Kontext wie das Objekt befindet.

System_CAPS_pubmethodSystem_CAPS_static GetLastWin32Error()

Gibt den Fehlercode zurück, der durch die letzte nicht verwaltete Funktion zurückgegeben wurde, die mit einem Plattformaufruf aufgerufen wurde und bei der das DllImportAttribute.SetLastError-Flag festgelegt wurde.

System_CAPS_pubmethodSystem_CAPS_static GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)

Veraltet. Ruft einen Zeiger auf eine zur Laufzeit generierte Funktion ab, die einen Aufruf aus verwaltetem zu nicht verwaltetem Code marshallt.

System_CAPS_pubmethodSystem_CAPS_static GetMethodInfoForComSlot(Type, Int32, ComMemberType)

Ruft ein MemberInfo-Objekt für den angegebenen Slot in der virtuellen Funktionstabelle (Vtable oder VTBL) ab.

System_CAPS_pubmethodSystem_CAPS_static GetNativeVariantForObject(Object, IntPtr)

Konvertiert ein Objekt in einen COM-VARIANT.

System_CAPS_pubmethodSystem_CAPS_static GetNativeVariantForObject<T>(T, IntPtr)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

Konvertiert ein Objekt eines angegebenen Typs in eine COM VARIANTE.

System_CAPS_pubmethodSystem_CAPS_static GetObjectForIUnknown(IntPtr)

Gibt eine Instanz eines Typs, der durch einen Zeiger auf ein COM-Objekt stellt die IUnknown Schnittstelle.

System_CAPS_pubmethodSystem_CAPS_static GetObjectForNativeVariant(IntPtr)

Konvertiert einen COM-VARIANT in ein Objekt.

System_CAPS_pubmethodSystem_CAPS_static GetObjectForNativeVariant<T>(IntPtr)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

Konvertiert ein COM VARIANTE in ein Objekt eines angegebenen Typs .

System_CAPS_pubmethodSystem_CAPS_static GetObjectsForNativeVariants(IntPtr, Int32)

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

System_CAPS_pubmethodSystem_CAPS_static GetObjectsForNativeVariants<T>(IntPtr, Int32)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

Konvertiert ein Array mit COM-VARIANT in ein Array eines angegebenen Typs.

System_CAPS_pubmethodSystem_CAPS_static GetStartComSlot(Type)

Ruft den ersten Slot in der VTBL (Vtable oder virtuelle Funktionstabelle) ab, der benutzerdefinierte Methoden enthält.

System_CAPS_pubmethodSystem_CAPS_static GetThreadFromFiberCookie(Int32)

Veraltet. Konvertiert ein Fibercookie in die entsprechende System.Threading.Thread-Instanz.

System_CAPS_pubmethodSystem_CAPS_static GetTypedObjectForIUnknown(IntPtr, Type)

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

System_CAPS_pubmethodSystem_CAPS_static GetTypeForITypeInfo(IntPtr)

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

System_CAPS_pubmethodSystem_CAPS_static GetTypeFromCLSID(Guid)

Gibt den Typ zurück, dem die angegebene Klassen-ID (CLSID) zugeordnet ist.

System_CAPS_pubmethodSystem_CAPS_static GetTypeInfoName(ITypeInfo)

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

System_CAPS_pubmethodSystem_CAPS_static GetTypeInfoName(UCOMITypeInfo)

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

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibGuid(ITypeLib)

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

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibGuid(UCOMITypeLib)

Veraltet. Ruft die Bibliothek-ID (LIBID) einer Typbibliothek ab.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibGuidForAssembly(Assembly)

Ruft die Bibliothek-ID (LIBID) ab, die einer Typbibliothek beim Export aus der angegebenen Assembly zugewiesen wird.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibLcid(ITypeLib)

Ruft die LCID einer Typbibliothek ab.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibLcid(UCOMITypeLib)

Veraltet. Ruft die LCID einer Typbibliothek ab.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibName(ITypeLib)

Ruft den Namen einer Typbibliothek ab.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibName(UCOMITypeLib)

Veraltet. Ruft den Namen einer Typbibliothek ab.

System_CAPS_pubmethodSystem_CAPS_static GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

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

System_CAPS_pubmethodSystem_CAPS_static GetUniqueObjectForIUnknown(IntPtr)

Erstellt eine eindeutige Runtime Callable Wrapper -Objekt (RCW) für einen bestimmten IUnknown Schnittstelle.

System_CAPS_pubmethodSystem_CAPS_static GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)

Veraltet. Ruft einen Zeiger auf eine zur Laufzeit generierte Funktion ab, die einen Aufruf aus nicht verwaltetem zu verwaltetem Code marshallt.

System_CAPS_pubmethodSystem_CAPS_static IsComObject(Object)

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

System_CAPS_pubmethodSystem_CAPS_static IsTypeVisibleFromCom(Type)

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

System_CAPS_pubmethodSystem_CAPS_static NumParamBytes(MethodInfo)

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

System_CAPS_pubmethodSystem_CAPS_static OffsetOf(Type, String)

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

System_CAPS_pubmethodSystem_CAPS_static OffsetOf<T>(String)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static Prelink(MethodInfo)

Führt einmalige Aufgaben zur Methodeneinrichtung aus, ohne die Methode aufzurufen.

System_CAPS_pubmethodSystem_CAPS_static PrelinkAll(Type)

Führt eine Linkervorstufen-Prüfung für alle Methoden einer Klasse durch.

System_CAPS_pubmethodSystem_CAPS_static PtrToStringAnsi(IntPtr)

Kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten ANSI-Zeichenfolge in einen verwalteten String und erweitert die einzelnen ANSI-Zeichen zu UNICODE-Zeichen.

System_CAPS_pubmethodSystem_CAPS_static PtrToStringAnsi(IntPtr, Int32)

Reserviert einen verwalteten String, kopiert eine angegebene Anzahl von Zeichen aus einer nicht verwalteten ANSI-Zeichenfolge hinein und erweitert jedes ANSI-Zeichen zu einem Unicode-Zeichen.

System_CAPS_pubmethodSystem_CAPS_static PtrToStringAuto(IntPtr)

Reserviert einen verwalteten String und kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer Zeichenfolge hinein, die im nicht verwalteten Speicher gespeichert ist.

System_CAPS_pubmethodSystem_CAPS_static PtrToStringAuto(IntPtr, Int32)

Reserviert einen verwalteten String und kopiert die angegebene Anzahl von Zeichen aus einer in nicht verwaltetem Speicher gespeicherten Zeichenfolge hinein.

System_CAPS_pubmethodSystem_CAPS_static PtrToStringBSTR(IntPtr)

Reserviert einen verwalteten String und kopiert eine binary string (BSTR) im nicht verwalteten Speicher hinein.

System_CAPS_pubmethodSystem_CAPS_static PtrToStringUni(IntPtr)

Reserviert einen verwalteten String und kopiert alle Zeichen bis zum ersten NULL-Zeichen aus einer nicht verwalteten Unicode-Zeichenfolge hinein.

System_CAPS_pubmethodSystem_CAPS_static PtrToStringUni(IntPtr, Int32)

Reserviert einen verwalteten String und kopiert eine angegebene Anzahl von Zeichen aus einer nicht verwalteten Unicode-Zeichenfolge hinein.

System_CAPS_pubmethodSystem_CAPS_static PtrToStructure(IntPtr, Object)

Marshallt Daten aus einem nicht verwalteten Speicherblock zu einem verwalteten Objekt.

System_CAPS_pubmethodSystem_CAPS_static PtrToStructure(IntPtr, Type)

Marshallt Daten aus einem nicht verwalteten Speicherblock zu einem neu belegten, verwalteten Objekt des angegebenen Typs.

System_CAPS_pubmethodSystem_CAPS_static PtrToStructure<T>(IntPtr)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

Marshallt Daten aus einem nicht verwalteten Speicherblock zu einem neu belegten, verwalteten Objekt des von einem generischen Typparameter angegebenen Typs.

System_CAPS_pubmethodSystem_CAPS_static PtrToStructure<T>(IntPtr, T)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

Marshallt Daten aus einem nicht verwalteten Speicherblock zu einem verwalteten Objekt eines festgelegten Typs.

System_CAPS_pubmethodSystem_CAPS_static QueryInterface(IntPtr, Guid, IntPtr)

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

System_CAPS_pubmethodSystem_CAPS_static ReadByte(IntPtr)

Liest ein einzelnes Byte aus dem nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static ReadByte(IntPtr, Int32)

Liest ein einzelnes Byte an einem angegebenen Offset (oder Index) aus dem nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static ReadByte(Object, Int32)

Liest ein einzelnes Byte an einem angegebenen Offset (oder Index) aus dem nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static ReadInt16(IntPtr)

Liest eine 16-Bit-Ganzzahl mit Vorzeichen aus dem nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static ReadInt16(IntPtr, Int32)

Liest eine 16-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset aus dem nicht verwalteten Arbeitsspeicher.

System_CAPS_pubmethodSystem_CAPS_static ReadInt16(Object, Int32)

Liest eine 16-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset aus dem nicht verwalteten Arbeitsspeicher.

System_CAPS_pubmethodSystem_CAPS_static ReadInt32(IntPtr)

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

System_CAPS_pubmethodSystem_CAPS_static ReadInt32(IntPtr, Int32)

Liest eine 32-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset aus dem nicht verwalteten Arbeitsspeicher.

System_CAPS_pubmethodSystem_CAPS_static ReadInt32(Object, Int32)

Liest eine 32-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset aus dem nicht verwalteten Arbeitsspeicher.

System_CAPS_pubmethodSystem_CAPS_static ReadInt64(IntPtr)

Liest eine 64-Bit-Ganzzahl mit Vorzeichen aus dem nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static ReadInt64(IntPtr, Int32)

Liest eine 64-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset aus dem nicht verwalteten Arbeitsspeicher.

System_CAPS_pubmethodSystem_CAPS_static ReadInt64(Object, Int32)

Liest eine 64-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset aus dem nicht verwalteten Arbeitsspeicher.

System_CAPS_pubmethodSystem_CAPS_static ReadIntPtr(IntPtr)

Liest eine ganze Zahl von prozessoreigener Größe aus dem nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static ReadIntPtr(IntPtr, Int32)

Liest eine ganze Zahl von prozessoreigener Größe an einem angegebenen Offset aus dem nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static ReadIntPtr(Object, Int32)

Liest eine ganze Zahl von prozessoreigener Größe aus dem nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static ReAllocCoTaskMem(IntPtr, Int32)

Ändert die Größe eines bereits mit AllocCoTaskMem belegten Speicherblocks.

System_CAPS_pubmethodSystem_CAPS_static ReAllocHGlobal(IntPtr, IntPtr)

Ändert die Größe eines bereits mit AllocHGlobal belegten Speicherblocks.

System_CAPS_pubmethodSystem_CAPS_static Release(IntPtr)

Dekrementiert den Verweiszähler für die angegebene Schnittstelle.

System_CAPS_pubmethodSystem_CAPS_static ReleaseComObject(Object)

Dekrementiert den Verweiszähler des dem angegebenen COM-Objekt zugeordneten Runtime Callable Wrapper (RCW).

System_CAPS_pubmethodSystem_CAPS_static ReleaseThreadCache()

Veraltet. Gibt den Threadcache frei.

System_CAPS_pubmethodSystem_CAPS_static SecureStringToBSTR(SecureString)

Weist eine nicht verwaltete binary string (BSTR) und kopiert den Inhalt eines verwalteten SecureString in dieses Objekt.

System_CAPS_pubmethodSystem_CAPS_static SecureStringToCoTaskMemAnsi(SecureString)

Kopiert den Inhalt eines verwalteten SecureString-Objekts in einen Speicherblock, der von der nicht verwalteten Speicherbelegung für COM-Aufgaben reserviert wurde.

System_CAPS_pubmethodSystem_CAPS_static SecureStringToCoTaskMemUnicode(SecureString)

Kopiert den Inhalt eines verwalteten SecureString-Objekts in einen Speicherblock, der von der nicht verwalteten Speicherbelegung für COM-Aufgaben reserviert wurde.

System_CAPS_pubmethodSystem_CAPS_static SecureStringToGlobalAllocAnsi(SecureString)

Kopiert den Inhalt eines verwalteten SecureString in den nicht verwalteten Speicher und konvertiert ihn beim Kopieren in das ANSI-Format.

System_CAPS_pubmethodSystem_CAPS_static SecureStringToGlobalAllocUnicode(SecureString)

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

System_CAPS_pubmethodSystem_CAPS_static SetComObjectData(Object, Object, Object)

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

System_CAPS_pubmethodSystem_CAPS_static SizeOf(Object)

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

System_CAPS_pubmethodSystem_CAPS_static SizeOf(Type)

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

System_CAPS_pubmethodSystem_CAPS_static SizeOf<T>()

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static SizeOf<T>(T)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static StringToBSTR(String)

Ordnet eine BSTR und kopiert den Inhalt eines verwalteten String hinein.

System_CAPS_pubmethodSystem_CAPS_static StringToCoTaskMemAnsi(String)

Kopiert den Inhalt eines verwalteten String in einen Speicherblock, der von der nicht verwalteten Speicherbelegung für COM-Aufgaben reserviert wurde.

System_CAPS_pubmethodSystem_CAPS_static StringToCoTaskMemAuto(String)

Kopiert den Inhalt eines verwalteten String in einen Speicherblock, der von der nicht verwalteten Speicherbelegung für COM-Aufgaben reserviert wurde.

System_CAPS_pubmethodSystem_CAPS_static StringToCoTaskMemUni(String)

Kopiert den Inhalt eines verwalteten String in einen Speicherblock, der von der nicht verwalteten Speicherbelegung für COM-Aufgaben reserviert wurde.

System_CAPS_pubmethodSystem_CAPS_static StringToHGlobalAnsi(String)

Kopiert den Inhalt eines verwalteten String in den nicht verwalteten Speicher und konvertiert ihn beim Kopieren in das ANSI-Format.

System_CAPS_pubmethodSystem_CAPS_static StringToHGlobalAuto(String)

Kopiert den Inhalt eines verwalteten String in den nicht verwalteten Speicher und konvertiert ihn ggf. in das ANSI-Format.

System_CAPS_pubmethodSystem_CAPS_static StringToHGlobalUni(String)

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

System_CAPS_pubmethodSystem_CAPS_static StructureToPtr(Object, IntPtr, Boolean)

Marshallt Daten aus einem verwalteten Objekt zu einem nicht verwalteten Speicherblock.

System_CAPS_pubmethodSystem_CAPS_static StructureToPtr<T>(T, IntPtr, Boolean)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

Marshallt Daten aus einem verwalteten Objekt eines festgelegten Typs zu einem nicht verwalteten Speicherblock.

System_CAPS_pubmethodSystem_CAPS_static ThrowExceptionForHR(Int32)

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

System_CAPS_pubmethodSystem_CAPS_static ThrowExceptionForHR(Int32, IntPtr)

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

System_CAPS_pubmethodSystem_CAPS_static UnsafeAddrOfPinnedArrayElement(Array, Int32)

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

System_CAPS_pubmethodSystem_CAPS_static UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

[Wird nur in .NET Framework 4.5.1 und neueren Versionen unterstützt]

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

System_CAPS_pubmethodSystem_CAPS_static WriteByte(IntPtr, Byte)

Schreibt einen einzelnen Bytewert in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteByte(IntPtr, Int32, Byte)

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

System_CAPS_pubmethodSystem_CAPS_static WriteByte(Object, Int32, Byte)

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

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(IntPtr, Char)

Schreibt ein Zeichen als 16-Bit-Ganzzahl in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(IntPtr, Int16)

Schreibt eine 16-Bit-Ganzzahl in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(IntPtr, Int32, Char)

Schreibt den Wert einer 16-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(IntPtr, Int32, Int16)

Schreibt den Wert einer 16-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(Object, Int32, Char)

Schreibt den Wert einer 16-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt16(Object, Int32, Int16)

Schreibt den Wert einer 16-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt32(IntPtr, Int32)

Schreibt eine 32-Bit-Ganzzahl mit Vorzeichen in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt32(IntPtr, Int32, Int32)

Schreibt den Wert einer 32-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt32(Object, Int32, Int32)

Schreibt den Wert einer 32-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt64(IntPtr, Int32, Int64)

Schreibt den Wert einer 64-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt64(IntPtr, Int64)

Schreibt eine 64-Bit-Ganzzahl mit Vorzeichen in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteInt64(Object, Int32, Int64)

Schreibt den Wert einer 64-Bit-Ganzzahl mit Vorzeichen an einem angegebenen Offset in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteIntPtr(IntPtr, Int32, IntPtr)

Schreibt einen Ganzzahlwert von prozessoreigener Größe am angegebenen Offset in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteIntPtr(IntPtr, IntPtr)

Schreibt einen Ganzzahlwert von prozessoreigener Größe in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static WriteIntPtr(Object, Int32, IntPtr)

Schreibt einen Ganzzahlwert von prozessoreigener Größe in den nicht verwalteten Speicher.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeBSTR(IntPtr)

Gibt eine BSTR Zeiger, der belegt wurde mit der SecureStringToBSTR Methode.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeCoTaskMemAnsi(IntPtr)

Gibt einen nicht verwalteten Zeichenfolgenzeiger frei, der mit der SecureStringToCoTaskMemAnsi-Methode reserviert wurde.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeCoTaskMemUnicode(IntPtr)

Gibt einen nicht verwalteten Zeichenfolgenzeiger frei, der mit der SecureStringToCoTaskMemUnicode-Methode reserviert wurde.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeGlobalAllocAnsi(IntPtr)

Gibt einen nicht verwalteten Zeichenfolgenzeiger frei, der mit der SecureStringToGlobalAllocAnsi-Methode reserviert wurde.

System_CAPS_pubmethodSystem_CAPS_static ZeroFreeGlobalAllocUnicode(IntPtr)

Gibt einen nicht verwalteten Zeichenfolgenzeiger frei, der mit der SecureStringToGlobalAllocUnicode-Methode reserviert wurde.

Felder

Name Beschreibung
System_CAPS_pubfieldSystem_CAPS_static SystemDefaultCharSize

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

System_CAPS_pubfieldSystem_CAPS_static SystemMaxDBCSCharSize

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

Hinweise

Die static definierten Methoden der Marshal -Klasse für die Verwendung mit nicht verwaltetem Code unverzichtbar sind. Die meisten in dieser Klasse definierte Methoden werden i. d. r. von Entwicklern verwendet, die eine Brücke zwischen verwalteten und nicht verwalteten Programmiermodellen bereitstellen möchten. Zum Beispiel die StringToHGlobalAnsi Methode kopiert ANSI-Zeichen aus einer angegebenen Zeichenfolge (im verwalteten Heap) in einen Puffer im nicht verwalteten Heap. Sie weist auch die Zielheap die richtige Größe.

Die common Language Runtime bietet spezielle Marshallingfunktionen. Weitere Informationen zum Marshallingverhalten finden Sie unter Interop Marshaling.

Die Read und Write Methoden in der Marshal -Klasse unterstützen ausgerichteten und nicht ausgerichteten Zugriff.

Beispiele

Das folgende Beispiel zeigt, wie Sie verschiedene Methoden, definiert durch die Marshal Klasse.

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 the use of the SizeOf method of the Marshal class.
        Console.WriteLine("Number of bytes needed by a Point object: {0}", 
            Marshal.SizeOf(typeof(Point)));
        Point p = new Point();
        Console.WriteLine("Number of bytes needed by a Point object: {0}",
            Marshal.SizeOf(p));

        // 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
// Number of bytes needed by a Point object: 8
// Number of bytes needed by a Point object: 8
// CloseHandle call failed with an error code of: 6
Imports System
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 the use of the SizeOf method of the Marshal class.
        Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(GetType(Point)))
        Dim p As New Point()
        Console.WriteLine("Number of bytes needed by a Point object: {0}", Marshal.SizeOf(p))
        ' 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
' Number of bytes needed by a Point object: 8
' Number of bytes needed by a Point object: 8
' CloseHandle call failed with an error code of: 6
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 the use of the SizeOf method of the Marshal
    // class.
    Console::WriteLine("Number of bytes needed by a Point object: {0}",
        Marshal::SizeOf(Point::typeid));
    Point point;
    Console::WriteLine("Number of bytes needed by a Point object: {0}",
        Marshal::SizeOf(point));

    // 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
// Number of bytes needed by a Point object: 8
// Number of bytes needed by a Point object: 8
// CloseHandle call failed with an error code of: 6

Versionsinformationen

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 1.1
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1

Threadsicherheit

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Siehe auch

System.Runtime.InteropServices-Namespace

Zurück zum Anfang