Bagikan melalui


Marshal Kelas

Definisi

Menyediakan kumpulan metode untuk mengalokasikan memori yang tidak dikelola, menyalin blok memori yang tidak terkelola, dan mengonversi dikelola ke jenis yang tidak dikelola, serta metode lain-lain yang digunakan saat berinteraksi dengan kode yang tidak dikelola.

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

Contoh

Contoh berikut menunjukkan cara menggunakan berbagai metode yang ditentukan oleh Marshal kelas .

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

Keterangan

Metode static yang ditentukan pada Marshal kelas sangat penting untuk bekerja dengan kode yang tidak dikelola. Sebagian besar metode yang ditentukan dalam kelas ini biasanya digunakan oleh pengembang yang ingin menyediakan jembatan antara model pemrograman terkelola dan tidak terkelola. Misalnya, StringToHGlobalAnsi metode menyalin karakter ANSI dari string tertentu (dalam tumpukan terkelola) ke buffer dalam tumpukan yang tidak dikelola. Ini juga mengalokasikan timbunan target dengan ukuran yang tepat.

Runtime bahasa umum menyediakan kemampuan marshaling tertentu. Untuk detail tentang perilaku marshaling, lihat Interop Marshaling.

Metode Read dan Write di Marshal kelas mendukung akses yang selaras dan tidak sejajar.

Bidang

SystemDefaultCharSize

Mewakili ukuran karakter default pada sistem; defaultnya adalah 2 untuk sistem Unicode dan 1 untuk sistem ANSI. Bidang ini hanya-baca.

SystemMaxDBCSCharSize

Mewakili ukuran maksimum ukuran kumpulan karakter byte ganda (DBCS), dalam byte, untuk sistem operasi saat ini. Bidang ini hanya-baca.

Metode

AddRef(IntPtr)

Menaikkan jumlah referensi pada antarmuka yang ditentukan.

AllocCoTaskMem(Int32)

Mengalokasikan blok memori dengan ukuran yang ditentukan dari alokator memori tugas COM.

AllocHGlobal(Int32)

Mengalokasikan memori dari memori proses yang tidak dikelola dengan menggunakan jumlah byte yang ditentukan.

AllocHGlobal(IntPtr)

Mengalokasikan memori dari memori proses yang tidak dikelola dengan menggunakan penunjuk ke jumlah byte yang ditentukan.

AreComObjectsAvailableForCleanup()

Menunjukkan apakah pembungkus yang dapat dipanggil runtime (RCW) dari konteks apa pun tersedia untuk pembersihan.

BindToMoniker(String)

Mendapatkan penunjuk antarmuka yang diidentifikasi oleh moniker yang ditentukan.

ChangeWrapperHandleStrength(Object, Boolean)

Mengubah kekuatan handel COM Callable Wrapper (CCW) objek.

CleanupUnusedObjectsInCurrentContext()

Memberi tahu runtime untuk membersihkan semua Runtime Callable Wrappers (RCW) yang dialokasikan dalam konteks saat ini.

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

Menyalin data dari array bilangan bulat 8-bit yang tidak ditandatangani satu dimensi ke penunjuk memori yang tidak dikelola.

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

Menyalin data dari array karakter terkelola satu dimensi ke penunjuk memori yang tidak dikelola.

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

Menyalin data dari array angka floating-point presisi ganda yang dikelola satu dimensi ke penunjuk memori yang tidak dikelola.

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

Menyalin data dari array bilangan bulat bertanda satu dimensi yang dikelola 16-bit ke penunjuk memori yang tidak dikelola.

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

Menyalin data dari array bilangan bulat bertanda satu dimensi yang dikelola 32-bit ke penunjuk memori yang tidak dikelola.

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

Menyalin data dari array bilangan bulat bertanda satu dimensi yang dikelola 64-bit ke penunjuk memori yang tidak dikelola.

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

Menyalin data dari penunjuk memori yang tidak dikelola ke array bilangan bulat yang tidak ditandatangani 8-bit terkelola.

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

Menyalin data dari penunjuk memori yang tidak dikelola ke array karakter terkelola.

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

Menyalin data dari penunjuk memori yang tidak dikelola ke array angka floating-point presisi ganda terkelola.

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

Menyalin data dari penunjuk memori yang tidak dikelola ke array bilangan bulat yang ditandatangani 16-bit terkelola.

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

Menyalin data dari penunjuk memori yang tidak dikelola ke array bilangan bulat yang ditandatangani 32-bit terkelola.

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

Menyalin data dari penunjuk memori yang tidak dikelola ke array bilangan bulat yang ditandatangani 64-bit terkelola.

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

Menyalin data dari penunjuk memori yang tidak dikelola ke array terkelola IntPtr .

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

Menyalin data dari penunjuk memori yang tidak dikelola ke array angka floating-point presisi tunggal terkelola.

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

Menyalin data dari array terkelola IntPtr satu dimensi ke penunjuk memori yang tidak dikelola.

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

Menyalin data dari array angka floating-point presisi tunggal satu dimensi terkelola ke penunjuk memori yang tidak dikelola.

CreateAggregatedObject(IntPtr, Object)
Kedaluwarsa.

Mengagregasi objek terkelola dengan objek COM yang ditentukan.

CreateAggregatedObject<T>(IntPtr, T)

Mengagregasi objek terkelola dari jenis yang ditentukan dengan objek COM yang ditentukan.

CreateWrapperOfType(Object, Type)
Kedaluwarsa.

Membungkus objek COM yang ditentukan dalam objek dari jenis yang ditentukan.

CreateWrapperOfType<T,TWrapper>(T)

Membungkus objek COM yang ditentukan dalam objek dari jenis yang ditentukan.

DestroyStructure(IntPtr, Type)
Kedaluwarsa.

Membebaskan semua substruktur yang dituju oleh blok memori tidak terkelola yang ditentukan.

DestroyStructure<T>(IntPtr)

Membebaskan semua substruktur dari jenis tertentu yang dituju oleh blok memori tidak terkelola yang ditentukan.

FinalReleaseComObject(Object)

Merilis semua referensi ke Runtime Callable Wrapper (RCW) dengan mengatur jumlah referensinya ke 0.

FreeBSTR(IntPtr)

Mengosongkan BSTR menggunakan fungsi COM SysFreeString .

FreeCoTaskMem(IntPtr)

Membebaskan blok memori yang dialokasikan oleh alokator memori tugas COM yang tidak dikelola.

FreeHGlobal(IntPtr)

Membebaskan memori yang sebelumnya dialokasikan dari memori proses yang tidak dikelola.

GenerateGuidForType(Type)

Mengembalikan pengidentifikasi unik global (GUID) untuk jenis yang ditentukan, atau menghasilkan GUID menggunakan algoritma yang digunakan oleh Pengekspor Pustaka Tipe (Tlbexp.exe).

GenerateProgIdForType(Type)

Mengembalikan pengidentifikasi terprogram (ProgID) untuk jenis yang ditentukan.

GetActiveObject(String)

Mendapatkan instans yang sedang berjalan dari objek yang ditentukan dari tabel objek yang sedang berjalan (ROT).

GetComInterfaceForObject(Object, Type)
Kedaluwarsa.

Mengembalikan penunjuk ke antarmuka IUnknown yang mewakili antarmuka yang ditentukan pada objek yang ditentukan. Akses antarmuka kueri kustom diaktifkan secara default.

GetComInterfaceForObject(Object, Type, CustomQueryInterfaceMode)
Kedaluwarsa.

Mengembalikan penunjuk ke antarmuka IUnknown yang mewakili antarmuka yang ditentukan pada objek yang ditentukan. Akses antarmuka kueri kustom dikontrol oleh mode kustomisasi yang ditentukan.

GetComInterfaceForObject<T,TInterface>(T)

Mengembalikan penunjuk ke antarmuka IUnknown yang mewakili antarmuka yang ditentukan pada objek dari jenis yang ditentukan. Akses antarmuka kueri kustom diaktifkan secara default.

GetComInterfaceForObjectInContext(Object, Type)

Mengembalikan penunjuk antarmuka yang mewakili antarmuka yang ditentukan untuk objek, jika pemanggil berada dalam konteks yang sama dengan objek tersebut.

GetComObjectData(Object, Object)

Mengambil data yang dirujuk oleh kunci yang ditentukan dari objek COM yang ditentukan.

GetComSlotForMethodInfo(MemberInfo)

Mengambil slot tabel fungsi virtual (v-table atau VTBL) untuk jenis tertentu MemberInfo saat jenis tersebut diekspos ke COM.

GetDelegateForFunctionPointer(IntPtr, Type)
Kedaluwarsa.

Mengonversi penunjuk fungsi yang tidak dikelola ke delegasi.

GetDelegateForFunctionPointer<TDelegate>(IntPtr)

Mengonversi penunjuk fungsi yang tidak dikelola ke delegasi dari jenis tertentu.

GetEndComSlot(Type)

Mengambil slot terakhir dalam tabel fungsi virtual (v-table atau VTBL) dari jenis saat diekspos ke COM.

GetExceptionCode()
Kedaluwarsa.

Mengambil kode yang mengidentifikasi jenis pengecualian yang terjadi.

GetExceptionForHR(Int32)

Mengonversi kode kesalahan HRESULT yang ditentukan ke objek yang Exception sesuai.

GetExceptionForHR(Int32, IntPtr)

Mengonversi kode kesalahan HRESULT yang ditentukan ke objek yang sesuai Exception , dengan informasi kesalahan tambahan yang diteruskan dalam antarmuka IErrorInfo untuk objek pengecualian.

GetExceptionPointers()

Mengambil deskripsi bebas komputer tentang pengecualian, dan informasi tentang status yang ada untuk utas ketika pengecualian terjadi.

GetFunctionPointerForDelegate(Delegate)
Kedaluwarsa.

Mengonversi delegasi menjadi penunjuk fungsi yang dapat dipanggil dari kode yang tidak dikelola.

GetFunctionPointerForDelegate<TDelegate>(TDelegate)

Mengonversi delegasi dari jenis tertentu ke penunjuk fungsi yang dapat dipanggil dari kode yang tidak dikelola.

GetHINSTANCE(Module)

Mengembalikan handel instans (HINSTANCE) untuk modul yang ditentukan.

GetHRForException(Exception)

Mengonversi pengecualian yang ditentukan ke HRESULT.

GetHRForLastWin32Error()

Mengembalikan HRESULT yang sesuai dengan kesalahan terakhir yang dikeluarkan oleh kode Win32 yang dijalankan menggunakan Marshal.

GetIDispatchForObject(Object)

Mengembalikan antarmuka IDispatch dari objek terkelola.

GetIDispatchForObjectInContext(Object)

Mengembalikan penunjuk antarmuka IDispatch dari objek terkelola, jika pemanggil berada dalam konteks yang sama dengan objek tersebut.

GetITypeInfoForType(Type)

Mengembalikan ITypeInfo antarmuka dari jenis terkelola.

GetIUnknownForObject(Object)

Mengembalikan antarmuka IUnknown dari objek terkelola.

GetIUnknownForObjectInContext(Object)

Mengembalikan antarmuka IUnknown dari objek terkelola, jika pemanggil berada dalam konteks yang sama dengan objek tersebut.

GetLastPInvokeError()

Dapatkan kesalahan pemanggilan platform terakhir pada utas saat ini.

GetLastPInvokeErrorMessage()

Mendapatkan pesan kesalahan sistem untuk kode kesalahan PInvoke terakhir.

GetLastSystemError()

Mendapatkan kesalahan sistem terakhir pada utas saat ini.

GetLastWin32Error()

Mengembalikan kode kesalahan yang dikembalikan oleh fungsi terakhir yang tidak dikelola yang dipanggil menggunakan pemanggilan platform yang memiliki SetLastError set bendera.

GetManagedThunkForUnmanagedMethodPtr(IntPtr, IntPtr, Int32)
Kedaluwarsa.

Mendapatkan penunjuk ke fungsi yang dihasilkan runtime yang melakukan marshal panggilan dari kode terkelola ke tidak terkelola.

GetMethodInfoForComSlot(Type, Int32, ComMemberType)

MemberInfo Mengambil objek untuk slot tabel fungsi virtual (v-table atau VTBL) yang ditentukan.

GetNativeVariantForObject(Object, IntPtr)
Kedaluwarsa.

Mengonversi objek menjadi VARIAN COM.

GetNativeVariantForObject<T>(T, IntPtr)
Kedaluwarsa.

Mengonversi objek dari jenis tertentu menjadi VARIAN COM.

GetObjectForIUnknown(IntPtr)

Mengembalikan instans jenis yang mewakili objek COM dengan penunjuk ke antarmuka IUnknown-nya .

GetObjectForNativeVariant(IntPtr)
Kedaluwarsa.

Mengonversi VARIAN COM menjadi objek.

GetObjectForNativeVariant<T>(IntPtr)
Kedaluwarsa.

Mengonversi VARIAN COM menjadi objek dari jenis tertentu.

GetObjectsForNativeVariants(IntPtr, Int32)
Kedaluwarsa.

Mengonversi array VARIAN COM menjadi array objek.

GetObjectsForNativeVariants<T>(IntPtr, Int32)
Kedaluwarsa.

Mengonversi array VARIAN COM menjadi array dari jenis tertentu.

GetPInvokeErrorMessage(Int32)

Mendapatkan pesan kesalahan sistem untuk kode kesalahan yang disediakan.

GetStartComSlot(Type)

Mendapatkan slot pertama dalam tabel fungsi virtual (v-table atau VTBL) yang berisi metode yang ditentukan pengguna.

GetThreadFromFiberCookie(Int32)
Kedaluwarsa.

Mengonversi cookie serat menjadi instans yang Thread sesuai.

GetTypedObjectForIUnknown(IntPtr, Type)

Mengembalikan objek terkelola dari jenis tertentu yang mewakili objek COM.

GetTypeForITypeInfo(IntPtr)

Mengonversi objek ITypeInfo yang tidak dikelola menjadi objek terkelola Type .

GetTypeFromCLSID(Guid)

Mengembalikan jenis yang terkait dengan pengidentifikasi kelas yang ditentukan (CLSID).

GetTypeInfoName(ITypeInfo)

Mengambil nama jenis yang diwakili oleh objek ITypeInfo .

GetTypeInfoName(UCOMITypeInfo)
Kedaluwarsa.

Mengambil nama jenis yang diwakili oleh objek ITypeInfo .

GetTypeLibGuid(ITypeLib)

Mengambil pengidentifikasi pustaka (LIBID) dari pustaka jenis.

GetTypeLibGuid(UCOMITypeLib)
Kedaluwarsa.

Mengambil pengidentifikasi pustaka (LIBID) dari pustaka jenis.

GetTypeLibGuidForAssembly(Assembly)

Mengambil pengidentifikasi pustaka (LIBID) yang ditetapkan ke pustaka jenis ketika diekspor dari rakitan yang ditentukan.

GetTypeLibLcid(ITypeLib)

Mengambil LCID pustaka jenis.

GetTypeLibLcid(UCOMITypeLib)
Kedaluwarsa.

Mengambil LCID pustaka jenis.

GetTypeLibName(ITypeLib)

Mengambil nama pustaka jenis.

GetTypeLibName(UCOMITypeLib)
Kedaluwarsa.

Mengambil nama pustaka jenis.

GetTypeLibVersionForAssembly(Assembly, Int32, Int32)

Mengambil nomor versi pustaka jenis yang akan diekspor dari rakitan yang ditentukan.

GetUniqueObjectForIUnknown(IntPtr)

Membuat objek Runtime Callable Wrapper (RCW) unik untuk antarmuka IUnknown tertentu.

GetUnmanagedThunkForManagedMethodPtr(IntPtr, IntPtr, Int32)
Kedaluwarsa.

Mendapatkan penunjuk ke fungsi yang dihasilkan runtime yang melakukan marshal panggilan dari kode yang tidak dikelola ke kode terkelola.

InitHandle(SafeHandle, IntPtr)

Menginisialisasi handel yang mendasar dari yang baru dibuat SafeHandle ke nilai yang disediakan.

IsComObject(Object)

Menunjukkan apakah objek tertentu mewakili objek COM.

IsTypeVisibleFromCom(Type)

Menunjukkan apakah jenis terlihat oleh klien COM.

NumParamBytes(MethodInfo)

Menghitung jumlah byte dalam memori tidak terkelola yang diperlukan untuk menahan parameter untuk metode yang ditentukan.

OffsetOf(Type, String)
Kedaluwarsa.

Mengembalikan offset bidang dari bentuk kelas terkelola yang tidak dikelola.

OffsetOf<T>(String)

Mengembalikan offset bidang dari bentuk tidak terkelola dari kelas terkelola yang ditentukan.

Prelink(MethodInfo)

Menjalankan tugas penyiapan metode satu kali tanpa memanggil metode .

PrelinkAll(Type)

Melakukan pemeriksaan pra-tautan untuk semua metode pada kelas.

PtrToStringAnsi(IntPtr)

Menyalin semua karakter hingga karakter null pertama dari string ANSI atau UTF-8 yang Stringtidak dikelola ke terkelola, dan memperluas setiap karakter menjadi UTF-16.

PtrToStringAnsi(IntPtr, Int32)

Mengalokasikan Stringterkelola , menyalin sejumlah karakter tertentu dari string ANSI atau UTF-8 yang tidak dikelola ke dalamnya, dan memperluas setiap karakter menjadi UTF-16.

PtrToStringAuto(IntPtr)

Mengalokasikan karakter String terkelola dan menyalin semua karakter hingga karakter null pertama dari string yang disimpan dalam memori yang tidak dikelola ke dalamnya.

PtrToStringAuto(IntPtr, Int32)

Mengalokasikan terkelola String dan menyalin jumlah karakter yang ditentukan dari string yang disimpan dalam memori yang tidak dikelola ke dalamnya.

PtrToStringBSTR(IntPtr)

Mengalokasikan terkelola String dan menyalin string biner (BSTR) yang disimpan dalam memori yang tidak dikelola ke dalamnya.

PtrToStringUni(IntPtr)

Mengalokasikan karakter String terkelola dan menyalin semua karakter hingga karakter null pertama dari string Unicode yang tidak dikelola ke dalamnya.

PtrToStringUni(IntPtr, Int32)

Mengalokasikan terkelola String dan menyalin sejumlah karakter tertentu dari string Unicode yang tidak dikelola ke dalamnya.

PtrToStringUTF8(IntPtr)

Mengalokasikan karakter String terkelola dan menyalin semua karakter hingga karakter null pertama dari string UTF-8 yang tidak dikelola ke dalamnya.

PtrToStringUTF8(IntPtr, Int32)

Mengalokasikan terkelola String dan menyalin sejumlah byte tertentu dari string UTF8 yang tidak dikelola ke dalamnya.

PtrToStructure(IntPtr, Object)
Kedaluwarsa.

Marsekal data dari blok memori yang tidak dikelola ke objek terkelola.

PtrToStructure(IntPtr, Type)
Kedaluwarsa.

Marsekal data dari blok memori yang tidak dikelola ke objek terkelola yang baru dialokasikan dari jenis yang ditentukan.

PtrToStructure<T>(IntPtr)

Marshals data dari blok memori yang tidak dikelola ke objek terkelola yang baru dialokasikan dari jenis yang ditentukan oleh parameter jenis generik.

PtrToStructure<T>(IntPtr, T)

Marsekal data dari blok memori yang tidak dikelola ke objek terkelola dari jenis yang ditentukan.

QueryInterface(IntPtr, Guid, IntPtr)

Meminta penunjuk ke antarmuka tertentu dari objek COM.

ReadByte(IntPtr)

Membaca satu byte dari memori yang tidak dikelola.

ReadByte(IntPtr, Int32)

Membaca byte tunggal pada offset (atau indeks) tertentu dari memori yang tidak dikelola.

ReadByte(Object, Int32)
Kedaluwarsa.

Membaca byte tunggal pada offset (atau indeks) tertentu dari memori yang tidak dikelola.

ReadInt16(IntPtr)

Membaca bilangan bulat bertanda tangan 16-bit dari memori yang tidak dikelola.

ReadInt16(IntPtr, Int32)

Membaca bilangan bulat bertanda tangan 16-bit pada offset tertentu dari memori yang tidak dikelola.

ReadInt16(Object, Int32)
Kedaluwarsa.

Membaca bilangan bulat bertanda tangan 16-bit pada offset tertentu dari memori yang tidak dikelola.

ReadInt32(IntPtr)

Membaca bilangan bulat bertanda tangan 32-bit dari memori yang tidak dikelola.

ReadInt32(IntPtr, Int32)

Membaca bilangan bulat bertanda tangan 32-bit pada offset tertentu dari memori yang tidak dikelola.

ReadInt32(Object, Int32)
Kedaluwarsa.

Membaca bilangan bulat bertanda tangan 32-bit pada offset tertentu dari memori yang tidak dikelola.

ReadInt64(IntPtr)

Membaca bilangan bulat bertanda tangan 64-bit dari memori yang tidak dikelola.

ReadInt64(IntPtr, Int32)

Membaca bilangan bulat bertanda tangan 64-bit pada offset tertentu dari memori yang tidak dikelola.

ReadInt64(Object, Int32)
Kedaluwarsa.

Membaca bilangan bulat bertanda tangan 64-bit pada offset tertentu dari memori yang tidak dikelola.

ReadIntPtr(IntPtr)

Membaca bilangan bulat berukuran asli prosesor dari memori yang tidak dikelola.

ReadIntPtr(IntPtr, Int32)

Membaca bilangan bulat berukuran asli prosesor pada offset tertentu dari memori yang tidak dikelola.

ReadIntPtr(Object, Int32)
Kedaluwarsa.

Membaca bilangan bulat berukuran asli prosesor dari memori yang tidak dikelola.

ReAllocCoTaskMem(IntPtr, Int32)

Mengubah ukuran blok memori yang sebelumnya dialokasikan dengan AllocCoTaskMem(Int32).

ReAllocHGlobal(IntPtr, IntPtr)

Mengubah ukuran blok memori yang sebelumnya dialokasikan dengan AllocHGlobal(IntPtr).

Release(IntPtr)

Mengurangi jumlah referensi pada antarmuka yang ditentukan.

ReleaseComObject(Object)

Mengurangi jumlah referensi Runtime Callable Wrapper (RCW) yang terkait dengan objek COM yang ditentukan.

ReleaseThreadCache()
Kedaluwarsa.

Merilis cache utas.

SecureStringToBSTR(SecureString)

Mengalokasikan string biner (BSTR) yang tidak dikelola dan menyalin konten objek terkelola SecureString ke dalamnya.

SecureStringToCoTaskMemAnsi(SecureString)

Menyalin konten objek terkelola SecureString ke blok memori yang dialokasikan dari alokator tugas COM yang tidak dikelola.

SecureStringToCoTaskMemUnicode(SecureString)

Menyalin konten objek terkelola SecureString ke blok memori yang dialokasikan dari alokator tugas COM yang tidak dikelola.

SecureStringToGlobalAllocAnsi(SecureString)

Menyalin konten yang dikelola SecureString ke dalam memori yang tidak dikelola, mengonversi ke format ANSI saat disalin.

SecureStringToGlobalAllocUnicode(SecureString)

Menyalin isi objek terkelola SecureString ke dalam memori yang tidak terkelola.

SetComObjectData(Object, Object, Object)

Mengatur data yang dirujuk oleh kunci yang ditentukan dalam objek COM yang ditentukan.

SetLastPInvokeError(Int32)

Mengatur kesalahan pemanggilan platform terakhir pada utas saat ini.

SetLastSystemError(Int32)

Menyetel kesalahan sistem terakhir pada utas saat ini.

SizeOf(Object)
Kedaluwarsa.

Mengembalikan ukuran objek yang tidak terkelola dalam byte.

SizeOf(Type)
Kedaluwarsa.

Mengembalikan ukuran tipe yang tidak dikelola dalam byte.

SizeOf<T>()

Mengembalikan ukuran tipe yang tidak dikelola dalam byte.

SizeOf<T>(T)

Mengembalikan ukuran objek yang tidak dikelola dari tipe byte tertentu.

StringToBSTR(String)

Mengalokasikan BSTR dan menyalin konten yang dikelola String ke dalamnya.

StringToCoTaskMemAnsi(String)

Menyalin konten yang dikelola String ke blok memori yang dialokasikan dari alokator tugas COM yang tidak dikelola.

StringToCoTaskMemAuto(String)

Menyalin konten yang dikelola String ke blok memori yang dialokasikan dari alokator tugas COM yang tidak dikelola.

StringToCoTaskMemUni(String)

Menyalin konten yang dikelola String ke blok memori yang dialokasikan dari alokator tugas COM yang tidak dikelola.

StringToCoTaskMemUTF8(String)

Menyalin konten yang dikelola String ke blok memori yang dialokasikan dari alokator tugas COM yang tidak dikelola.

StringToHGlobalAnsi(String)

Menyalin konten yang dikelola String ke dalam memori yang tidak dikelola, mengonversi ke format ANSI saat disalin.

StringToHGlobalAuto(String)

Menyalin konten yang dikelola String ke dalam memori yang tidak dikelola, mengonversi ke format ANSI jika diperlukan.

StringToHGlobalUni(String)

Menyalin isi dari yang dikelola String ke dalam memori yang tidak terkelola.

StructureToPtr(Object, IntPtr, Boolean)
Kedaluwarsa.

Marsekal data dari objek terkelola ke blok memori yang tidak dikelola.

StructureToPtr<T>(T, IntPtr, Boolean)

Marsekal data dari objek terkelola dari jenis tertentu ke blok memori yang tidak dikelola.

ThrowExceptionForHR(Int32)

Memberikan pengecualian dengan nilai HRESULT kegagalan tertentu.

ThrowExceptionForHR(Int32, IntPtr)

Memberikan pengecualian dengan kegagalan tertentu HRESULT, berdasarkan antarmuka IErrorInfo yang ditentukan.

UnsafeAddrOfPinnedArrayElement(Array, Int32)
Kedaluwarsa.

Mendapatkan alamat elemen pada indeks yang ditentukan di dalam array yang ditentukan.

UnsafeAddrOfPinnedArrayElement<T>(T[], Int32)

Mendapatkan alamat elemen pada indeks yang ditentukan dalam array dari jenis yang ditentukan.

WriteByte(IntPtr, Byte)

Menulis nilai byte tunggal ke memori yang tidak dikelola.

WriteByte(IntPtr, Int32, Byte)

Menulis nilai byte tunggal ke memori yang tidak dikelola pada offset tertentu.

WriteByte(Object, Int32, Byte)
Kedaluwarsa.

Menulis nilai byte tunggal ke memori yang tidak dikelola pada offset tertentu.

WriteInt16(IntPtr, Char)

Menulis karakter sebagai nilai bilangan bulat 16-bit ke memori yang tidak dikelola.

WriteInt16(IntPtr, Int16)

Menulis nilai bilangan bulat 16-bit ke memori yang tidak dikelola.

WriteInt16(IntPtr, Int32, Char)

Menulis nilai bilangan bulat bertanda 16-bit ke memori yang tidak dikelola pada offset tertentu.

WriteInt16(IntPtr, Int32, Int16)

Menulis nilai bilangan bulat bertanda 16-bit ke dalam memori yang tidak dikelola pada offset tertentu.

WriteInt16(Object, Int32, Char)
Kedaluwarsa.

Menulis nilai bilangan bulat bertanda 16-bit ke memori yang tidak dikelola pada offset tertentu.

WriteInt16(Object, Int32, Int16)
Kedaluwarsa.

Menulis nilai bilangan bulat bertanda 16-bit ke memori yang tidak dikelola pada offset tertentu.

WriteInt32(IntPtr, Int32)

Menulis nilai bilangan bulat bertanda tangan 32-bit ke memori yang tidak dikelola.

WriteInt32(IntPtr, Int32, Int32)

Menulis nilai bilangan bulat bertanda 32-bit ke dalam memori yang tidak dikelola pada offset tertentu.

WriteInt32(Object, Int32, Int32)
Kedaluwarsa.

Menulis nilai bilangan bulat bertanda 32-bit ke memori yang tidak dikelola pada offset tertentu.

WriteInt64(IntPtr, Int32, Int64)

Menulis nilai bilangan bulat bertanda 64-bit ke memori yang tidak dikelola pada offset tertentu.

WriteInt64(IntPtr, Int64)

Menulis nilai bilangan bulat bertanda tangan 64-bit ke memori yang tidak dikelola.

WriteInt64(Object, Int32, Int64)
Kedaluwarsa.

Menulis nilai bilangan bulat bertanda 64-bit ke memori yang tidak dikelola pada offset tertentu.

WriteIntPtr(IntPtr, Int32, IntPtr)

Menulis nilai bilangan bulat berukuran asli prosesor ke memori yang tidak dikelola pada offset tertentu.

WriteIntPtr(IntPtr, IntPtr)

Menulis nilai bilangan bulat berukuran asli prosesor ke dalam memori yang tidak dikelola.

WriteIntPtr(Object, Int32, IntPtr)
Kedaluwarsa.

Menulis nilai bilangan bulat berukuran asli prosesor ke memori yang tidak dikelola.

ZeroFreeBSTR(IntPtr)

Membebaskan pointer BSTR yang dialokasikan menggunakan metode .SecureStringToBSTR(SecureString)

ZeroFreeCoTaskMemAnsi(IntPtr)

Membebaskan penunjuk string tidak terkelola yang dialokasikan menggunakan SecureStringToCoTaskMemAnsi(SecureString) metode .

ZeroFreeCoTaskMemUnicode(IntPtr)

Membebaskan penunjuk string tidak terkelola yang dialokasikan menggunakan SecureStringToCoTaskMemUnicode(SecureString) metode .

ZeroFreeCoTaskMemUTF8(IntPtr)

Membebaskan penunjuk string tidak terkelola yang dialokasikan menggunakan StringToCoTaskMemUTF8(String) metode .

ZeroFreeGlobalAllocAnsi(IntPtr)

Membebaskan penunjuk string tidak terkelola yang dialokasikan menggunakan SecureStringToGlobalAllocAnsi(SecureString) metode .

ZeroFreeGlobalAllocUnicode(IntPtr)

Membebaskan penunjuk string tidak terkelola yang dialokasikan menggunakan SecureStringToGlobalAllocUnicode(SecureString) metode .

Berlaku untuk