Marshal.ReAllocHGlobal(IntPtr, IntPtr) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Изменяет размер блока памяти, предварительно выделенной с использованием 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
Параметры
- pv
-
IntPtr
nativeint
Указатель на память, выделенную с использованием AllocHGlobal(IntPtr).
- cb
-
IntPtr
nativeint
Новый размер выделенного блока. Это не указатель; это запрашиваемое число байтов, приведенное к типу IntPtr. Если передается указатель, он рассматривается как размер.
Возвращаемое значение
nativeint
Указатель на повторно выделенную память. Эта память должна освобождаться с помощью FreeHGlobal(IntPtr).
- Атрибуты
Исключения
Недостаточно памяти для выполнения запроса.
Комментарии
ReAllocHGlobal — это один из двух методов API перераспределения Marshal памяти в классе . (Marshal.ReAllocCoTaskMem является другим.)
Этот метод предоставляет функцию Win32 GlobalReAlloc из Kernel32.dll. Возвращаемый указатель может отличаться от исходного. Если он отличается, содержимое исходного блока памяти было скопировано в новый блок, а исходный блок памяти был освобожден.