Udostępnij za pośrednictwem


Marshal.ReAllocHGlobal(IntPtr, IntPtr) Metoda

Definicja

Zmienia rozmiar bloku pamięci przydzielonej wcześniej przy użyciu 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

Parametry

pv
IntPtr

nativeint

Wskaźnik do pamięci przydzielonej za pomocą AllocHGlobal(IntPtr).

cb
IntPtr

nativeint

Nowy rozmiar przydzielonego bloku. To nie jest wskaźnik; jest to liczba bajtów, których żądasz, rzutuj, aby wpisać IntPtr. Jeśli przekażesz wskaźnik, będzie on traktowany jako rozmiar.

Zwraca

IntPtr

nativeint

Wskaźnik do ponownie przydzielonej pamięci. Ta pamięć musi zostać zwolniona przy użyciu FreeHGlobal(IntPtr).

Atrybuty

Wyjątki

Brak pamięci do spełnienia żądania.

Uwagi

Ważny

Ten macierzysty alokator pamięci jest starszym interfejsem API, który powinien być używany wyłącznie w przypadku wywołania przez określone interfejsy API Win32 na platformie Windows. W przypadku określania wartości docelowej platformy .NET 6 lub nowszej użyj klasy NativeMemory na wszystkich platformach, aby przydzielić pamięć natywną. W przypadku określania wartości docelowej platformy .NET 6 lub starszej użyj AllocCoTaskMem na wszystkich platformach, aby przydzielić pamięć natywną.

ReAllocHGlobal jest jedną z dwóch metod interfejsu API reallocation pamięci w klasie Marshal. (Marshal.ReAllocCoTaskMem jest drugą).

Ta metoda uwidacznia funkcję GlobalRealloc Win32 z Kernel32.dll. Zwrócony wskaźnik może różnić się od oryginalnego. Jeśli jest inny, zawartość oryginalnego bloku pamięci została skopiowana do nowego bloku, a oryginalny blok pamięci został zwolniony.

Dotyczy

Zobacz też