Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
MSDN Library

Marshal::PtrToStructure<T> Method (IntPtr, T)

[Supported in the .NET Framework 4.5.1 and later versions]

Marshals data from an unmanaged block of memory to a managed object of the specified type.

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

public:
generic<typename T>
static void PtrToStructure(
	IntPtr ptr, 
	T structure
)

Type Parameters

T

The type of structure. This must be a formatted class.

Parameters

ptr
Type: System::IntPtr

A pointer to an unmanaged block of memory.

structure
Type: T

The object to which the data is to be copied.

ExceptionCondition
ArgumentException

Structure layout is not sequential or explicit.

PtrToStructure<T>(IntPtr, T) is often necessary in COM interop and platform invoke when structure parameters are represented as IntPtr values. You cannot use this method overload with value types.

.NET Framework

Supported in: 4.6, 4.5.1

.NET for Windows Phone apps

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