Marshal.ReAllocHGlobal(IntPtr, IntPtr) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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.