Aracılığıyla paylaş


Marshal.ReAllocHGlobal(IntPtr, IntPtr) Yöntem

Tanım

daha önce AllocHGlobal(IntPtr)ile ayrılmış bir bellek bloğunu yeniden boyutlandırıyor.

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

Parametreler

pv
IntPtr

nativeint

AllocHGlobal(IntPtr)ile ayrılan belleğe işaretçi.

cb
IntPtr

nativeint

Ayrılan bloğun yeni boyutu. Bu bir işaretçi değildir; bu, istediğiniz bayt sayısıdır ve IntPtryazmak üzere yayınlanır. bir işaretçi geçirirseniz, bir boyut olarak değerlendirilir.

Döndürülenler

IntPtr

nativeint

Yeniden ayrılan belleğe bir işaretçi. Bu bellek FreeHGlobal(IntPtr)kullanılarak serbest bırakılmalıdır.

Öznitelikler

Özel durumlar

İsteği karşılamak için yeterli bellek yok.

Açıklamalar

Önemli

Bu yerel bellek ayırıcısı, Yalnızca Windows platformundaki belirli Win32 API'leri tarafından çağrıldığında kullanılması gereken eski bir API'dir. .NET 6 veya üzerini hedeflerken yerel bellek ayırmak için tüm platformlardaki NativeMemory sınıfını kullanın. .NET 6 veya önceki sürümleri hedeflerken yerel bellek ayırmak için tüm platformlarda AllocCoTaskMem kullanın.

ReAllocHGlobal, Marshal sınıfındaki iki bellek yeniden konumlandırma API yönteminden biridir. (Marshal.ReAllocCoTaskMem diğeridir.)

Bu yöntem, Kernel32.dllwin32 GlobalReAlloc işlevini kullanıma sunar. Döndürülen işaretçi özgün işaretçiden farklı olabilir. Farklıysa, özgün bellek bloğunun içeriği yeni bloğa kopyalanır ve özgün bellek bloğu serbest bırakılmış olur.

Şunlara uygulanır

Ayrıca bkz.