Marshal Class
Silverlight
This type can be used only by trusted applications. If you try to use its members in a partial-trust application, your code will throw a MethodAccessException exception. This type is security-critical, which restricts its use.
Assembly: mscorlib (in mscorlib.dll)
Top
Top
[SECURITY CRITICAL]
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.
Namespace:
System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
The Marshal type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() ![]() ![]() | Copy(Byte[], Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed 8-bit unsigned integer array to an unmanaged memory pointer. |
![]() ![]() ![]() ![]() | Copy(Char[], Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed character array to an unmanaged memory pointer. |
![]() ![]() ![]() ![]() | Copy(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(Int16[], Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed 16-bit signed integer array to an unmanaged memory pointer. |
![]() ![]() ![]() ![]() | Copy(Int32[], Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed 32-bit signed integer array to an unmanaged memory pointer. |
![]() ![]() ![]() ![]() | Copy(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, Byte[], Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed 8-bit unsigned integer array. |
![]() ![]() ![]() ![]() | Copy(IntPtr, Char[], Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed character array. |
![]() ![]() ![]() ![]() | Copy(IntPtr, Double[], Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed double-precision floating-point number array. |
![]() ![]() ![]() ![]() | Copy(IntPtr, Int16[], Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed 16-bit signed integer array. |
![]() ![]() ![]() ![]() | Copy(IntPtr, Int32[], Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed 32-bit signed integer array. |
![]() ![]() ![]() ![]() | Copy(IntPtr, Int64[], Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed 64-bit signed integer array. |
![]() ![]() ![]() ![]() | Copy(IntPtr, Single[], Int32, Int32) | Security Critical. Copies data from an unmanaged memory pointer to a managed single-precision floating-point number array. |
![]() ![]() ![]() ![]() | Copy(Single[], Int32, IntPtr, Int32) | Security Critical. Copies data from a one-dimensional, managed single-precision floating-point number array to an unmanaged memory pointer. |
![]() ![]() | GetDelegateForFunctionPointer | Security Critical. Converts an unmanaged function pointer to a delegate. |
![]() ![]() ![]() | GetExceptionForHR | Security Critical. Converts the specified HRESULT error code to a corresponding 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. |
![]() ![]() ![]() ![]() | GetLastWin32Error | Security Critical. Returns the error code returned by the last unmanaged function called using platform invoke that has the DllImportAttribute.SetLastError flag set. |
![]() ![]() ![]() ![]() | 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. |
![]() ![]() ![]() ![]() | 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 | Security Critical. Reads a processor native sized integer from unmanaged memory. |
![]() ![]() ![]() ![]() | 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. |
![]() ![]() ![]() ![]() | 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. |
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.

