Marshal Class
For apps that target Windows Phone OS 7.0 and 7.1, do not use any members of this type in your app. If you do, your code will throw a MethodAccessException. This type is security-critical, which restricts it to internal use by the .NET Framework for Windows Phone class library.
Namespace:
System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Top
Top
[SECURITY CRITICAL]
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Provides a collection of methods for allocating unmanaged memory, copying unmanaged memory blocks, and converting managed to unmanaged types, as well as other miscellaneous methods used when interacting with unmanaged code.
Assembly: mscorlib (in mscorlib.dll)
The Marshal type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() | AddRef | Security Critical. Increments the reference count on the specified interface. |
![]() ![]() | AllocCoTaskMem | Security Critical. Allocates a block of memory of specified size from the COM task memory allocator. |
![]() ![]() | AllocHGlobal | Security Critical. Allocates memory from the unmanaged memory of the process by using the specified number of bytes. |
![]() ![]() | Copy(array<Byte>, Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed 8-bit unsigned integer array to an unmanaged memory pointer. |
![]() ![]() | Copy(array<Char>, Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed character array to an unmanaged memory pointer. |
![]() ![]() | Copy(array<Double>, Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed double-precision floating-point number array to an unmanaged memory pointer. |
![]() ![]() | Copy(array<Int16>, Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed 16-bit signed integer array to an unmanaged memory pointer. |
![]() ![]() | Copy(array<Int32>, Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed 32-bit signed integer array to an unmanaged memory pointer. |
![]() ![]() | Copy(array<Int64>, Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed 64-bit signed integer array to an unmanaged memory pointer. |
![]() ![]() | Copy(IntPtr, array<Byte>, Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed 8-bit unsigned integer array. |
![]() ![]() | Copy(IntPtr, array<Char>, Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed character array. |
![]() ![]() | Copy(IntPtr, array<Double>, Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed double-precision floating-point number array. |
![]() ![]() | Copy(IntPtr, array<Int16>, Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed 16-bit signed integer array. |
![]() ![]() | Copy(IntPtr, array<Int32>, Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed 32-bit signed integer array. |
![]() ![]() | Copy(IntPtr, array<Int64>, Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed 64-bit signed integer array. |
![]() ![]() | Copy(IntPtr, array<Single>, Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed single-precision floating-point number array. |
![]() ![]() | Copy(array<Single>, Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed single-precision floating-point number array to an unmanaged memory pointer. |
![]() ![]() | FinalReleaseComObject | Security Critical. Releases all references to a runtime callable wrapper (RCW) by setting its reference count to 0. |
![]() ![]() | FreeCoTaskMem | Security Critical. Frees a block of memory allocated by the unmanaged COM task memory allocator. |
![]() ![]() | FreeHGlobal | Security Critical. Frees memory previously allocated from the unmanaged memory of the process. |
![]() ![]() | GetComInterfaceForObject | Security Critical. Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. Custom query interface access is enabled by default. |
![]() ![]() | GetDelegateForFunctionPointer | Security Critical. Converts an unmanaged function pointer to a delegate. |
![]() ![]() | GetExceptionForHR(Int32) | Security Critical. Converts the specified HRESULT error code to a corresponding Exception object. |
![]() ![]() | GetExceptionForHR(Int32, IntPtr) | Security Critical. Converts the specified HRESULT error code to a corresponding Exception object, with additional error information passed in an [4dda6909-2d9a-4727-ae0c-b5f90dcfa447] interface for the exception object. |
![]() ![]() | GetFunctionPointerForDelegate | Security Critical. Converts a delegate into a function pointer callable from unmanaged code. |
![]() ![]() | GetHRForException | Security Critical. Converts the specified exception to an HRESULT. |
![]() ![]() | GetHRForLastWin32Error | Security Critical. Returns the HRESULT corresponding to the last error incurred by Win32 code executed using Marshal. |
![]() ![]() | GetIUnknownForObject | Security Critical. Returns an IUnknown interface from a managed object. |
![]() ![]() | GetLastWin32Error | Security Critical. Returns the error code returned by the last unmanaged function called using platform invoke that has the DllImportAttribute::SetLastError flag set. |
![]() ![]() | GetNativeVariantForObject | Security Critical. Converts an object to a COM VARIANT. |
![]() ![]() | GetObjectForIUnknown | Security Critical. Returns an instance of a type that represents a COM object by a pointer to its IUnknown interface. |
![]() ![]() | GetObjectForNativeVariant | Security Critical. Converts a COM VARIANT to an object. |
![]() ![]() | GetUniqueObjectForIUnknown | Security Critical. Creates a unique [7e542583-1e31-4e10-b523-8cf2f29cb4a4] (RCW) object for a given IUnknown interface. |
![]() ![]() | IsComObject | Indicates whether a specified object represents a COM object. |
![]() ![]() | Prelink | Security Critical. Executes one-time method setup tasks without calling the method. |
![]() ![]() | PrelinkAll | Security Critical. Performs a pre-link check for all methods on a class. |
![]() ![]() | PtrToStringAnsi(IntPtr) | Security Critical. Copies all characters up to the first null from an unmanaged ANSI string to a managed String. Widens each ANSI character to Unicode. |
![]() ![]() | PtrToStringAnsi(IntPtr, Int32) | Security Critical. Allocates a managed String, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode. |
![]() ![]() | PtrToStringUni(IntPtr) | Security Critical. Allocates a managed String and copies all characters up to the first null character from an unmanaged Unicode string into it. |
![]() ![]() | PtrToStringUni(IntPtr, Int32) | Security Critical. Copies a specified number of characters from a Unicode string stored in native heap to a managed String. |
![]() ![]() | PtrToStructure(IntPtr, Object) | Security Critical. Marshals data from an unmanaged block of memory to a managed object. |
![]() ![]() | PtrToStructure(IntPtr, Type) | Security Critical. Marshals data from an unmanaged block of memory to a newly allocated managed object of the specified type. |
![]() ![]() | QueryInterface | Security Critical. Requests a pointer to a specified interface from a COM object. |
![]() ![]() | ReadByte(IntPtr) | Security Critical. Reads a single byte from an unmanaged pointer. |
![]() ![]() | ReadByte(IntPtr, Int32) | Security Critical. Reads a single byte at a given offset (or index) from an unmanaged pointer. |
![]() ![]() | ReadInt16(IntPtr) | Security Critical. Reads a 16-bit signed integer from the unmanaged memory. |
![]() ![]() | ReadInt16(IntPtr, Int32) | Security Critical. Reads a 16-bit signed integer from unmanaged memory. |
![]() ![]() | ReadInt32(IntPtr) | Security Critical. Reads a 32-bit signed integer from unmanaged memory. |
![]() ![]() | ReadInt32(IntPtr, Int32) | Security Critical. Reads a 32-bit signed integer from unmanaged memory. |
![]() ![]() | ReadInt64(IntPtr) | Security Critical. Reads a 64-bit signed integer from unmanaged memory. |
![]() ![]() | ReadInt64(IntPtr, Int32) | Security Critical. Reads a 64-bit signed integer from unmanaged memory. |
![]() ![]() | ReadIntPtr(IntPtr) | Security Critical. Reads a processor native sized integer from unmanaged memory. |
![]() ![]() | ReadIntPtr(IntPtr, Int32) | Security Critical. Reads a processor native sized integer from unmanaged memory. |
![]() ![]() | Release | Security Critical. Decrements the reference count on the specified interface. |
![]() ![]() | ReleaseComObject | Security Critical. Decrements the reference count of the specified [7e542583-1e31-4e10-b523-8cf2f29cb4a4] (RCW) associated with the specified COM object. |
![]() ![]() | SizeOf(Object) | Returns the unmanaged size of an object in bytes. |
![]() ![]() | SizeOf(Type) | Returns the size of an unmanaged type in bytes. |
![]() ![]() | StructureToPtr | Security Critical. Marshals data from a managed object to an unmanaged block of memory. |
![]() ![]() | ThrowExceptionForHR(Int32) | Security Critical. Throws an exception with a specific failure HRESULT value. |
![]() ![]() | ThrowExceptionForHR(Int32, IntPtr) | Security Critical. Throws an exception with a specific failure HRESULT. |
![]() ![]() | UnsafeAddrOfPinnedArrayElement | Security Critical. Gets the address of the element at the specified index inside the specified array. |
![]() ![]() | WriteByte(IntPtr, Byte) | Security Critical. Writes a single byte value to unmanaged memory. |
![]() ![]() | WriteByte(IntPtr, Int32, Byte) | Security Critical. Writes a single byte value to unmanaged memory. |
![]() ![]() | WriteInt16(IntPtr, Int16) | Security Critical. Writes a 16-bit integer value to unmanaged memory. |
![]() ![]() | WriteInt16(IntPtr, Int32, Int16) | Security Critical. Writes a 16-bit signed integer value into unmanaged memory. |
![]() ![]() | WriteInt32(IntPtr, Int32) | Security Critical. Writes a 32-bit signed integer value to unmanaged memory. |
![]() ![]() | WriteInt32(IntPtr, Int32, Int32) | Security Critical. Writes a 32-bit signed integer value into unmanaged memory. |
![]() ![]() | WriteInt64(IntPtr, Int64) | Security Critical. Writes a 64-bit signed integer value to unmanaged memory. |
![]() ![]() | WriteInt64(IntPtr, Int32, Int64) | Security Critical. Writes a 64-bit signed integer value to unmanaged memory. |
![]() ![]() | WriteIntPtr | Security Critical. Writes a processor native sized integer value into unmanaged memory. |
| Name | Description | |
|---|---|---|
![]() ![]() | SystemDefaultCharSize | Represents the default character size on the system; the default is 2 for Unicode systems and 1 for ANSI systems. This field is read-only. |
Show:


