Bagikan melalui


Marshal.ReAllocHGlobal(IntPtr, IntPtr) Metode

Definisi

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

public:
 static IntPtr ReAllocHGlobal(IntPtr pv, IntPtr cb);
[System.Security.SecurityCritical]
public static IntPtr ReAllocHGlobal (IntPtr pv, IntPtr cb);
public static IntPtr ReAllocHGlobal (IntPtr pv, IntPtr cb);
[<System.Security.SecurityCritical>]
static member ReAllocHGlobal : nativeint * nativeint -> nativeint
static member ReAllocHGlobal : nativeint * nativeint -> nativeint
Public Shared Function ReAllocHGlobal (pv As IntPtr, cb As IntPtr) As IntPtr

Parameter

pv
IntPtr

nativeint

Pointer ke memori yang dialokasikan dengan AllocHGlobal(IntPtr).

cb
IntPtr

nativeint

Ukuran baru blok yang dialokasikan. Ini bukan penunjuk; itu adalah jumlah byte yang Anda minta, transmisikan untuk mengetik IntPtr. Jika Anda meneruskan penunjuk, itu diperlakukan sebagai ukuran.

Mengembalikan

IntPtr

nativeint

Penunjuk ke memori yang di-realokasi. Memori ini harus dirilis menggunakan FreeHGlobal(IntPtr).

Atribut

Pengecualian

Memori tidak cukup untuk memenuhi permintaan.

Keterangan

Penting

Alokator memori asli ini adalah API warisan yang harus digunakan secara eksklusif ketika dipanggil oleh API Win32 tertentu pada platform Windows. Saat menargetkan .NET 6 atau yang lebih baru, gunakan kelas NativeMemory di semua platform untuk mengalokasikan memori asli. Saat menargetkan .NET 6 atau yang lebih lama, gunakan AllocCoTaskMem di semua platform untuk mengalokasikan memori asli.

ReAllocHGlobal adalah salah satu dari dua metode API realokasi memori di kelas Marshal. (Marshal.ReAllocCoTaskMem adalah yang lain.)

Metode ini mengekspos fungsi Win32 GlobalReAlloc dari Kernel32.dll. Penunjuk yang dikembalikan dapat berbeda dari yang asli. Jika berbeda, konten blok memori asli telah disalin ke blok baru, dan blok memori asli telah dibeberkan.

Berlaku untuk

Lihat juga