Marshal Klasa

Definicja

Udostępnia kolekcję metod przydzielania niezarządzanej pamięci, kopiowania niezarządzanych bloków pamięci i konwertowania zarządzanych na typy niezarządzane, a także innych różnych metod używanych podczas interakcji z kodem niezarządzanym.

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
Dziedziczenie
Marshal

Przykłady

W poniższym przykładzie pokazano, jak używać różnych metod zdefiniowanych przez klasę Marshal .

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
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.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

Uwagi

Metody static zdefiniowane w Marshal klasie są niezbędne do pracy z kodem niezarządzanych. Większość metod zdefiniowanych w tej klasie jest zwykle używana przez deweloperów, którzy chcą zapewnić most między zarządzanymi i niezarządzanymi modelami programowania. Na przykład StringToHGlobalAnsi metoda kopiuje znaki ANSI z określonego ciągu (w zarządzanym stercie) do buforu w stercie niezarządzanym. Przydziela również stertę docelową odpowiedniego rozmiaru.

Środowisko uruchomieniowe języka wspólnego zapewnia określone możliwości marshalingu. Aby uzyskać szczegółowe informacje na temat działania marshalingu, zobacz Interop Marshaling (Przeprowadzanie marshalingu międzyoperamentowego).

Metody Read i Write w Marshal klasie obsługują zarówno wyrównany, jak i nieprzygotowany dostęp.

Pola

SystemDefaultCharSize

Reprezentuje domyślny rozmiar znaku w systemie; wartość domyślna to 2 dla systemów Unicode i 1 dla systemów ANSI. To pole jest tylko do odczytu.

SystemMaxDBCSCharSize

Reprezentuje maksymalny rozmiar zestawu znaków dwubajtowych (DBCS) w bajtach dla bieżącego systemu operacyjnego. To pole jest tylko do odczytu.

Metody

AddRef(IntPtr)

Zwiększa liczbę odwołań w określonym interfejsie.

AllocCoTaskMem(Int32)

Przydziela blok pamięci o określonym rozmiarze z alokatora pamięci zadań COM.

AllocHGlobal(Int32)

Przydziela pamięć z niezarządzanej pamięci procesu przy użyciu określonej liczby bajtów.

AllocHGlobal(IntPtr)

Przydziela pamięć z niezarządzanej pamięci procesu przy użyciu wskaźnika do określonej liczby bajtów.

AreComObjectsAvailableForCleanup()

Wskazuje, czy w czasie wykonywania dostępne są otoki wywołujące (RCW) z dowolnego kontekstu.

BindToMoniker(String)

Pobiera wskaźnik interfejsu zidentyfikowany przez określony moniker.

ChangeWrapperHandleStrength(Object, Boolean)

Zmienia siłę uchwytu COM Callable Wrapper (CCW) obiektu.

CleanupUnusedObjectsInCurrentContext()

Powiadamia środowisko uruchomieniowe o wyczyszczeniu wszystkich otoek wywołań środowiska uruchomieniowego (RCW) przydzielonych w bieżącym kontekście.

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

Kopiuje dane z jednowymiarowej, niepodpisanej tablicy całkowitej bez znaku do niezarządzanego wskaźnika pamięci.

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

Kopiuje dane z jednowymiarowej tablicy znaków zarządzanych do niezarządzanego wskaźnika pamięci.

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

Kopiuje dane z jednowymiarowej tablicy liczb zmiennoprzecinkowych o podwójnej precyzji do niezarządzanego wskaźnika pamięci.

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

Kopiuje dane z jednowymiarowej, zarządzanej 16-bitowej tablicy całkowitej ze znakiem do niezarządzanego wskaźnika pamięci.

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

Kopiuje dane z jednowymiarowej tablicy całkowitej z podpisem 32-bitowym do niezarządzanego wskaźnika pamięci.

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

Kopiuje dane z jednowymiarowej, zarządzanej 64-bitowej tablicy całkowitej ze znakiem do niezarządzanego wskaźnika pamięci.

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

Kopiuje dane z niezarządzanego wskaźnika pamięci do zarządzanej, niepodpisanej tablicy całkowitej bez znaku.

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

Kopiuje dane z niezarządzanego wskaźnika pamięci do tablicy znaków zarządzanych.

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

Kopiuje dane z niezarządzanego wskaźnika pamięci do zarządzanej tablicy liczb zmiennoprzecinkowych o podwójnej precyzji.

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

Kopiuje dane z niezarządzanego wskaźnika pamięci do zarządzanej tablicy całkowitej z podpisem 16-bitowym.

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

Kopiuje dane z niezarządzanego wskaźnika pamięci do zarządzanej tablicy całkowitej z podpisem 32-bitowym.

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

Kopiuje dane z niezarządzanego wskaźnika pamięci do zarządzanej 64-bitowej tablicy całkowitej z podpisem.

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

Kopiuje dane z niezarządzanego wskaźnika pamięci do tablicy zarządzanej IntPtr .

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

Kopiuje dane z niezarządzanego wskaźnika pamięci do zarządzanej tablicy liczb zmiennoprzecinkowych o pojedynczej precyzji.

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

Kopiuje dane z tablicy jednowymiarowej zarządzanej IntPtr do niezarządzanego wskaźnika pamięci.

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

Kopiuje dane z jednowymiarowej, zarządzanej tablicy liczb zmiennoprzecinkowych o pojedynczej precyzji do niezarządzanego wskaźnika pamięci.

CreateAggregatedObject(IntPtr, Object)
Przestarzałe.

Agreguje obiekt zarządzany z określonym obiektem COM.

CreateAggregatedObject<T>(IntPtr, T)

Agreguje zarządzany obiekt określonego typu z określonym obiektem COM.

CreateWrapperOfType(Object, Type)
Przestarzałe.

Opakowuje określony obiekt COM w obiekcie określonego typu.

CreateWrapperOfType<T,TWrapper>(T)

Opakowuje określony obiekt COM w obiekcie określonego typu.

DestroyStructure(IntPtr, Type)
Przestarzałe.

Zwalnia wszystkie podstruktury, do których wskazuje określony niezarządzany blok pamięci.

DestroyStructure<T>(IntPtr)

Zwalnia wszystkie podstruktury określonego typu, do którego wskazuje określony niezarządzany blok pamięci.

FinalReleaseComObject(Object)

Zwalnia wszystkie odwołania do środowiska uruchomieniowego Callable Wrapper (RCW), ustawiając jej liczbę odwołań na 0.

FreeBSTR(IntPtr)

BSTR Zwalnia przy użyciu funkcji COM SysFreeString.

FreeCoTaskMem(IntPtr)

Zwalnia blok pamięci przydzielonej przez niezarządzany alokator pamięci zadań COM.

FreeHGlobal(IntPtr)

Zwalnia pamięć przydzieloną wcześniej z niezarządzanej pamięci procesu.

GenerateGuidForType(Type)

Zwraca unikatowy identyfikator globalny (GUID) dla określonego typu lub generuje identyfikator GUID przy użyciu algorytmu używanego przez eksportera biblioteki typów (Tlbexp.exe).

GenerateProgIdForType(Type)

Zwraca identyfikator programowy (ProgID) dla określonego typu.

GetActiveObject(String)

Uzyskuje uruchomione wystąpienie określonego obiektu z uruchomionej tabeli obiektów (ROT).

GetComInterfaceForObject(Object, Type)
Przestarzałe.

Zwraca wskaźnik do interfejsu IUnknown , który reprezentuje określony interfejs w określonym obiekcie. Dostęp do niestandardowego interfejsu zapytań jest domyślnie włączony.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Przestarzałe.

Zwraca wskaźnik do interfejsu IUnknown , który reprezentuje określony interfejs w określonym obiekcie. Dostęp do niestandardowego interfejsu zapytań jest kontrolowany przez określony tryb dostosowywania.

GetComInterfaceForObject<T,TInterface>(T)

Zwraca wskaźnik do interfejsu IUnknown , który reprezentuje określony interfejs na obiekcie określonego typu. Dostęp do niestandardowego interfejsu zapytań jest domyślnie włączony.

GetComInterfaceForObjectInContext(Object, Type)

Zwraca wskaźnik interfejsu, który reprezentuje określony interfejs obiektu, jeśli obiekt wywołujący znajduje się w tym samym kontekście co ten obiekt.

GetComObjectData(Object, Object)

Pobiera dane, do których odwołuje się określony klucz z określonego obiektu COM.

GetComSlotForMethodInfo(MemberInfo)

Pobiera miejsce tabeli funkcji wirtualnej (v-table lub VTBL) dla określonego MemberInfo typu, gdy ten typ jest uwidoczniony dla modelu COM.

GetDelegateForFunctionPointer(IntPtr, Type)
Przestarzałe.

Konwertuje wskaźnik funkcji niezarządzanej na delegata.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Konwertuje wskaźnik funkcji niezarządzanej na delegata określonego typu.

GetEndComSlot(Type)

Pobiera ostatnie miejsce w tabeli funkcji wirtualnej (v-table lub VTBL) typu, gdy jest uwidoczniony w modelu COM.

GetExceptionCode()
Przestarzałe.

Pobiera kod identyfikujący typ wyjątku, który wystąpił.

GetExceptionForHR(Int32)

Konwertuje określony kod błędu HRESULT na odpowiedni Exception obiekt.

GetExceptionForHR(Int32, IntPtr)

Konwertuje określony kod błędu HRESULT na odpowiedni Exception obiekt z dodatkowymi informacjami o błędzie przekazanymi w interfejsie IErrorInfo dla obiektu wyjątku.

GetExceptionPointers()

Pobiera niezależny od komputera opis wyjątku i informacje o stanie, które istniały dla wątku po wystąpieniu wyjątku.

GetFunctionPointerForDelegate(Delegate)
Przestarzałe.

Konwertuje delegata na wskaźnik funkcji, który jest wywoływany z niezarządzanego kodu.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Konwertuje delegat określonego typu na wskaźnik funkcji, który można wywołać z niezarządzanego kodu.

GetHINSTANCE(Module)

Zwraca uchwyt wystąpienia (HINSTANCE) dla określonego modułu.

GetHRForException(Exception)

Konwertuje określony wyjątek na HRESULT.

GetHRForLastWin32Error()

Zwraca wartość HRESULT odpowiadającą ostatniemu błędowi spowodowanemu przez kod Win32 wykonany przy użyciu polecenia Marshal.

GetIDispatchForObject(Object)

Zwraca interfejs IDispatch z zarządzanego obiektu.

GetIDispatchForObjectInContext(Object)

Zwraca wskaźnik interfejsu IDispatch z obiektu zarządzanego, jeśli obiekt wywołujący znajduje się w tym samym kontekście co ten obiekt.

GetITypeInfoForType(Type)

ITypeInfo Zwraca interfejs z typu zarządzanego.

GetIUnknownForObject(Object)

Zwraca interfejs IUnknown z zarządzanego obiektu.

GetIUnknownForObjectInContext(Object)

Zwraca interfejs IUnknown z zarządzanego obiektu, jeśli obiekt wywołujący znajduje się w tym samym kontekście co ten obiekt.

GetLastPInvokeError()

Pobierz ostatni błąd wywołania platformy w bieżącym wątku.

GetLastPInvokeErrorMessage()

Pobiera komunikat o błędzie systemu dla ostatniego kodu błędu PInvoke.

GetLastSystemError()

Pobiera ostatni błąd systemu w bieżącym wątku.

GetLastWin32Error()

Zwraca kod błędu zwrócony przez ostatnią niezarządzaną funkcję, która została wywołana przy użyciu wywołania platformy z ustawioną flagą SetLastError .

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)
Przestarzałe.

Pobiera wskaźnik do funkcji wygenerowanej przez środowisko uruchomieniowe, która wykonuje wywołanie z zarządzanego do niezarządzanego kodu.

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

MemberInfo Pobiera obiekt dla określonego gniazda tabeli funkcji wirtualnej (v-table lub VTBL).

GetNativeVariantForObject(Object, IntPtr)
Przestarzałe.

Konwertuje obiekt na WARIANT MODELU COM.

GetNativeVariantForObject<T>(T, IntPtr)
Przestarzałe.

Konwertuje obiekt określonego typu na WARIANT MODELU COM.

GetObjectForIUnknown(IntPtr)

Zwraca wystąpienie typu reprezentującego obiekt COM przez wskaźnik do interfejsu IUnknown .

GetObjectForNativeVariant(IntPtr)
Przestarzałe.

Konwertuje WARIANT MODELU COM na obiekt.

GetObjectForNativeVariant<T>(IntPtr)
Przestarzałe.

Konwertuje WARIANT MODELU COM na obiekt określonego typu.

GetObjectsForNativeVariants(IntPtr, Int32)
Przestarzałe.

Konwertuje tablicę obiektów COM VARIANTs na tablicę obiektów.

GetObjectsForNativeVariants<T>(IntPtr, Int32)
Przestarzałe.

Konwertuje tablicę VARIANTów COM na tablicę określonego typu.

GetPInvokeErrorMessage(Int32)

Pobiera komunikat o błędzie systemu dla podanego kodu błędu.

GetStartComSlot(Type)

Pobiera pierwsze miejsce w tabeli funkcji wirtualnej (v-table lub VTBL), która zawiera metody zdefiniowane przez użytkownika.

GetThreadFromFiberCookie(Int32)
Przestarzałe.

Konwertuje plik cookie światłowodowy na odpowiednie Thread wystąpienie.

GetTypedObjectForIUnknown(IntPtr, Type)

Zwraca zarządzany obiekt określonego typu, który reprezentuje obiekt COM.

GetTypeForITypeInfo(IntPtr)

Konwertuje niezarządzany obiekt ITypeInfo na obiekt zarządzany Type .

GetTypeFromCLSID(Guid)

Zwraca typ skojarzony z określonym identyfikatorem klasy (CLSID).

GetTypeInfoName(ITypeInfo)

Pobiera nazwę typu reprezentowanego przez obiekt ITypeInfo .

GetTypeInfoName(UCOMITypeInfo)
Przestarzałe.

Pobiera nazwę typu reprezentowanego przez obiekt ITypeInfo .

GetTypeLibGuid(ITypeLib)

Pobiera identyfikator biblioteki (LIBID) biblioteki typów.

GetTypeLibGuid(UCOMITypeLib)
Przestarzałe.

Pobiera identyfikator biblioteki (LIBID) biblioteki typów.

GetTypeLibGuidForAssembly(Assembly)

Pobiera identyfikator biblioteki (LIBID), który jest przypisany do biblioteki typów, gdy został wyeksportowany z określonego zestawu.

GetTypeLibLcid(ITypeLib)

Pobiera identyfikator LCID biblioteki typów.

GetTypeLibLcid(UCOMITypeLib)
Przestarzałe.

Pobiera identyfikator LCID biblioteki typów.

GetTypeLibName(ITypeLib)

Pobiera nazwę biblioteki typów.

GetTypeLibName(UCOMITypeLib)
Przestarzałe.

Pobiera nazwę biblioteki typów.

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

Pobiera numer wersji biblioteki typów, która zostanie wyeksportowana z określonego zestawu.

GetUniqueObjectForIUnknown(IntPtr)

Tworzy unikatowy obiekt Callable Wrapper (RCW) środowiska uruchomieniowego dla danego interfejsu IUnknown .

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)
Przestarzałe.

Pobiera wskaźnik do funkcji wygenerowanej przez środowisko uruchomieniowe, która marshaluje wywołanie z niezarządzanego do kodu zarządzanego.

InitHandle(SafeHandle, IntPtr)

Inicjuje bazowy uchwyt nowo utworzonej SafeHandle wartości.

IsComObject(Object)

Wskazuje, czy określony obiekt reprezentuje obiekt COM.

IsTypeVisibleFromCom(Type)

Wskazuje, czy typ jest widoczny dla klientów COM.

NumParamBytes(MethodInfo)

Oblicza liczbę bajtów w niezarządzanej pamięci wymaganej do przechowywania parametrów określonej metody.

OffsetOf(Type, String)
Przestarzałe.

Zwraca przesunięcie pola niezarządzanej formy klasy zarządzanej.

OffsetOf<T>(String)

Zwraca przesunięcie pola niezarządzanej formy określonej klasy zarządzanej.

Prelink(MethodInfo)

Wykonuje jednorazowe zadania konfiguracji metody bez wywoływania metody .

PrelinkAll(Type)

Wykonuje wstępne sprawdzanie pod kątem wszystkich metod w klasie.

PtrToStringAnsi(IntPtr)

Kopiuje wszystkie znaki do pierwszego znaku null z niezarządzanego ciągu ANSI lub UTF-8 do zarządzanego Stringi rozszerza każdy znak na UTF-16.

PtrToStringAnsi(IntPtr, Int32)

Przydziela zarządzany Stringciąg , kopiuje do niego określoną liczbę znaków z niezarządzanego ciągu ANSI lub UTF-8 i rozszerza każdy znak na UTF-16.

PtrToStringAuto(IntPtr)

Przydziela zarządzany i String kopiuje wszystkie znaki do pierwszego znaku null z ciągu przechowywanego w niezarządzanej pamięci.

PtrToStringAuto(IntPtr, Int32)

Przydziela zarządzaną String i kopiuje do niego określoną liczbę znaków z ciągu przechowywanego w niezarządzanej pamięci.

PtrToStringBSTR(IntPtr)

Przydziela zarządzany i String kopiuje do niego ciąg binarny (BSTR) przechowywany w niezarządzanej pamięci.

PtrToStringUni(IntPtr)

Przydziela zarządzany i String kopiuje do niego wszystkie znaki do pierwszego znaku null z niezarządzanego ciągu Unicode.

PtrToStringUni(IntPtr, Int32)

Przydziela zarządzaną String i kopiuje do niego określoną liczbę znaków z niezarządzanego ciągu Unicode.

PtrToStringUTF8(IntPtr)

Przydziela zarządzany String i kopiuje wszystkie znaki do pierwszego znaku null z niezarządzanego ciągu UTF-8 do niego.

PtrToStringUTF8(IntPtr, Int32)

Przydziela zarządzaną String i kopiuje do niej określoną liczbę bajtów z niezarządzanego ciągu UTF8.

PtrToStructure(IntPtr, Object)
Przestarzałe.

Marshaluje dane z niezarządzanego bloku pamięci do obiektu zarządzanego.

PtrToStructure(IntPtr, Type)
Przestarzałe.

Marshaluje dane z niezarządzanego bloku pamięci do nowo przydzielonego obiektu zarządzanego określonego typu.

PtrToStructure<T>(IntPtr)

Marshaluje dane z niezarządzanego bloku pamięci do nowo przydzielonego obiektu zarządzanego typu określonego przez parametr typu ogólnego.

PtrToStructure<T>(IntPtr, T)

Marshaluje dane z niezarządzanego bloku pamięci do zarządzanego obiektu określonego typu.

QueryInterface(IntPtr, Guid, IntPtr)

Żąda wskaźnika do określonego interfejsu z obiektu COM.

ReadByte(IntPtr)

Odczytuje pojedynczy bajt z niezarządzanej pamięci.

ReadByte(IntPtr, Int32)

Odczytuje pojedynczy bajt przy danym przesunięciu (lub indeksie) z niezarządzanej pamięci.

ReadByte(Object, Int32)
Przestarzałe.

Odczytuje pojedynczy bajt przy danym przesunięciu (lub indeksie) z niezarządzanej pamięci.

ReadInt16(IntPtr)

Odczytuje 16-bitową liczbę całkowitą podpisaną z niezarządzanej pamięci.

ReadInt16(IntPtr, Int32)

Odczytuje 16-bitową liczbę całkowitą podpisaną przy danym przesunięciu z niezarządzanej pamięci.

ReadInt16(Object, Int32)
Przestarzałe.

Odczytuje 16-bitową liczbę całkowitą podpisaną przy danym przesunięciu z niezarządzanej pamięci.

ReadInt32(IntPtr)

Odczytuje 32-bitową liczbę całkowitą podpisaną z niezarządzanej pamięci.

ReadInt32(IntPtr, Int32)

Odczytuje 32-bitową liczbę całkowitą ze znakiem z danym przesunięciem z niezarządzanej pamięci.

ReadInt32(Object, Int32)
Przestarzałe.

Odczytuje 32-bitową liczbę całkowitą ze znakiem z danym przesunięciem z niezarządzanej pamięci.

ReadInt64(IntPtr)

Odczytuje 64-bitową liczbę całkowitą podpisaną z niezarządzanej pamięci.

ReadInt64(IntPtr, Int32)

Odczytuje 64-bitową liczbę całkowitą podpisaną przy danym przesunięciu z niezarządzanej pamięci.

ReadInt64(Object, Int32)
Przestarzałe.

Odczytuje 64-bitową liczbę całkowitą podpisaną przy danym przesunięciu z niezarządzanej pamięci.

ReadIntPtr(IntPtr)

Odczytuje liczbę całkowitą o rozmiarze natywnym procesora z niezarządzanej pamięci.

ReadIntPtr(IntPtr, Int32)

Odczytuje liczbę całkowitą o rozmiarze natywnym procesora z danym przesunięciem z niezarządzanej pamięci.

ReadIntPtr(Object, Int32)
Przestarzałe.

Odczytuje liczbę całkowitą o rozmiarze natywnym procesora z pamięci niezarządzanej.

ReAllocCoTaskMem(IntPtr, Int32)

Zmienia rozmiar bloku pamięci przydzielonej wcześniej za pomocą polecenia AllocCoTaskMem(Int32).

ReAllocHGlobal(IntPtr, IntPtr)

Zmienia rozmiar bloku pamięci przydzielonej wcześniej za pomocą polecenia AllocHGlobal(IntPtr).

Release(IntPtr)

Dekrementuje liczbę odwołań dla określonego interfejsu.

ReleaseComObject(Object)

Dekrementuje liczbę odwołań otoki wywoływanej środowiska uruchomieniowego (RCW) skojarzonej z określonym obiektem COM.

ReleaseThreadCache()
Przestarzałe.

Zwalnia pamięć podręczną wątków.

SecureStringToBSTR(SecureString)

Przydziela niezarządzany ciąg binarny (BSTR) i kopiuje do niego zawartość obiektu zarządzanego SecureString .

SecureStringToCoTaskMemAnsi(SecureString)

Kopiuje zawartość obiektu zarządzanego SecureString do bloku pamięci przydzielonej z niezarządzanego alokatora zadań COM.

SecureStringToCoTaskMemUnicode(SecureString)

Kopiuje zawartość obiektu zarządzanego SecureString do bloku pamięci przydzielonej z niezarządzanego alokatora zadań COM.

SecureStringToGlobalAllocAnsi(SecureString)

Kopiuje zawartość zarządzanej SecureString do niezarządzanej pamięci, konwertując ją na format ANSI podczas kopiowania.

SecureStringToGlobalAllocUnicode(SecureString)

Kopiuje zawartość obiektu zarządzanego SecureString do niezarządzanej pamięci.

SetComObjectData(Object, Object, Object)

Ustawia dane, do których odwołuje się określony klucz w określonym obiekcie COM.

SetLastPInvokeError(Int32)

Ustawia ostatni błąd wywołania platformy w bieżącym wątku.

SetLastSystemError(Int32)

Ustawia ostatni błąd systemu w bieżącym wątku.

SizeOf(Object)
Przestarzałe.

Zwraca niezarządzany rozmiar obiektu w bajtach.

SizeOf(Type)
Przestarzałe.

Zwraca rozmiar niezarządzanego typu w bajtach.

SizeOf<T>()

Zwraca rozmiar niezarządzanego typu w bajtach.

SizeOf<T>(T)

Zwraca niezarządzany rozmiar obiektu określonego typu w bajtach.

StringToBSTR(String)

Przydziela element BSTR i kopiuje do niego zawartość zarządzanego String obiektu.

StringToCoTaskMemAnsi(String)

Kopiuje zawartość zarządzanego String bloku pamięci przydzielonej z niezarządzanego alokatora zadań COM.

StringToCoTaskMemAuto(String)

Kopiuje zawartość zarządzanego String bloku pamięci przydzielonej z niezarządzanego alokatora zadań COM.

StringToCoTaskMemUni(String)

Kopiuje zawartość zarządzanego String bloku pamięci przydzielonej z niezarządzanego alokatora zadań COM.

StringToCoTaskMemUTF8(String)

Kopiuje zawartość zarządzanego String bloku pamięci przydzielonej z niezarządzanego alokatora zadań COM.

StringToHGlobalAnsi(String)

Kopiuje zawartość zarządzanej String do niezarządzanej pamięci, konwertując ją na format ANSI podczas kopiowania.

StringToHGlobalAuto(String)

Kopiuje zawartość zarządzanej String do niezarządzanej pamięci, konwertując w razie potrzeby na format ANSI.

StringToHGlobalUni(String)

Kopiuje zawartość zarządzanej String do niezarządzanej pamięci.

StructureToPtr(Object, IntPtr, Boolean)
Przestarzałe.

Marshaluje dane z zarządzanego obiektu do niezarządzanego bloku pamięci.

StructureToPtr<T>(T, IntPtr, Boolean)

Marshaluje dane z zarządzanego obiektu określonego typu do niezarządzanego bloku pamięci.

ThrowExceptionForHR(Int32)

Zgłasza wyjątek z określoną wartością HRESULT błędu.

ThrowExceptionForHR(Int32, IntPtr)

Zgłasza wyjątek z określonym błędem HRESULT na podstawie określonego interfejsu IErrorInfo .

UnsafeAddrOfPinnedArrayElement(Array, Int32)
Przestarzałe.

Pobiera adres elementu w określonym indeksie wewnątrz określonej tablicy.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

Pobiera adres elementu w określonym indeksie w tablicy określonego typu.

WriteByte(IntPtr, Byte)

Zapisuje pojedynczą wartość bajtu w pamięci niezarządzanej.

WriteByte(IntPtr, Int32, Byte)

Zapisuje pojedynczą wartość bajtu w pamięci niezarządzanej przy określonym przesunięciu.

WriteByte(Object, Int32, Byte)
Przestarzałe.

Zapisuje pojedynczą wartość bajtu w pamięci niezarządzanej przy określonym przesunięciu.

WriteInt16(IntPtr, Char)

Zapisuje znak jako 16-bitową wartość całkowitą do niezarządzanej pamięci.

WriteInt16(IntPtr, Int16)

Zapisuje 16-bitową wartość całkowitą w pamięci niezarządzanej.

WriteInt16(IntPtr, Int32, Char)

Zapisuje 16-bitową wartość całkowitą z podpisem do niezarządzanej pamięci w określonym przesunięciu.

WriteInt16(IntPtr, Int32, Int16)

Zapisuje 16-bitową wartość całkowitą ze znakiem w niezarządzanej pamięci przy określonym przesunięciu.

WriteInt16(Object, Int32, Char)
Przestarzałe.

Zapisuje 16-bitową wartość całkowitą z podpisem do niezarządzanej pamięci w określonym przesunięciu.

WriteInt16(Object, Int32, Int16)
Przestarzałe.

Zapisuje 16-bitową wartość całkowitą z podpisem do niezarządzanej pamięci w określonym przesunięciu.

WriteInt32(IntPtr, Int32)

Zapisuje 32-bitową wartość całkowitą ze znakiem do niezarządzanej pamięci.

WriteInt32(IntPtr, Int32, Int32)

Zapisuje 32-bitową wartość całkowitą z podpisem w pamięci niezarządzanej przy określonym przesunięciu.

WriteInt32(Object, Int32, Int32)
Przestarzałe.

Zapisuje 32-bitową wartość całkowitą ze znakiem do niezarządzanej pamięci w określonym przesunięciu.

WriteInt64(IntPtr, Int32, Int64)

Zapisuje 64-bitową wartość całkowitą ze znakiem do niezarządzanej pamięci w określonym przesunięciu.

WriteInt64(IntPtr, Int64)

Zapisuje 64-bitową wartość całkowitą z podpisem do niezarządzanej pamięci.

WriteInt64(Object, Int32, Int64)
Przestarzałe.

Zapisuje 64-bitową wartość całkowitą ze znakiem do niezarządzanej pamięci w określonym przesunięciu.

WriteIntPtr(IntPtr, Int32, IntPtr)

Zapisuje wartość liczb całkowitych o rozmiarze natywnym procesora na pamięć niezarządzaną przy określonym przesunięciu.

WriteIntPtr(IntPtr, IntPtr)

Zapisuje wartość liczb całkowitych o rozmiarze natywnym procesora w pamięci niezarządzanej.

WriteIntPtr(Object, Int32, IntPtr)
Przestarzałe.

Zapisuje wartość liczb całkowitych o rozmiarze natywnym procesora do niezarządzanej pamięci.

ZeroFreeBSTR(IntPtr)

Zwalnia wskaźnik BSTR przydzielony przy użyciu SecureStringToBSTR(SecureString) metody .

ZeroFreeCoTaskMemAnsi(IntPtr)

Zwalnia niezarządzany wskaźnik ciągu, który został przydzielony przy użyciu SecureStringToCoTaskMemAnsi(SecureString) metody .

ZeroFreeCoTaskMemUnicode(IntPtr)

Zwalnia niezarządzany wskaźnik ciągu, który został przydzielony przy użyciu SecureStringToCoTaskMemUnicode(SecureString) metody .

ZeroFreeCoTaskMemUTF8(IntPtr)

Zwalnia niezarządzany wskaźnik ciągu, który został przydzielony przy użyciu StringToCoTaskMemUTF8(String) metody .

ZeroFreeGlobalAllocAnsi(IntPtr)

Zwalnia niezarządzany wskaźnik ciągu, który został przydzielony przy użyciu SecureStringToGlobalAllocAnsi(SecureString) metody .

ZeroFreeGlobalAllocUnicode(IntPtr)

Zwalnia niezarządzany wskaźnik ciągu, który został przydzielony przy użyciu SecureStringToGlobalAllocUnicode(SecureString) metody .

Dotyczy