Export (0) Print
Expand All

Marshal.Copy Method (IntPtr, IntPtr[], Int32, Int32)

Copies data from an unmanaged memory pointer to a managed IntPtr array.

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

static member Copy : 
        source:IntPtr * 
        destination:IntPtr[] * 
        startIndex:int * 
        length:int -> unit

Parameters

source
Type: System.IntPtr

The memory pointer to copy from.

destination
Type: System.IntPtr[]

The array to copy to.

startIndex
Type: System.Int32

The zero-based index in the destination array where copying should start.

length
Type: System.Int32

The number of array elements to copy.

ExceptionCondition
ArgumentNullException

source, destination, startIndex, or length is a null reference (Nothing in Visual Basic).

Unmanaged, C-style arrays do not contain bounds information, which prevents the startIndex and length parameters from being validated. Therefore, the unmanaged data that corresponds to the source parameter populates the managed array regardless of its usefulness. You must initialize the managed array with the appropriate size before calling the Marshal.Copy method.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Portable Class Library

Supported in: Portable Class Library

Supported in: Windows Phone 8.1

  • SecurityCriticalAttribute 

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

Show:
© 2015 Microsoft