Marshal.ReAllocCoTaskMem Method (IntPtr, Int32)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Resizes a block of memory previously allocated with AllocCoTaskMem.

Namespace:   System.Runtime.InteropServices
Assembly:  mscorlib (in mscorlib.dll)

public static IntPtr ReAllocCoTaskMem(
	IntPtr pv,
	int cb


Type: System.IntPtr

A pointer to memory allocated with AllocCoTaskMem.

Type: System.Int32

The new size of the allocated block.

Return Value

Type: System.IntPtr

An integer representing the address of the reallocated block of memory. This memory must be released with FreeCoTaskMem.

Exception Condition

There is insufficient memory to satisfy the request.

ReAllocCoTaskMem is one of two memory reallocation methods in the Marshal class. (ReAllocHGlobal is the other.) The beginning of the reallocated memory content is the same as the original content; however, the entire memory block can be in a different location. This method exposes the COM CoTaskMemRealloc function, which is referred to as the COM task memory allocator.


requires full trust for the immediate caller. This member cannot be used by partially trusted or transparent code.

Universal Windows Platform
Available since 8
.NET Framework
Available since 1.1
Portable Class Library
Supported in: portable .NET platforms
Windows Phone
Available since 8.1
Return to top