Udostępnij za pośrednictwem


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

static Metody zdefiniowane w Marshal klasie są niezbędne do pracy z niezarządzanymi kodami. 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 niezarządzanym stercie. 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ń do określonego interfejsu.

AllocCoTaskMem(Int32)

Przydziela blok pamięci o określonym rozmiarze z alokatora pamięci zadania 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 do czyszczenia są dostępne wywołalne otoki środowiska uruchomieniowego (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 wywoływalnych otoek środowiska uruchomieniowego (RCW) przydzielonych w bieżącym kontekście.

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

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

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

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

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

Kopiuje dane z jednowymiarowej, zarządzanej 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, zarządzanej 32-bitowej tablicy całkowitej ze znakiem 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 tablicy całkowitej bez znaku 8-bitowego.

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

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

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 ze znakiem 16-bitowym.

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

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

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

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

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 jednowymiarowej tablicy 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 zarządzany obiekt 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 otoki wywoływanej środowiska uruchomieniowego (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 przydzielony przez niezarządzany alokator pamięci zadań COM.

FreeHGlobal(IntPtr)

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

GenerateGuidForType(Type)

Zwraca globalnie unikatowy identyfikator (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 dla 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 gniazdo tabeli funkcji wirtualnych (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 w przypadku uwidocznienia 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óry istniał dla wątku, gdy wystąpił wyjątek.

GetFunctionPointerForDelegate(Delegate)
Przestarzałe.

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

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Konwertuje delegata 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 wykonanym przy użyciu polecenia Marshal.

GetIDispatchForObject(Object)

Zwraca interfejs IDispatch z obiektu zarządzanego.

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 obiektu zarządzanego, jeśli obiekt wywołujący znajduje się w tym samym kontekście co ten obiekt.

GetLastPInvokeError()

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

GetLastPInvokeErrorMessage()

Pobiera komunikat o błędzie systemu dla ostatniego kodu błędu funkcji 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 marshalsuje 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 jego 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ę com VARIANTs 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óre 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) przypisany do biblioteki typów podczas eksportowania 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 marshalsuje wywołanie z niezarządzanego do kodu zarządzanego.

InitHandle(SafeHandle, IntPtr)

Inicjuje podstawowy 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, które są wymagane do przechowywania parametrów dla 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 sprawdzanie wstępnego linku dla 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 do 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 do UTF-16.

PtrToStringAuto(IntPtr)

Przydziela zarządzany String i kopiuje do niego 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 niej określoną liczbę znaków z ciągu przechowywanego w niezarządzanej pamięci.

PtrToStringBSTR(IntPtr)

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

PtrToStringUni(IntPtr)

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

PtrToStringUni(IntPtr, Int32)

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

PtrToStringUTF8(IntPtr)

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

PtrToStringUTF8(IntPtr, Int32)

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

PtrToStructure(IntPtr, Object)
Przestarzałe.

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

PtrToStructure(IntPtr, Type)
Przestarzałe.

Organizuje dane z niezarządzanego bloku pamięci do nowo przydzielonego zarządzanego obiektu 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 dla danego przesunięcia (lub indeksu) z niezarządzanej pamięci.

ReadByte(Object, Int32)
Przestarzałe.

Odczytuje pojedynczy bajt dla danego przesunięcia (lub indeksu) z niezarządzanej pamięci.

ReadInt16(IntPtr)

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

ReadInt16(IntPtr, Int32)

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

ReadInt16(Object, Int32)
Przestarzałe.

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

ReadInt32(IntPtr)

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

ReadInt32(IntPtr, Int32)

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

ReadInt32(Object, Int32)
Przestarzałe.

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

ReadInt64(IntPtr)

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

ReadInt64(IntPtr, Int32)

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

ReadInt64(Object, Int32)
Przestarzałe.

Odczytuje 64-bitową liczbę całkowitą ze znakiem 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 przy danym przesunięciu z pamięci niezarządzanej.

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ń do środowiska uruchomieniowego callable wrapper (RCW) skojarzonego 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ść zarządzanego SecureString obiektu.

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ądzanego String do niezarządzanej pamięci.

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

Organizuje 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 niezarządzanej pamięci przy określonym przesunięciu.

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

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

WriteInt16(IntPtr, Char)

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

WriteInt16(IntPtr, Int16)

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

WriteInt16(IntPtr, Int32, Char)

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

WriteInt16(IntPtr, Int32, Int16)

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

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

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

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

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

WriteInt32(IntPtr, Int32)

Zapisuje wartość 32-bitowej liczby całkowitej ze znakiem w pamięci niezarządzanej.

WriteInt32(IntPtr, Int32, Int32)

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

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

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

WriteInt64(IntPtr, Int32, Int64)

Zapisuje wartość 64-bitowej liczby całkowitej ze znakiem do niezarządzanej pamięci przy określonym przesunięciu.

WriteInt64(IntPtr, Int64)

Zapisuje wartość 64-bitowej liczby całkowitej ze znakiem w pamięci niezarządzanej.

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

Zapisuje wartość 64-bitowej liczby całkowitej ze znakiem do niezarządzanej pamięci przy określonym przesunięciu.

WriteIntPtr(IntPtr, Int32, IntPtr)

Zapisuje wartość całkowitą o rozmiarze natywnym procesora do niezarządzanej pamięci przy określonym przesunięciu.

WriteIntPtr(IntPtr, IntPtr)

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

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

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

ZeroFreeBSTR(IntPtr)

Zwalnia wskaźnik BSTR , który został 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