Revert "PR-5360"
[platform/core/csapi/tizenfx.git] / pkg / Tizen.NET.API11 / build / tizen11.0 / ref / System.Runtime.InteropServices.xml
index 20b2766..91cb8a8 100755 (executable)
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
-        <paramref name="offset" /> or <paramref name="capacity" /> is less than zero.  
-  
- -or-  
-  
- <paramref name="access" /> is not a valid <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedFileAccess" /> enumeration value.</exception>
+        <paramref name="offset" /> or <paramref name="capacity" /> is less than zero.
+-or-
+<paramref name="access" /> is not a valid <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedFileAccess" /> enumeration value.</exception>
       <exception cref="T:System.InvalidOperationException">
         <paramref name="offset" /> plus <paramref name="capacity" /> would wrap around the high end of the address space.</exception>
     </member>
+    <member name="P:System.IO.UnmanagedMemoryAccessor.CanRead">
+      <summary>Determines whether the accessor is readable.</summary>
+      <returns>
+        <see langword="true" /> if the accessor is readable; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.IO.UnmanagedMemoryAccessor.CanWrite">
+      <summary>Determines whether the accessory is writable.</summary>
+      <returns>
+        <see langword="true" /> if the accessor is writable; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.IO.UnmanagedMemoryAccessor.Capacity">
+      <summary>Gets the capacity of the accessor.</summary>
+      <returns>The capacity of the accessor.</returns>
+    </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.Dispose">
       <summary>Releases all resources used by the <see cref="T:System.IO.UnmanagedMemoryAccessor" />.</summary>
     </member>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
-        <paramref name="offset" /> or <paramref name="capacity" /> is less than zero.  
-  
- -or-  
-  
- <paramref name="access" /> is not a valid <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedFileAccess" /> enumeration value.</exception>
+        <paramref name="offset" /> or <paramref name="capacity" /> is less than zero.
+-or-
+<paramref name="access" /> is not a valid <see cref="T:System.IO.MemoryMappedFiles.MemoryMappedFileAccess" /> enumeration value.</exception>
       <exception cref="T:System.InvalidOperationException">
         <paramref name="offset" /> plus <paramref name="capacity" /> would wrap around the high end of the address space.</exception>
     </member>
+    <member name="P:System.IO.UnmanagedMemoryAccessor.IsOpen">
+      <summary>Determines whether the accessor is currently open by a process.</summary>
+      <returns>
+        <see langword="true" /> if the accessor is open; otherwise, <see langword="false" />.</returns>
+    </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.Read``1(System.Int64,``0@)">
       <summary>Reads a structure of type <paramref name="T" /> from the accessor into a provided reference.</summary>
       <param name="position">The position in the accessor at which to begin reading.</param>
       <param name="structure">The structure to contain the read data.</param>
       <typeparam name="T">The type of structure.</typeparam>
-      <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read in a structure of type <paramref name="T" />.  
-  
- -or-  
-  
- <see langword="T" /> is a value type that contains one or more reference types.</exception>
+      <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read in a structure of type <paramref name="T" />.
+-or-
+<see langword="T" /> is a value type that contains one or more reference types.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <param name="offset">The index in <paramref name="array" /> in which to place the first copied structure.</param>
       <param name="count">The number of structures of type <c>T</c> to read from the accessor.</param>
       <typeparam name="T">The type of structure.</typeparam>
+      <returns>The number of structures read into <paramref name="array" />. This value can be less than <paramref name="count" /> if there are fewer structures available, or zero if the end of the accessor is reached.</returns>
       <exception cref="T:System.ArgumentException">
         <paramref name="array" /> is not large enough to contain <paramref name="count" /> of structures (starting from <paramref name="position" />).</exception>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The number of structures read into <paramref name="array" />. This value can be less than <paramref name="count" /> if there are fewer structures available, or zero if the end of the accessor is reached.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadBoolean(System.Int64)">
       <summary>Reads a Boolean value from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>
+        <see langword="true" /> or <see langword="false" />.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>
-        <see langword="true" /> or <see langword="false" />.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadByte(System.Int64)">
       <summary>Reads a byte value from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadChar(System.Int64)">
       <summary>Reads a character from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadDecimal(System.Int64)">
       <summary>Reads a decimal value from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
-      <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.  
-  
- -or-  
-  
- The decimal to read is invalid.</exception>
+      <returns>The value that was read.</returns>
+      <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.
+-or-
+The decimal to read is invalid.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadDouble(System.Int64)">
       <summary>Reads a double-precision floating-point value from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadInt16(System.Int64)">
       <summary>Reads a 16-bit integer from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadInt32(System.Int64)">
       <summary>Reads a 32-bit integer from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadInt64(System.Int64)">
       <summary>Reads a 64-bit integer from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadSByte(System.Int64)">
       <summary>Reads an 8-bit signed integer from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadSingle(System.Int64)">
       <summary>Reads a single-precision floating-point value from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadUInt16(System.Int64)">
       <summary>Reads an unsigned 16-bit integer from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadUInt32(System.Int64)">
       <summary>Reads an unsigned 32-bit integer from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.ReadUInt64(System.Int64)">
       <summary>Reads an unsigned 64-bit integer from the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin reading.</param>
+      <returns>The value that was read.</returns>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to read a value.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support reading.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
-      <returns>The value that was read.</returns>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.Write(System.Int64,System.Boolean)">
       <summary>Writes a Boolean value into the accessor.</summary>
       <summary>Writes a decimal value into the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin writing.</param>
       <param name="value">The value to write.</param>
-      <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to write a value.  
-  
- -or-  
-  
- The decimal is invalid.</exception>
+      <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to write a value.
+-or-
+The decimal is invalid.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="position" /> is less than zero or greater than the capacity of the accessor.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support writing.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.Write(System.Int64,System.Double)">
-      <summary>Writes a <see cref="T:System.Double" /> value into the accessor.</summary>
+      <summary>Writes a <see langword="Double" /> value into the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin writing.</param>
       <param name="value">The value to write.</param>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to write a value.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
     </member>
     <member name="M:System.IO.UnmanagedMemoryAccessor.Write(System.Int64,System.Single)">
-      <summary>Writes a <see cref="T:System.Single" /> into the accessor.</summary>
+      <summary>Writes a <see langword="Single" /> into the accessor.</summary>
       <param name="position">The number of bytes into the accessor at which to begin writing.</param>
       <param name="value">The value to write.</param>
       <exception cref="T:System.ArgumentException">There are not enough bytes after <paramref name="position" /> to write a value.</exception>
       <typeparam name="T">The type of structure.</typeparam>
       <exception cref="T:System.ArgumentException">There are not enough bytes in the accessor after <paramref name="position" /> to write the number of structures specified by <paramref name="count" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
-        <paramref name="position" /> is less than zero or greater than the capacity of the accessor.  
-  
- -or-  
-  
- <paramref name="offset" /> or <paramref name="count" /> is less than zero.</exception>
+        <paramref name="position" /> is less than zero or greater than the capacity of the accessor.
+-or-
+<paramref name="offset" /> or <paramref name="count" /> is less than zero.</exception>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="array" /> is <see langword="null" />.</exception>
       <exception cref="T:System.NotSupportedException">The accessor does not support writing.</exception>
       <exception cref="T:System.ObjectDisposedException">The accessor has been disposed.</exception>
     </member>
-    <member name="P:System.IO.UnmanagedMemoryAccessor.CanRead">
-      <summary>Determines whether the accessor is readable.</summary>
+    <member name="T:System.IO.UnmanagedMemoryStream">
+      <summary>Provides access to unmanaged blocks of memory from managed code.</summary>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.#ctor">
+      <summary>Initializes a new instance of the <see cref="T:System.IO.UnmanagedMemoryStream" /> class.</summary>
+      <exception cref="T:System.Security.SecurityException">The user does not have the required permission.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.#ctor(System.Byte*,System.Int64)">
+      <summary>Initializes a new instance of the <see cref="T:System.IO.UnmanagedMemoryStream" /> class using the specified location and memory length.</summary>
+      <param name="pointer">A pointer to an unmanaged memory location.</param>
+      <param name="length">The length of the memory to use.</param>
+      <exception cref="T:System.Security.SecurityException">The user does not have the required permission.</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="pointer" /> value is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="length" /> value is less than zero.
+-or-
+The <paramref name="length" /> is large enough to cause an overflow.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.#ctor(System.Byte*,System.Int64,System.Int64,System.IO.FileAccess)">
+      <summary>Initializes a new instance of the <see cref="T:System.IO.UnmanagedMemoryStream" /> class using the specified location, memory length, total amount of memory, and file access values.</summary>
+      <param name="pointer">A pointer to an unmanaged memory location.</param>
+      <param name="length">The length of the memory to use.</param>
+      <param name="capacity">The total amount of memory assigned to the stream.</param>
+      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values.</param>
+      <exception cref="T:System.Security.SecurityException">The user does not have the required permission.</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="pointer" /> value is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="length" /> value is less than zero.
+-or-
+The <paramref name="capacity" /> value is less than zero.
+-or-
+The <paramref name="length" /> value is greater than the <paramref name="capacity" /> value.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.#ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64)">
+      <summary>Initializes a new instance of the <see cref="T:System.IO.UnmanagedMemoryStream" /> class in a safe buffer with a specified offset and length.</summary>
+      <param name="buffer">The buffer to contain the unmanaged memory stream.</param>
+      <param name="offset">The byte position in the buffer at which to start the unmanaged memory stream.</param>
+      <param name="length">The length of the unmanaged memory stream.</param>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.#ctor(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess)">
+      <summary>Initializes a new instance of the <see cref="T:System.IO.UnmanagedMemoryStream" /> class in a safe buffer with a specified offset, length, and file access.</summary>
+      <param name="buffer">The buffer to contain the unmanaged memory stream.</param>
+      <param name="offset">The byte position in the buffer at which to start the unmanaged memory stream.</param>
+      <param name="length">The length of the unmanaged memory stream.</param>
+      <param name="access">The mode of file access to the unmanaged memory stream.</param>
+    </member>
+    <member name="P:System.IO.UnmanagedMemoryStream.CanRead">
+      <summary>Gets a value indicating whether a stream supports reading.</summary>
       <returns>
-        <see langword="true" /> if the accessor is readable; otherwise, <see langword="false" />.</returns>
+        <see langword="false" /> if the object was created by a constructor with an <paramref name="access" /> parameter that did not include reading the stream and if the stream is closed; otherwise, <see langword="true" />.</returns>
     </member>
-    <member name="P:System.IO.UnmanagedMemoryAccessor.CanWrite">
-      <summary>Determines whether the accessory is writable.</summary>
+    <member name="P:System.IO.UnmanagedMemoryStream.CanSeek">
+      <summary>Gets a value indicating whether a stream supports seeking.</summary>
       <returns>
-        <see langword="true" /> if the accessor is writable; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="P:System.IO.UnmanagedMemoryAccessor.Capacity">
-      <summary>Gets the capacity of the accessor.</summary>
-      <returns>The capacity of the accessor.</returns>
+        <see langword="false" /> if the stream is closed; otherwise, <see langword="true" />.</returns>
     </member>
-    <member name="P:System.IO.UnmanagedMemoryAccessor.IsOpen">
-      <summary>Determines whether the accessor is currently open by a process.</summary>
+    <member name="P:System.IO.UnmanagedMemoryStream.CanWrite">
+      <summary>Gets a value indicating whether a stream supports writing.</summary>
       <returns>
-        <see langword="true" /> if the accessor is open; otherwise, <see langword="false" />.</returns>
+        <see langword="false" /> if the object was created by a constructor with an <paramref name="access" /> parameter value that supports writing or was created by a constructor that had no parameters, or if the stream is closed; otherwise, <see langword="true" />.</returns>
+    </member>
+    <member name="P:System.IO.UnmanagedMemoryStream.Capacity">
+      <summary>Gets the stream length (size) or the total amount of memory assigned to a stream (capacity).</summary>
+      <returns>The size or capacity of the stream.</returns>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.Dispose(System.Boolean)">
+      <summary>Releases the unmanaged resources used by the <see cref="T:System.IO.UnmanagedMemoryStream" /> and optionally releases the managed resources.</summary>
+      <param name="disposing">
+        <see langword="true" /> to release both managed and unmanaged resources; <see langword="false" /> to release only unmanaged resources.</param>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.Flush">
+      <summary>Overrides the <see cref="M:System.IO.Stream.Flush" /> method so that no action is performed.</summary>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.FlushAsync(System.Threading.CancellationToken)">
+      <summary>Overrides the <see cref="M:System.IO.Stream.FlushAsync(System.Threading.CancellationToken)" /> method so that the operation is cancelled if specified, but no other action is performed.</summary>
+      <param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
+      <returns>A task that represents the asynchronous flush operation.</returns>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.Initialize(System.Byte*,System.Int64,System.Int64,System.IO.FileAccess)">
+      <summary>Initializes a new instance of the <see cref="T:System.IO.UnmanagedMemoryStream" /> class by using a pointer to an unmanaged memory location.</summary>
+      <param name="pointer">A pointer to an unmanaged memory location.</param>
+      <param name="length">The length of the memory to use.</param>
+      <param name="capacity">The total amount of memory assigned to the stream.</param>
+      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values.</param>
+      <exception cref="T:System.Security.SecurityException">The user does not have the required permission.</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="pointer" /> value is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="length" /> value is less than zero.
+-or-
+The <paramref name="capacity" /> value is less than zero.
+-or-
+The <paramref name="length" /> value is large enough to cause an overflow.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.Initialize(System.Runtime.InteropServices.SafeBuffer,System.Int64,System.Int64,System.IO.FileAccess)">
+      <summary>Initializes a new instance of the <see cref="T:System.IO.UnmanagedMemoryStream" /> class in a safe buffer with a specified offset, length, and file access.</summary>
+      <param name="buffer">The buffer to contain the unmanaged memory stream.</param>
+      <param name="offset">The byte position in the buffer at which to start the unmanaged memory stream.</param>
+      <param name="length">The length of the unmanaged memory stream.</param>
+      <param name="access">The mode of file access to the unmanaged memory stream.</param>
+    </member>
+    <member name="P:System.IO.UnmanagedMemoryStream.Length">
+      <summary>Gets the length of the data in a stream.</summary>
+      <returns>The length of the data in the stream.</returns>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+    </member>
+    <member name="P:System.IO.UnmanagedMemoryStream.Position">
+      <summary>Gets or sets the current position in a stream.</summary>
+      <returns>The current position in the stream.</returns>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The position is set to a value that is less than zero, or the position is larger than <see cref="F:System.Int32.MaxValue" /> or results in overflow when added to the current pointer.</exception>
+    </member>
+    <member name="P:System.IO.UnmanagedMemoryStream.PositionPointer">
+      <summary>Gets or sets a byte pointer to a stream based on the current position in the stream.</summary>
+      <returns>A byte pointer.</returns>
+      <exception cref="T:System.IndexOutOfRangeException">The current position is larger than the capacity of the stream.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The position is being set is not a valid position in the current stream.</exception>
+      <exception cref="T:System.IO.IOException">The pointer is being set to a lower value than the starting position of the stream.</exception>
+      <exception cref="T:System.NotSupportedException">The stream was initialized for use with a <see cref="T:System.Runtime.InteropServices.SafeBuffer" />. The <see cref="P:System.IO.UnmanagedMemoryStream.PositionPointer" /> property is valid only for streams that are initialized with a <see cref="T:System.Byte" /> pointer.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.Read(System.Byte[],System.Int32,System.Int32)">
+      <summary>Reads the specified number of bytes into the specified array.</summary>
+      <param name="buffer">When this method returns, contains the specified byte array with the values between <paramref name="offset" /> and (<paramref name="offset" /> + <paramref name="count" /> - 1) replaced by the bytes read from the current source. This parameter is passed uninitialized.</param>
+      <param name="offset">The zero-based byte offset in <paramref name="buffer" /> at which to begin storing the data read from the current stream.</param>
+      <param name="count">The maximum number of bytes to read from the current stream.</param>
+      <returns>The total number of bytes read into the buffer. This can be less than the number of bytes requested if that many bytes are not currently available, or zero (0) if the end of the stream has been reached.</returns>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+      <exception cref="T:System.NotSupportedException">The underlying memory does not support reading.
+-or-
+The <see cref="P:System.IO.UnmanagedMemoryStream.CanRead" /> property is set to <see langword="false" />.</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter is set to <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> parameter is less than zero.
+-or-
+The <paramref name="count" /> parameter is less than zero.</exception>
+      <exception cref="T:System.ArgumentException">The length of the buffer array minus the <paramref name="offset" /> parameter is less than the <paramref name="count" /> parameter.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.Read(System.Span{System.Byte})">
+      <summary>Reads all the bytes of this unmanaged memory stream into the specified span of bytes.</summary>
+      <param name="destination">When this method returns, this span contains all the bytes from the unmanaged memory stream.</param>
+      <returns>The total number of bytes read into the destination.</returns>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
+      <summary>Asynchronously reads the specified number of bytes into the specified array.</summary>
+      <param name="buffer">The buffer to write the data into.</param>
+      <param name="offset">The byte offset in <paramref name="buffer" /> at which to begin writing data from the stream.</param>
+      <param name="count">The maximum number of bytes to read.</param>
+      <param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
+      <returns>A task that represents the asynchronous read operation. The value of the <paramref name="TResult" /> parameter contains the total number of bytes read into the buffer. The result value can be less than the number of bytes requested if the number of bytes currently available is less than the requested number, or it can be 0 (zero) if the end of the stream has been reached.</returns>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.ReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
+      <summary>Asynchronously reads the unmanaged memory stream bytes into the memory region.</summary>
+      <param name="buffer">When the asynchronous method finishes, this memory region contains all the bytes read from the unmanaged memory stream.</param>
+      <param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
+      <returns>A task that represents the asynchronous read operation, and wraps the total number of bytes read into the buffer.</returns>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.ReadByte">
+      <summary>Reads a byte from a stream and advances the position within the stream by one byte, or returns -1 if at the end of the stream.</summary>
+      <returns>The unsigned byte cast to an <see cref="T:System.Int32" /> object, or -1 if at the end of the stream.</returns>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+      <exception cref="T:System.NotSupportedException">The underlying memory does not support reading.
+-or-
+The current position is at the end of the stream.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.Seek(System.Int64,System.IO.SeekOrigin)">
+      <summary>Sets the current position of the current stream to the given value.</summary>
+      <param name="offset">The point relative to <c>origin</c> to begin seeking from.</param>
+      <param name="loc">Specifies the beginning, the end, or the current position as a reference point for <c>origin</c>, using a value of type <see cref="T:System.IO.SeekOrigin" />.</param>
+      <returns>The new position in the stream.</returns>
+      <exception cref="T:System.IO.IOException">An attempt was made to seek before the beginning of the stream.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> value is larger than the maximum size of the stream.</exception>
+      <exception cref="T:System.ArgumentException">
+        <paramref name="loc" /> is invalid.</exception>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.SetLength(System.Int64)">
+      <summary>Sets the length of a stream to a specified value.</summary>
+      <param name="value">The length of the stream.</param>
+      <exception cref="T:System.IO.IOException">An I/O error has occurred.</exception>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+      <exception cref="T:System.NotSupportedException">The underlying memory does not support writing.
+-or-
+An attempt is made to write to the stream and the <see cref="P:System.IO.UnmanagedMemoryStream.CanWrite" /> property is <see langword="false" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The specified <paramref name="value" /> exceeds the capacity of the stream.
+-or-
+The specified <paramref name="value" /> is negative.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.Write(System.Byte[],System.Int32,System.Int32)">
+      <summary>Writes a block of bytes to the current stream using data from a buffer.</summary>
+      <param name="buffer">The byte array from which to copy bytes to the current stream.</param>
+      <param name="offset">The offset in the buffer at which to begin copying bytes to the current stream.</param>
+      <param name="count">The number of bytes to write to the current stream.</param>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+      <exception cref="T:System.NotSupportedException">The underlying memory does not support writing.
+-or-
+An attempt is made to write to the stream and the <see cref="P:System.IO.UnmanagedMemoryStream.CanWrite" /> property is <see langword="false" />.
+-or-
+The <paramref name="count" /> value is greater than the capacity of the stream.
+-or-
+The position is at the end of the stream capacity.</exception>
+      <exception cref="T:System.IO.IOException">An I/O error occurs.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">One of the specified parameters is less than zero.</exception>
+      <exception cref="T:System.ArgumentException">The <paramref name="offset" /> parameter minus the length of the <paramref name="buffer" /> parameter is less than the <paramref name="count" /> parameter.</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter is <see langword="null" />.</exception>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.Write(System.ReadOnlySpan{System.Byte})">
+      <summary>Writes a block of bytes to the current unmanaged memory stream using data from the provided span of bytes.</summary>
+      <param name="source">The span of bytes from which to copy bytes to the current unmanaged memory stream.</param>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
+      <summary>Asynchronously writes a sequence of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.</summary>
+      <param name="buffer">The buffer to write data from.</param>
+      <param name="offset">The zero-based byte offset in <paramref name="buffer" /> from which to begin copying bytes to the stream.</param>
+      <param name="count">The maximum number of bytes to write.</param>
+      <param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
+      <returns>A task that represents the asynchronous write operation.</returns>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.WriteAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
+      <summary>Asynchronously writes a span of bytes to the current stream, advances the current position within this stream by the number of bytes written, and monitors cancellation requests.</summary>
+      <param name="buffer">The buffer to write data from.</param>
+      <param name="cancellationToken">The token to monitor for cancellation requests. The default value is <see cref="P:System.Threading.CancellationToken.None" />.</param>
+      <returns>A task that represents the asynchronous write operation.</returns>
+    </member>
+    <member name="M:System.IO.UnmanagedMemoryStream.WriteByte(System.Byte)">
+      <summary>Writes a byte to the current position in the file stream.</summary>
+      <param name="value">A byte value written to the stream.</param>
+      <exception cref="T:System.ObjectDisposedException">The stream is closed.</exception>
+      <exception cref="T:System.NotSupportedException">The underlying memory does not support writing.
+-or-
+An attempt is made to write to the stream and the <see cref="P:System.IO.UnmanagedMemoryStream.CanWrite" /> property is <see langword="false" />.
+-or-
+The current position is at the end of the capacity of the stream.</exception>
+      <exception cref="T:System.IO.IOException">The supplied <paramref name="value" /> causes the stream exceed its maximum capacity.</exception>
     </member>
     <member name="T:System.Runtime.CompilerServices.IDispatchConstantAttribute">
       <summary>Indicates that the default value for the attributed field or parameter is an instance of <see cref="T:System.Runtime.InteropServices.DispatchWrapper" />, where the <see cref="P:System.Runtime.InteropServices.DispatchWrapper.WrappedObject" /> is <see langword="null" />.</summary>
     <member name="T:System.Runtime.InteropServices.BestFitMappingAttribute">
       <summary>Controls whether Unicode characters are converted to the closest matching ANSI characters.</summary>
     </member>
-    <member name="F:System.Runtime.InteropServices.BestFitMappingAttribute.ThrowOnUnmappableChar">
-      <summary>Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI '?' character.</summary>
-    </member>
     <member name="M:System.Runtime.InteropServices.BestFitMappingAttribute.#ctor(System.Boolean)">
       <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.BestFitMappingAttribute" /> class set to the value of the <see cref="P:System.Runtime.InteropServices.BestFitMappingAttribute.BestFitMapping" /> property.</summary>
       <param name="BestFitMapping">
       <returns>
         <see langword="true" /> if best-fit mapping is enabled; otherwise, <see langword="false" />. The default is <see langword="true" />.</returns>
     </member>
+    <member name="F:System.Runtime.InteropServices.BestFitMappingAttribute.ThrowOnUnmappableChar">
+      <summary>Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI '?' character.</summary>
+    </member>
     <member name="T:System.Runtime.InteropServices.BStrWrapper">
       <summary>Marshals data of type <see langword="VT_BSTR" /> from managed to unmanaged code. This class cannot be inherited.</summary>
     </member>
       <summary>This calling convention is not supported.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.CallingConvention.StdCall">
-      <summary>The callee cleans the stack.</summary>
+      <summary>The callee cleans the stack. This is the default convention for calling unmanaged functions with platform invoke.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.CallingConvention.ThisCall">
       <summary>The first parameter is the <see langword="this" /> pointer and is stored in register ECX. Other parameters are pushed on the stack. This calling convention is used to call methods on classes exported from an unmanaged DLL.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.CallingConvention.Winapi">
-      <summary>This member is not actually a calling convention, but instead uses the default platform calling convention. For example, on Windows x86 the default is <see cref="F:System.Runtime.InteropServices.CallingConvention.StdCall" /> and on Linux x86 it is <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl" />.</summary>
+      <summary>This member is not actually a calling convention, but instead uses the default platform calling convention. For example, on Windows the default is <see cref="F:System.Runtime.InteropServices.CallingConvention.StdCall" /> and on Windows CE.NET it is <see cref="F:System.Runtime.InteropServices.CallingConvention.Cdecl" />.</summary>
     </member>
     <member name="T:System.Runtime.InteropServices.ClassInterfaceAttribute">
       <summary>Indicates the type of class interface to be generated for a class exposed to COM, if an interface is generated at all.</summary>
       <summary>Identifies the type of class interface that is generated for a class.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch">
-      <summary>
-        <para>Indicates that the class only supports late binding for COM clients. A <see langword="dispinterface" /> for the class is automatically exposed to COM clients on request. The type library produced by Tlbexp.exe (Type Library Exporter) does not contain type information for the <see langword="dispinterface" /> in order to prevent clients from caching the DISPIDs of the interface. The <see langword="dispinterface" /> does not exhibit the versioning problems described in <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" /> because clients can only late-bind to the interface.</para>
-        <para>This is the default setting for <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" />.</para>
-      </summary>
+      <summary>Indicates that the class only supports late binding for COM clients. A <see langword="dispinterface" /> for the class is automatically exposed to COM clients on request. The type library produced by Tlbexp.exe (Type Library Exporter) does not contain type information for the <see langword="dispinterface" /> in order to prevent clients from caching the DISPIDs of the interface. The <see langword="dispinterface" /> does not exhibit the versioning problems described in <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" /> because clients can only late-bind to the interface.
+This is the default setting for <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" />.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.ClassInterfaceType.AutoDual">
       <summary>Indicates that a dual class interface is automatically generated for the class and exposed to COM. Type information is produced for the class interface and published in the type library. Using <see langword="AutoDual" /> is strongly discouraged because of the versioning limitations described in <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" />.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.ClassInterfaceType.None">
-      <summary>
-        <para>Indicates that no class interface is generated for the class. If no interfaces are implemented explicitly, the class can only provide late-bound access through the <see langword="IDispatch" /> interface. This is the recommended setting for <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" />. Using <see langword="ClassInterfaceType.None" /> is the only way to expose functionality through interfaces implemented explicitly by the class.</para>
-        <para>Tlbexp.exe (Type Library Exporter) exposes the first public, COM-visible interface implemented by the class as the default interface of the coclass. In .NET Framework 2.0 and later versions, you can specify the default interface exposed to COM by using the <see cref="T:System.Runtime.InteropServices.ComDefaultInterfaceAttribute" /> attribute. If the class implements no interfaces, the first public, COM-visible interface implemented by a base class becomes the default interface (starting with the most recently derived base class and working backward). Tlbexp.exe exposes <see langword="_Object" /> as the default interface if neither the class nor its base classes implement interfaces.</para>
-      </summary>
-    </member>
-    <member name="T:System.Runtime.InteropServices.CLong">
-      <summary>
-        <see cref="T:System.Runtime.InteropServices.CLong" /> is an immutable value type that represents the <c>long</c> type in C and C++.
-      It is meant to be used as an exchange type at the managed/unmanaged boundary to accurately represent in managed code unmanaged APIs that use the <c>long</c> type.
-      This type has 32-bits of storage on all Windows platforms and 32-bit Unix-based platforms.
-      It has 64-bits of storage on 64-bit Unix platforms.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CLong.#ctor(System.Int32)">
-      <summary>Constructs an instance from a 32-bit integer.</summary>
-      <param name="value">The integer value.</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CLong.#ctor(System.IntPtr)">
-      <summary>Constructs an instance from a native sized integer.</summary>
-      <param name="value">The integer value.</param>
-      <exception cref="T:System.OverflowException">
-        <paramref name="value" /> is outside the range of the underlying storage type.</exception>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CLong.Equals(System.Object)">
-      <summary>Returns a value indicating whether this instance is equal to a specified object.</summary>
-      <param name="o">An object to compare with this instance.</param>
-      <returns>
-        <see langword="true" /> if <paramref name="o" /> is an instance of <see cref="T:System.Runtime.InteropServices.CLong" /> and equals the value of this instance; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CLong.Equals(System.Runtime.InteropServices.CLong)">
-      <summary>Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Runtime.InteropServices.CLong" /> value.</summary>
-      <param name="other">A <see cref="T:System.Runtime.InteropServices.CLong" /> value to compare to this instance.</param>
-      <returns>
-        <see langword="true" /> if <paramref name="other" /> has the same value as this instance; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CLong.GetHashCode">
-      <summary>Returns the hash code for this instance.</summary>
-      <returns>A 32-bit signed integer hash code.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CLong.ToString">
-      <summary>Converts the numeric value of this instance to its equivalent string representation.</summary>
-      <returns>The string representation of the value of this instance, consisting of a negative sign if the value is negative, and a sequence of digits ranging from 0 to 9 with no leading zeroes.</returns>
-    </member>
-    <member name="P:System.Runtime.InteropServices.CLong.Value">
-      <summary>The underlying integer value of this instance.</summary>
+      <summary>Indicates that no class interface is generated for the class. If no interfaces are implemented explicitly, the class can only provide late-bound access through the <see langword="IDispatch" /> interface. This is the recommended setting for <see cref="T:System.Runtime.InteropServices.ClassInterfaceAttribute" />. Using <see langword="ClassInterfaceType.None" /> is the only way to expose functionality through interfaces implemented explicitly by the class.</summary>
     </member>
     <member name="T:System.Runtime.InteropServices.CoClassAttribute">
       <summary>Specifies the class identifier of a coclass imported from a type library.</summary>
       <summary>Gets the class identifier of the original coclass.</summary>
       <returns>A <see cref="T:System.Type" /> containing the class identifier of the original coclass.</returns>
     </member>
-    <member name="T:System.Runtime.InteropServices.CollectionsMarshal">
-      <summary>An unsafe class that provides a set of methods to access the underlying data representations of collections.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CollectionsMarshal.AsSpan``1(System.Collections.Generic.List{``0})">
-      <summary>Gets a <see cref="T:System.Span`1" /> view over the data in a list.
- Items should not be added or removed from the <see cref="T:System.Collections.Generic.List`1" /> while the <see cref="T:System.Span`1" /> is in use.</summary>
-      <param name="list">List from which to create the <see cref="T:System.Span`1" />.</param>
-      <typeparam name="T">The type of items in the list.</typeparam>
-      <returns>A <see cref="T:System.Span`1" /> instance over the <see cref="T:System.Collections.Generic.List`1" />.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CollectionsMarshal.GetValueRefOrAddDefault``2(System.Collections.Generic.Dictionary{``0,``1},``0,System.Boolean@)">
-      <summary>Gets a reference to a <typeparamref name="TValue" /> in the specified dictionary, adding a new entry with a default value if the key does not exist.</summary>
-      <param name="dictionary">The dictionary to get the reference to <typeparamref name="TValue" /> from.</param>
-      <param name="key">The key used for lookup.</param>
-      <param name="exists">When this method returns, contains <see langword="true" /> if <paramref name="key" /> already existed in the dictionary, and <see langword="false" /> if a new entry was added.</param>
-      <typeparam name="TKey">The type of a key.</typeparam>
-      <typeparam name="TValue">The type of a value.</typeparam>
-      <returns>A  reference to a <typeparamref name="TValue" /> in the specified dictionary.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CollectionsMarshal.GetValueRefOrNullRef``2(System.Collections.Generic.Dictionary{``0,``1},``0)">
-      <summary>Gets either a reference to a <typeparamref name="TValue" /> in the <see cref="T:System.Collections.Generic.Dictionary`2" /> or a reference <see langword="null" /> if it does not exist in the <paramref name="dictionary" />.</summary>
-      <param name="dictionary">The dictionary to get the ref to <typeparamref name="TValue" /> from.</param>
-      <param name="key">The key used for lookup.</param>
-      <typeparam name="TKey">The type of a key.</typeparam>
-      <typeparam name="TValue">The type of a value.</typeparam>
-      <returns>A reference to a <typeparamref name="TValue" /> in the <see cref="T:System.Collections.Generic.Dictionary`2" /> or a reference <see langword="null" /> if it does not exist in the <paramref name="dictionary" />..</returns>
-    </member>
     <member name="T:System.Runtime.InteropServices.ComAliasNameAttribute">
       <summary>Indicates the COM alias for a parameter or field type.</summary>
     </member>
       <param name="target">The target object that the event delegate should bind to.</param>
       <param name="handler">The event delegate.</param>
     </member>
+    <member name="P:System.Runtime.InteropServices.ComAwareEventInfo.Attributes">
+      <summary>Gets the attributes for this event.</summary>
+      <returns>The read-only attributes for this event.</returns>
+    </member>
+    <member name="P:System.Runtime.InteropServices.ComAwareEventInfo.DeclaringType">
+      <summary>Gets the class that declares this member.</summary>
+      <returns>The <see cref="T:System.Type" /> object for the class that declares this member.</returns>
+    </member>
     <member name="M:System.Runtime.InteropServices.ComAwareEventInfo.GetAddMethod(System.Boolean)">
       <summary>Gets the method that was used to add an event handler delegate to the event source.</summary>
       <param name="nonPublic">
         <see langword="true" /> to return non-public methods; otherwise, <see langword="false" />.</param>
+      <returns>The method that was used to add an event handler delegate to the event source.</returns>
       <exception cref="T:System.MethodAccessException">
         <paramref name="nonPublic" /> is <see langword="true" /> and the method used to add an event handler delegate is non-public, but the caller does not have permission to reflect on non-public methods.</exception>
-      <returns>The method that was used to add an event handler delegate to the event source.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComAwareEventInfo.GetCustomAttributes(System.Boolean)">
       <summary>When overridden in a derived class, gets an array that contains all the custom attributes that are applied to this member.</summary>
       <param name="inherit">
         <see langword="true" /> to search this member's inheritance chain to find the attributes; otherwise, <see langword="false" />.</param>
+      <returns>An array that contains all the custom attributes, or an array that has no elements if no attributes were defined.</returns>
       <exception cref="T:System.InvalidOperationException">This member belongs to a type that is loaded into the reflection-only context. See How to: Load Assemblies into the Reflection-Only Context.</exception>
       <exception cref="T:System.TypeLoadException">A custom attribute type cannot be loaded.</exception>
-      <returns>An array that contains all the custom attributes, or an array that has no elements if no attributes were defined.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComAwareEventInfo.GetCustomAttributes(System.Type,System.Boolean)">
       <summary>When overridden in a derived class, gets an array that contains all the custom attributes of the specified type that are applied to this member.</summary>
       <param name="attributeType">The attribute type to search for. Only attributes that are assignable to this type can be returned.</param>
       <param name="inherit">
         <see langword="true" /> to search this member's inheritance chain to find the attributes; otherwise, <see langword="false" />.</param>
+      <returns>An array that contains all the custom attributes of the specified type, or an array that has no elements if no attributes were defined.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="attributeType" /> is <see langword="null" />.</exception>
       <exception cref="T:System.InvalidOperationException">This member belongs to a type that is loaded into the reflection-only context. See How to: Load Assemblies into the Reflection-Only Context</exception>
       <exception cref="T:System.TypeLoadException">A custom attribute type cannot be loaded.</exception>
-      <returns>An array that contains all the custom attributes of the specified type, or an array that has no elements if no attributes were defined.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComAwareEventInfo.GetCustomAttributesData">
       <summary>Returns a list of <see cref="T:System.Reflection.CustomAttributeData" /> objects for the current <see cref="T:System.Runtime.InteropServices.ComAwareEventInfo" />.</summary>
       <summary>When overridden in a derived class, returns the method that was called when the event was raised.</summary>
       <param name="nonPublic">
         <see langword="true" /> to return non-public methods; otherwise, <see langword="false" />.</param>
+      <returns>The object that was called when the event was raised.</returns>
       <exception cref="T:System.MethodAccessException">
         <paramref name="nonPublic" /> is <see langword="true" /> and the method used to add an event handler delegate is non-public, but the caller does not have permission to reflect on non-public methods.</exception>
-      <returns>The object that was called when the event was raised.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComAwareEventInfo.GetRemoveMethod(System.Boolean)">
       <summary>When overridden in a derived class, retrieves the <see cref="T:System.Reflection.MethodInfo" /> object for removing a method of the event.</summary>
       <param name="nonPublic">
         <see langword="true" /> to return non-public methods; otherwise, <see langword="false" />.</param>
+      <returns>The method that was used to remove an event handler delegate from the event source.</returns>
       <exception cref="T:System.MethodAccessException">
         <paramref name="nonPublic" /> is <see langword="true" /> and the method used to add an event handler delegate is non-public, but the caller does not have permission to reflect on non-public methods.</exception>
-      <returns>The method that was used to remove an event handler delegate from the event source.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComAwareEventInfo.IsDefined(System.Type,System.Boolean)">
       <summary>Indicates whether one or more instances of the specified attribute are applied to this member.</summary>
       <returns>
         <see langword="true" /> if the specified attribute has been applied to this member; otherwise, <see langword="false" />.</returns>
     </member>
-    <member name="M:System.Runtime.InteropServices.ComAwareEventInfo.RemoveEventHandler(System.Object,System.Delegate)">
-      <summary>Detaches an event handler from a COM object.</summary>
-      <param name="target">The target object that the event delegate is bound to.</param>
-      <param name="handler">The event delegate.</param>
-      <exception cref="T:System.InvalidOperationException">The event does not have a public <see langword="remove" /> accessor.</exception>
-      <exception cref="T:System.ArgumentException">The handler that was passed in cannot be used.</exception>
-      <exception cref="T:System.Reflection.TargetException">The <paramref name="target" /> parameter is <see langword="null" /> and the event is not static.  
-  
- -or-  
-  
- The <see cref="T:System.Reflection.EventInfo" /> is not declared on the target.
-
-Note: In .NET for Windows Store apps or the Portable Class Library, catch <see cref="T:System.Exception" /> instead.</exception>
-      <exception cref="T:System.MethodAccessException">The caller does not have access permission to the member.
-
-Note: In .NET for Windows Store apps or the Portable Class Library, catch the base class exception, <see cref="T:System.MemberAccessException" />, instead.</exception>
-    </member>
-    <member name="P:System.Runtime.InteropServices.ComAwareEventInfo.Attributes">
-      <summary>Gets the attributes for this event.</summary>
-      <returns>The read-only attributes for this event.</returns>
-    </member>
-    <member name="P:System.Runtime.InteropServices.ComAwareEventInfo.DeclaringType">
-      <summary>Gets the class that declares this member.</summary>
-      <returns>The <see cref="T:System.Type" /> object for the class that declares this member.</returns>
-    </member>
     <member name="P:System.Runtime.InteropServices.ComAwareEventInfo.MetadataToken">
       <summary>Gets the metadata token associated with the current <see cref="T:System.Runtime.InteropServices.ComAwareEventInfo" /> object.</summary>
       <returns>A 32-bit Integer that represents the metadata token.</returns>
@@ -827,6 +957,29 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Gets the class object that was used to initialize this instance.</summary>
       <returns>The <see cref="T:System.Type" /> object that was used to initialize the current object.</returns>
     </member>
+    <member name="M:System.Runtime.InteropServices.ComAwareEventInfo.RemoveEventHandler(System.Object,System.Delegate)">
+      <summary>Detaches an event handler from a COM object.</summary>
+      <param name="target">The target object that the event delegate is bound to.</param>
+      <param name="handler">The event delegate.</param>
+      <exception cref="T:System.InvalidOperationException">The event does not have a public <see langword="remove" /> accessor.</exception>
+      <exception cref="T:System.ArgumentException">The handler that was passed in cannot be used.</exception>
+      <exception cref="T:System.Reflection.TargetException">In the .NET for Windows Store apps or the Portable Class Library, catch <see cref="T:System.Exception" /> instead.  
+  
+
+            
+  
+ The <paramref name="target" /> parameter is <see langword="null" /> and the event is not static.  
+  
+ -or-  
+  
+ The <see cref="T:System.Reflection.EventInfo" /> is not declared on the target.</exception>
+      <exception cref="T:System.MethodAccessException">In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, <see cref="T:System.MemberAccessException" />, instead.  
+  
+
+            
+  
+ The caller does not have access permission to the member.</exception>
+    </member>
     <member name="T:System.Runtime.InteropServices.ComCompatibleVersionAttribute">
       <summary>Indicates to a COM client that all classes in the current version of an assembly are compatible with classes in an earlier version of the assembly.</summary>
     </member>
@@ -887,7 +1040,7 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <returns>A <see cref="T:System.Type" /> containing the source interface.</returns>
     </member>
     <member name="T:System.Runtime.InteropServices.ComEventsHelper">
-      <summary>Provides methods that enable .NET delegates that handle events to be added and removed from COM objects.</summary>
+      <summary>Provides methods that enable .NET Framework delegates that handle events to be added and removed from COM objects.</summary>
     </member>
     <member name="M:System.Runtime.InteropServices.ComEventsHelper.Combine(System.Object,System.Guid,System.Int32,System.Delegate)">
       <summary>Adds a delegate to the invocation list of events originating from a COM object.</summary>
@@ -1166,9 +1319,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="F:System.Runtime.InteropServices.ComTypes.ELEMDESC.desc">
       <summary>Contains information about an element.</summary>
     </member>
-    <member name="F:System.Runtime.InteropServices.ComTypes.ELEMDESC.tdesc">
-      <summary>Identifies the type of the element.</summary>
-    </member>
     <member name="T:System.Runtime.InteropServices.ComTypes.ELEMDESC.DESCUNION">
       <summary>Contains information about an element.</summary>
     </member>
@@ -1178,6 +1328,9 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="F:System.Runtime.InteropServices.ComTypes.ELEMDESC.DESCUNION.paramdesc">
       <summary>Contains information about the parameter.</summary>
     </member>
+    <member name="F:System.Runtime.InteropServices.ComTypes.ELEMDESC.tdesc">
+      <summary>Identifies the type of the element.</summary>
+    </member>
     <member name="T:System.Runtime.InteropServices.ComTypes.EXCEPINFO">
       <summary>Describes the exceptions that occur during <see langword="IDispatch::Invoke" />.</summary>
     </member>
@@ -1260,7 +1413,7 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Specifies the type of a property function.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.ComTypes.FUNCDESC.lprgelemdescParam">
-      <summary>Indicates the array of <see cref="F:System.Runtime.InteropServices.ELEMDESC" />.</summary>
+      <summary>Indicates the size of <see cref="F:System.Runtime.InteropServices.FUNCDESC.cParams" />.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.ComTypes.FUNCDESC.lprgscode">
       <summary>Stores the count of errors a function can return on a 16-bit system.</summary>
@@ -1447,9 +1600,30 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="advf">One of the <see cref="T:System.Runtime.InteropServices.ComTypes.ADVF" /> values that specifies a group of flags for controlling the advisory connection.</param>
       <param name="adviseSink">A pointer to the <see cref="T:System.Runtime.InteropServices.ComTypes.IAdviseSink" /> interface on the advisory sink that will receive the change notification.</param>
       <param name="connection">When this method returns, contains a pointer to a DWORD token that identifies this connection. You can use this token later to delete the advisory connection by passing it to <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.DUnadvise(System.Int32)" />. If this value is zero, the connection was not established. This parameter is passed uninitialized.</param>
-      <returns>This method supports the standard return values E_INVALIDARG, E_UNEXPECTED, and E_OUTOFMEMORY, as well as the following:  
+      <returns>This method supports the standard return values E_INVALIDARG, E_UNEXPECTED, and E_OUTOFMEMORY, as well as the following:
+  Value  
+  
+  Description  
   
- <list type="table"><listheader><term> Value</term><description> Description</description></listheader><item><term> S_OK</term><description> The advisory connection was created.</description></item><item><term> E_NOTIMPL</term><description> This method is not implemented on the data object.</description></item><item><term> DV_E_LINDEX</term><description> There is an invalid value for <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.lindex" />; currently, only -1 is supported.</description></item><item><term> DV_E_FORMATETC</term><description> There is an invalid value for the <paramref name="pFormatetc" /> parameter.</description></item><item><term> OLE_E_ADVISENOTSUPPORTED</term><description> The data object does not support change notification.</description></item></list></returns>
+  S_OK  
+  
+  The advisory connection was created.  
+  
+  E_NOTIMPL  
+  
+  This method is not implemented on the data object.  
+  
+  DV_E_LINDEX  
+  
+  There is an invalid value for <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.lindex" />; currently, only -1 is supported.  
+  
+  DV_E_FORMATETC  
+  
+  There is an invalid value for the <paramref name="pFormatetc" /> parameter.  
+  
+  OLE_E_ADVISENOTSUPPORTED  
+  
+  The data object does not support change notification.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComTypes.IDataObject.DUnadvise(System.Int32)">
       <summary>Destroys a notification connection that had been previously established.</summary>
@@ -1458,24 +1632,67 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.ComTypes.IDataObject.EnumDAdvise(System.Runtime.InteropServices.ComTypes.IEnumSTATDATA@)">
       <summary>Creates an object that can be used to enumerate the current advisory connections.</summary>
       <param name="enumAdvise">When this method returns, contains an <see cref="T:System.Runtime.InteropServices.ComTypes.IEnumSTATDATA" /> that receives the interface pointer to the new enumerator object. If the implementation sets <paramref name="enumAdvise" /> to <see langword="null" />, there are no connections to advisory sinks at this time. This parameter is passed uninitialized.</param>
-      <returns>This method supports the standard return value E_OUTOFMEMORY, as well as the following:  
+      <returns>This method supports the standard return value E_OUTOFMEMORY, as well as the following:
+  Value  
+  
+  Description  
+  
+  S_OK  
+  
+  The enumerator object is successfully instantiated or there are no connections.  
   
- <list type="table"><listheader><term> Value</term><description> Description</description></listheader><item><term> S_OK</term><description> The enumerator object is successfully instantiated or there are no connections.</description></item><item><term> OLE_E_ADVISENOTSUPPORTED</term><description> This object does not support advisory notifications.</description></item></list></returns>
+  OLE_E_ADVISENOTSUPPORTED  
+  
+  This object does not support advisory notifications.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComTypes.IDataObject.EnumFormatEtc(System.Runtime.InteropServices.ComTypes.DATADIR)">
       <summary>Creates an object for enumerating the <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structures for a data object. These structures are used in calls to <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)" /> or <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.SetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@,System.Boolean)" />.</summary>
       <param name="direction">One of the <see cref="T:System.Runtime.InteropServices.ComTypes.DATADIR" /> values that specifies the direction of the data.</param>
-      <returns>This method supports the standard return values E_INVALIDARG and E_OUTOFMEMORY, as well as the following:  
+      <returns>This method supports the standard return values E_INVALIDARG and E_OUTOFMEMORY, as well as the following:
+  Value  
+  
+  Description  
+  
+  S_OK  
+  
+  The enumerator object was successfully created.  
   
- <list type="table"><listheader><term> Value</term><description> Description</description></listheader><item><term> S_OK</term><description> The enumerator object was successfully created.</description></item><item><term> E_NOTIMPL</term><description> The direction specified by the <paramref name="direction" /> parameter is not supported.</description></item><item><term> OLE_S_USEREG</term><description> Requests that OLE enumerate the formats from the registry.</description></item></list></returns>
+  E_NOTIMPL  
+  
+  The direction specified by the <paramref name="direction" /> parameter is not supported.  
+  
+  OLE_S_USEREG  
+  
+  Requests that OLE enumerate the formats from the registry.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetCanonicalFormatEtc(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.FORMATETC@)">
       <summary>Provides a standard <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structure that is logically equivalent to a more complex structure. Use this method to determine whether two different <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structures would return the same data, removing the need for duplicate rendering.</summary>
       <param name="formatIn">A pointer to a <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structure, passed by reference, that defines the format, medium, and target device that the caller would like to use to retrieve data in a subsequent call such as <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)" />. The <see cref="T:System.Runtime.InteropServices.ComTypes.TYMED" /> member is not significant in this case and should be ignored.</param>
       <param name="formatOut">When this method returns, contains a pointer to a <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structure that contains the most general information possible for a specific rendering, making it canonically equivalent to <c>formatetcIn</c>. The caller must allocate this structure and the <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetCanonicalFormatEtc(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.FORMATETC@)" /> method must fill in the data. To retrieve data in a subsequent call such as <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)" />, the caller uses the supplied value of <paramref name="formatOut" />, unless the value supplied is <see langword="null" />. This value is <see langword="null" /> if the method returns <see langword="DATA_S_SAMEFORMATETC" />. The <see cref="T:System.Runtime.InteropServices.ComTypes.TYMED" /> member is not significant in this case and should be ignored. This parameter is passed uninitialized.</param>
-      <returns>This method supports the standard return values E_INVALIDARG, E_UNEXPECTED, and E_OUTOFMEMORY, as well as the following:  
+      <returns>This method supports the standard return values E_INVALIDARG, E_UNEXPECTED, and E_OUTOFMEMORY, as well as the following:
+  Value  
+  
+  Description  
+  
+  S_OK  
+  
+  The returned <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structure is different from the one that was passed.  
+  
+  DATA_S_SAMEFORMATETC  
+  
+  The <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structures are the same and <see langword="null" /> is returned in the <paramref name="formatOut" /> parameter.  
   
- <list type="table"><listheader><term> Value</term><description> Description</description></listheader><item><term> S_OK</term><description> The returned <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structure is different from the one that was passed.</description></item><item><term> DATA_S_SAMEFORMATETC</term><description> The <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structures are the same and <see langword="null" /> is returned in the <paramref name="formatOut" /> parameter.</description></item><item><term> DV_E_LINDEX</term><description> There is an invalid value for <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.lindex" />; currently, only -1 is supported.</description></item><item><term> DV_E_FORMATETC</term><description> There is an invalid value for the <paramref name="pFormatetc" /> parameter.</description></item><item><term> OLE_E_NOTRUNNING</term><description> The application is not running.</description></item></list></returns>
+  DV_E_LINDEX  
+  
+  There is an invalid value for <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.lindex" />; currently, only -1 is supported.  
+  
+  DV_E_FORMATETC  
+  
+  There is an invalid value for the <paramref name="pFormatetc" /> parameter.  
+  
+  OLE_E_NOTRUNNING  
+  
+  The application is not running.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)">
       <summary>Obtains data from a source data object. The <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)" /> method, which is called by a data consumer, renders the data described in the specified <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structure and transfers it through the specified <see cref="T:System.Runtime.InteropServices.ComTypes.STGMEDIUM" /> structure. The caller then assumes responsibility for releasing the <see cref="T:System.Runtime.InteropServices.ComTypes.STGMEDIUM" /> structure.</summary>
@@ -1490,9 +1707,34 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.ComTypes.IDataObject.QueryGetData(System.Runtime.InteropServices.ComTypes.FORMATETC@)">
       <summary>Determines whether the data object is capable of rendering the data described in the <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structure. Objects attempting a paste or drop operation can call this method before calling <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)" /> to get an indication of whether the operation may be successful.</summary>
       <param name="format">A pointer to a <see cref="T:System.Runtime.InteropServices.ComTypes.FORMATETC" /> structure, passed by reference, that defines the format, medium, and target device to use for the query.</param>
-      <returns>This method supports the standard return values E_INVALIDARG, E_UNEXPECTED, and E_OUTOFMEMORY, as well as the following:  
+      <returns>This method supports the standard return values E_INVALIDARG, E_UNEXPECTED, and E_OUTOFMEMORY, as well as the following:
+  Value  
+  
+  Description  
+  
+  S_OK  
+  
+  A subsequent call to <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)" /> would probably be successful.  
   
- <list type="table"><listheader><term> Value</term><description> Description</description></listheader><item><term> S_OK</term><description> A subsequent call to <see cref="M:System.Runtime.InteropServices.ComTypes.IDataObject.GetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@)" /> would probably be successful.</description></item><item><term> DV_E_LINDEX</term><description> An invalid value for <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.lindex" />; currently, only -1 is supported.</description></item><item><term> DV_E_FORMATETC</term><description> An invalid value for the <paramref name="pFormatetc" /> parameter.</description></item><item><term> DV_E_TYMED</term><description> An invalid <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.tymed" /> value.</description></item><item><term> DV_E_DVASPECT</term><description> An invalid <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.dwAspect" /> value.</description></item><item><term> OLE_E_NOTRUNNING</term><description> The application is not running.</description></item></list></returns>
+  DV_E_LINDEX  
+  
+  An invalid value for <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.lindex" />; currently, only -1 is supported.  
+  
+  DV_E_FORMATETC  
+  
+  An invalid value for the <paramref name="pFormatetc" /> parameter.  
+  
+  DV_E_TYMED  
+  
+  An invalid <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.tymed" /> value.  
+  
+  DV_E_DVASPECT  
+  
+  An invalid <see cref="F:System.Runtime.InteropServices.ComTypes.FORMATETC.dwAspect" /> value.  
+  
+  OLE_E_NOTRUNNING  
+  
+  The application is not running.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.ComTypes.IDataObject.SetData(System.Runtime.InteropServices.ComTypes.FORMATETC@,System.Runtime.InteropServices.ComTypes.STGMEDIUM@,System.Boolean)">
       <summary>Transfers data to the object that implements this method. This method is called by an object that contains a data source.</summary>
@@ -1811,7 +2053,7 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Saves an object to the specified stream.</summary>
       <param name="pStm">The stream to which the object is saved.</param>
       <param name="fClearDirty">
-        <see langword="true" /> to clear the modified flag after the save is complete; otherwise <see langword="false" />.</param>
+        <see langword="true" /> to clear the modified flag after the save is complete; otherwise <see langword="false" /></param>
     </member>
     <member name="T:System.Runtime.InteropServices.ComTypes.IMPLTYPEFLAGS">
       <summary>Defines the attributes of an implemented or inherited interface of a type.</summary>
@@ -2301,9 +2543,8 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="lHashVal">A hash value to speed up the search, computed by the <see langword="LHashValOfNameSys" /> function. If <paramref name="lHashVal" /> is 0, a value is computed.</param>
       <param name="ppTInfo">When this method returns, contains an array of pointers to the type descriptions that contain the name specified in <paramref name="szNameBuf" />. This parameter is passed uninitialized.</param>
       <param name="rgMemId">An array of the <see langword="MEMBERID" /> 's of the found items; <paramref name="rgMemId" /> [i] is the <see langword="MEMBERID" /> that indexes into the type description specified by <paramref name="ppTInfo" /> [i]. Cannot be <see langword="null" />.</param>
-      <param name="pcFound">On entry, indicates how many instances to look for. For example, <paramref name="pcFound" /> = 1 can be called to find the first occurrence. The search stops when one instance is found.  
-  
- On exit, indicates the number of instances that were found. If the <see langword="in" /> and <see langword="out" /> values of <paramref name="pcFound" /> are identical, there might be more type descriptions that contain the name.</param>
+      <param name="pcFound">On entry, indicates how many instances to look for. For example, <paramref name="pcFound" /> = 1 can be called to find the first occurrence. The search stops when one instance is found.
+On exit, indicates the number of instances that were found. If the <see langword="in" /> and <see langword="out" /> values of <paramref name="pcFound" /> are identical, there might be more type descriptions that contain the name.</param>
     </member>
     <member name="M:System.Runtime.InteropServices.ComTypes.ITypeLib.GetDocumentation(System.Int32,System.String@,System.String@,System.Int32@,System.String@)">
       <summary>Retrieves the library's documentation string, the complete Help file name and path, and the context identifier for the library Help topic in the Help file.</summary>
@@ -2360,9 +2601,8 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="lHashVal">A hash value to speed up the search, computed by the <see langword="LHashValOfNameSys" /> function. If <paramref name="lHashVal" /> is 0, a value is computed.</param>
       <param name="ppTInfo">When this method returns, contains an array of pointers to the type descriptions that contain the name specified in <paramref name="szNameBuf" />. This parameter is passed uninitialized.</param>
       <param name="rgMemId">When this method returns, contains an array of the <see langword="MEMBERID" />s of the found items; <paramref name="rgMemId" /> [i] is the <see langword="MEMBERID" /> that indexes into the type description specified by <paramref name="ppTInfo" /> [i]. This parameter cannot be <see langword="null" />. This parameter is passed uninitialized.</param>
-      <param name="pcFound">On entry, a value, passed by reference, that indicates how many instances to look for. For example, <paramref name="pcFound" /> = 1 can be called to find the first occurrence. The search stops when one instance is found.  
-  
- On exit, indicates the number of instances that were found. If the <see langword="in" /> and <see langword="out" /> values of <paramref name="pcFound" /> are identical, there might be more type descriptions that contain the name.</param>
+      <param name="pcFound">On entry, a value, passed by reference, that indicates how many instances to look for. For example, <paramref name="pcFound" /> = 1 can be called to find the first occurrence. The search stops when one instance is found.
+On exit, indicates the number of instances that were found. If the <see langword="in" /> and <see langword="out" /> values of <paramref name="pcFound" /> are identical, there might be more type descriptions that contain the name.</param>
     </member>
     <member name="M:System.Runtime.InteropServices.ComTypes.ITypeLib2.GetAllCustData(System.IntPtr)">
       <summary>Gets all custom data items for the library.</summary>
@@ -2761,6 +3001,15 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="F:System.Runtime.InteropServices.ComTypes.VARDESC.desc">
       <summary>Contains information about a variable.</summary>
     </member>
+    <member name="T:System.Runtime.InteropServices.ComTypes.VARDESC.DESCUNION">
+      <summary>Contains information about a variable.</summary>
+    </member>
+    <member name="F:System.Runtime.InteropServices.ComTypes.VARDESC.DESCUNION.lpvarValue">
+      <summary>Describes a symbolic constant.</summary>
+    </member>
+    <member name="F:System.Runtime.InteropServices.ComTypes.VARDESC.DESCUNION.oInst">
+      <summary>Indicates the offset of this variable within the instance.</summary>
+    </member>
     <member name="F:System.Runtime.InteropServices.ComTypes.VARDESC.elemdescVar">
       <summary>Contains the variable type.</summary>
     </member>
@@ -2776,15 +3025,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="F:System.Runtime.InteropServices.ComTypes.VARDESC.wVarFlags">
       <summary>Defines the properties of a variable.</summary>
     </member>
-    <member name="T:System.Runtime.InteropServices.ComTypes.VARDESC.DESCUNION">
-      <summary>Contains information about a variable.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ComTypes.VARDESC.DESCUNION.lpvarValue">
-      <summary>Describes a symbolic constant.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ComTypes.VARDESC.DESCUNION.oInst">
-      <summary>Indicates the offset of this variable within the instance.</summary>
-    </member>
     <member name="T:System.Runtime.InteropServices.ComTypes.VARFLAGS">
       <summary>Identifies the constants that define the properties of a variable.</summary>
     </member>
@@ -2848,174 +3088,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.ComUnregisterFunctionAttribute.#ctor">
       <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.ComUnregisterFunctionAttribute" /> class.</summary>
     </member>
-    <member name="T:System.Runtime.InteropServices.ComWrappers">
-      <summary>Class for managing wrappers of COM IUnknown types.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.#ctor">
-      <summary>Instance constructor.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.ComputeVtables(System.Object,System.Runtime.InteropServices.CreateComInterfaceFlags,System.Int32@)">
-      <summary>Computes the desired Vtable for <paramref name="obj" />, respecting the values of <paramref name="flags" />.</summary>
-      <param name="obj">Target of the returned Vtables.</param>
-      <param name="flags">Flags used to compute Vtables.</param>
-      <param name="count">The number of elements contained in the returned memory.</param>
-      <returns>
-        <see cref="T:System.Runtime.InteropServices.ComWrappers.ComInterfaceEntry" /> pointer containing memory for all COM interface entries.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.CreateObject(System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags)">
-      <summary>Creates a managed object for the object that <paramref name="externalComObject" /> points to, respecting the values of <paramref name="flags" />.</summary>
-      <param name="externalComObject">Object to import for usage into the .NET runtime.</param>
-      <param name="flags">Flags used to describe the external object.</param>
-      <returns>A managed object associated with the supplied external COM object.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.GetIUnknownImpl(System.IntPtr@,System.IntPtr@,System.IntPtr@)">
-      <summary>Gets the runtime-provided IUnknown implementation.</summary>
-      <param name="fpQueryInterface">Function pointer to QueryInterface.</param>
-      <param name="fpAddRef">Function pointer to AddRef.</param>
-      <param name="fpRelease">Function pointer to Release.</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.GetOrCreateComInterfaceForObject(System.Object,System.Runtime.InteropServices.CreateComInterfaceFlags)">
-      <summary>Creates a COM representation of the supplied object that can be passed to a non-managed environment.</summary>
-      <param name="instance">The managed object to expose outside the .NET runtime.</param>
-      <param name="flags">Flags used to configure the generated interface.</param>
-      <returns>The generated COM interface, as a pointer to the <code>IUnknown</code> interface implementation, that can be passed outside the .NET runtime.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.GetOrCreateObjectForComInstance(System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags)">
-      <summary>Gets the currently registered managed object or creates a new managed object and registers it.</summary>
-      <param name="externalComObject">Object to import for usage into the .NET runtime.</param>
-      <param name="flags">Flags used to describe the external object.</param>
-      <returns>A managed object associated with the supplied external COM object.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.GetOrRegisterObjectForComInstance(System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags,System.Object)">
-      <summary>Gets the currently registered managed object or uses the supplied managed object and registers it.</summary>
-      <param name="externalComObject">Object to import for usage into the .NET runtime.</param>
-      <param name="flags">Flags used to describe the external object.</param>
-      <param name="wrapper">The object to use as the wrapper for the external object.</param>
-      <exception cref="T:System.NotSupportedException">The wrapper instance is already associated with an external object.</exception>
-      <returns>A managed object associated with the supplied external COM object.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.GetOrRegisterObjectForComInstance(System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags,System.Object,System.IntPtr)">
-      <summary>Get the currently registered managed object or uses the supplied managed object and registers it.</summary>
-      <param name="externalComObject">Object to import for usage into the .NET runtime.</param>
-      <param name="flags">Flags used to describe the external object.</param>
-      <param name="wrapper">The <see cref="T:System.Object" /> to be used as the wrapper for the external object</param>
-      <param name="inner">Inner for COM aggregation scenarios</param>
-      <returns>Returns a managed object associated with the supplied external COM object.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.RegisterForMarshalling(System.Runtime.InteropServices.ComWrappers)">
-      <summary>Registers a <see cref="T:System.Runtime.InteropServices.ComWrappers" /> instance to be used as the global instance for marshalling in the runtime.</summary>
-      <param name="instance">The instance to register.</param>
-      <exception cref="T:System.InvalidOperationException">The method was called more than once.</exception>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.RegisterForTrackerSupport(System.Runtime.InteropServices.ComWrappers)">
-      <summary>Registers a <see cref="T:System.Runtime.InteropServices.ComWrappers" /> instance to be used as the global instance for reference tracker support.</summary>
-      <param name="instance">The instance to register.</param>
-      <exception cref="T:System.InvalidOperationException">The method was called more than once.</exception>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.ReleaseObjects(System.Collections.IEnumerable)">
-      <summary>Releases a collection of objects outside of the normal object or COM interface lifetime.</summary>
-      <param name="objects">Collection of objects to release.</param>
-    </member>
-    <member name="T:System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch">
-      <summary>An application binary interface for function dispatch of a COM interface.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.Vtable">
-      <summary>Field that represents the virtual function table (vtable) in the IUnknown instance layout.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch.GetInstance``1(System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch*)">
-      <summary>Given an <see cref="T:System.IntPtr" /> from a generated Vtable, converts it to the target type.</summary>
-      <param name="dispatchPtr">Pointer to Vtable function entry.</param>
-      <typeparam name="T">Desired type.</typeparam>
-      <returns>An instance of the type associated with the dispatched function call.</returns>
-    </member>
-    <member name="T:System.Runtime.InteropServices.ComWrappers.ComInterfaceEntry">
-      <summary>Interface type and pointer to targeted VTable.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ComWrappers.ComInterfaceEntry.IID">
-      <summary>Interface identifier.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ComWrappers.ComInterfaceEntry.Vtable">
-      <summary>A pointer to the virtual lookup table of functions.</summary>
-    </member>
-    <member name="T:System.Runtime.InteropServices.CreateComInterfaceFlags">
-      <summary>Specifies flags for the <see cref="M:System.Runtime.InteropServices.ComWrappers.GetOrCreateComInterfaceForObject(System.Object,System.Runtime.InteropServices.CreateComInterfaceFlags)" /> method.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.CreateComInterfaceFlags.CallerDefinedIUnknown">
-      <summary>
-        <para>The caller will provide an IUnknown Vtable.</para>
-        <para>This flag is useful in scenarios when the caller has no need to rely on an IUnknown instance that's used when it's not possible to run managed code (that is, during a garbage collection). This is common in traditional COM scenarios, but scenarios where Reference Tracker hosting calls the IUnknown API during a garbage collection are possible.</para>
-      </summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.CreateComInterfaceFlags.None">
-      <summary>Flag used to indicate no flags set.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.CreateComInterfaceFlags.TrackerSupport">
-      <summary>
-        <para>Flag used to indicate the COM interface should implement IReferenceTrackerTarget.</para>
-        <para>When this flag is passed, the resulting COM interface will have an internal implementation of IUnknown, therefore, none should be supplied by the caller.</para>
-      </summary>
-    </member>
-    <member name="T:System.Runtime.InteropServices.CreateObjectFlags">
-      <summary>Specifies flags for the <see cref="M:System.Runtime.InteropServices.ComWrappers.GetOrCreateObjectForComInstance(System.IntPtr,System.Runtime.InteropServices.CreateObjectFlags)" /> method.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.CreateObjectFlags.Aggregation">
-      <summary>Defined when COM aggregation is involved (that is an inner instance supplied).</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.CreateObjectFlags.None">
-      <summary>Flag used to indicate no flags set.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.CreateObjectFlags.TrackerObject">
-      <summary>Indicates that the supplied external COM object implements the IReferenceTracker.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.CreateObjectFlags.UniqueInstance">
-      <summary>Indicates to ignore internal caching and always create a unique instance.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.CreateObjectFlags.Unwrap">
-      <summary>
-        <para>Check if the supplied instance is actually a wrapper and if so return the underlying managed object rather than creating a new wrapper.</para>
-        <para>This matches the built-in RCW semantics for COM interop.</para>
-      </summary>
-    </member>
-    <member name="T:System.Runtime.InteropServices.CULong">
-      <summary>
-        <see cref="T:System.Runtime.InteropServices.CULong" /> is an immutable value type that represents the <c>unsigned long</c> type in C and C++.
-      It is meant to be used as an exchange type at the managed/unmanaged boundary to accurately represent in managed code unmanaged APIs that use the <c>unsigned long</c> type.
-      This type has 32-bits of storage on all Windows platforms and 32-bit Unix-based platforms.
-      It has 64-bits of storage on 64-bit Unix platforms.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CULong.#ctor(System.UInt32)">
-      <summary>Constructs an instance from a 32-bit unsigned integer.</summary>
-      <param name="value">The integer value.</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CULong.#ctor(System.UIntPtr)">
-      <summary>Constructs an instance from a native sized unsigned integer.</summary>
-      <param name="value">The integer value.</param>
-      <exception cref="T:System.OverflowException">
-        <paramref name="value" /> is outside the range of the underlying storage type.</exception>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CULong.Equals(System.Object)">
-      <summary>Returns a value indicating whether this instance is equal to a specified object.</summary>
-      <param name="o">An object to compare with this instance.</param>
-      <returns>
-        <see langword="true" /> if <paramref name="o" /> is an instance of <see cref="T:System.Runtime.InteropServices.CULong" /> and equals the value of this instance; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CULong.Equals(System.Runtime.InteropServices.CULong)">
-      <summary>Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Runtime.InteropServices.CLong" /> value.</summary>
-      <param name="other">A <see cref="T:System.Runtime.InteropServices.CULong" /> value to compare to this instance.</param>
-      <returns>
-        <see langword="true" /> if <paramref name="other" /> has the same value as this instance; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CULong.GetHashCode">
-      <summary>Returns the hash code for this instance.</summary>
-      <returns>A 32-bit signed integer hash code.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.CULong.ToString">
-      <summary>Converts the numeric value of this instance to its equivalent string representation.</summary>
-      <returns>The string representation of the value of this instance, consisting of a sequence of digits ranging from 0 to 9 with no leading zeroes.</returns>
-    </member>
-    <member name="P:System.Runtime.InteropServices.CULong.Value">
-      <summary>The underlying integer value of this instance.</summary>
-    </member>
     <member name="T:System.Runtime.InteropServices.CurrencyWrapper">
       <summary>Wraps objects the marshaler should marshal as a <see langword="VT_CY" />.</summary>
     </member>
@@ -3093,16 +3165,12 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.DispatchWrapper" /> class with the object being wrapped.</summary>
       <param name="obj">The object to be wrapped and converted to <see cref="F:System.Runtime.InteropServices.VarEnum.VT_DISPATCH" />.</param>
       <exception cref="T:System.ArgumentException">
-        <paramref name="obj" /> is not a class or an array.  
-  
- -or-  
-  
- <paramref name="obj" /> does not support <see langword="IDispatch" />.</exception>
-      <exception cref="T:System.InvalidOperationException">The <paramref name="obj" /> parameter was marked with a <see cref="T:System.Runtime.InteropServices.ComVisibleAttribute" /> attribute that was passed a value of <see langword="false" />.  
-  
- -or-  
-  
- The <paramref name="obj" /> parameter inherits from a type marked with a <see cref="T:System.Runtime.InteropServices.ComVisibleAttribute" /> attribute that was passed a value of <see langword="false" />.</exception>
+        <paramref name="obj" /> is not a class or an array.
+-or-
+<paramref name="obj" /> does not support <see langword="IDispatch" />.</exception>
+      <exception cref="T:System.InvalidOperationException">The <paramref name="obj" /> parameter was marked with a <see cref="T:System.Runtime.InteropServices.ComVisibleAttribute" /> attribute that was passed a value of <see langword="false" />.
+-or-
+The <paramref name="obj" /> parameter inherits from a type marked with a <see cref="T:System.Runtime.InteropServices.ComVisibleAttribute" /> attribute that was passed a value of <see langword="false" />.</exception>
     </member>
     <member name="P:System.Runtime.InteropServices.DispatchWrapper.WrappedObject">
       <summary>Gets the object wrapped by the <see cref="T:System.Runtime.InteropServices.DispatchWrapper" />.</summary>
@@ -3122,6 +3190,10 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="T:System.Runtime.InteropServices.DllImportAttribute">
       <summary>Indicates that the attributed method is exposed by an unmanaged dynamic-link library (DLL) as a static entry point.</summary>
     </member>
+    <member name="M:System.Runtime.InteropServices.DllImportAttribute.#ctor(System.String)">
+      <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.DllImportAttribute" /> class with the name of the DLL containing the method to import.</summary>
+      <param name="dllName">The name of the DLL that contains the unmanaged method. This can include an assembly display name, if the DLL is included in an assembly.</param>
+    </member>
     <member name="F:System.Runtime.InteropServices.DllImportAttribute.BestFitMapping">
       <summary>Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.</summary>
     </member>
@@ -3138,7 +3210,7 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Controls whether the <see cref="F:System.Runtime.InteropServices.DllImportAttribute.CharSet" /> field causes the common language runtime to search an unmanaged DLL for entry-point names other than the one specified.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.DllImportAttribute.PreserveSig">
-      <summary>Indicates whether unmanaged methods that have <see langword="HRESULT" /> return values are directly translated or whether <see langword="HRESULT" /> return values are automatically converted to exceptions.</summary>
+      <summary>Indicates whether unmanaged methods that have <see langword="HRESULT" /> or <see langword="retval" /> return values are directly translated or whether <see langword="HRESULT" /> or <see langword="retval" /> return values are automatically converted to exceptions.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.DllImportAttribute.SetLastError">
       <summary>Indicates whether the callee calls the <see langword="SetLastError" /> Windows API function before returning from the attributed method.</summary>
@@ -3146,10 +3218,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="F:System.Runtime.InteropServices.DllImportAttribute.ThrowOnUnmappableChar">
       <summary>Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI "?" character.</summary>
     </member>
-    <member name="M:System.Runtime.InteropServices.DllImportAttribute.#ctor(System.String)">
-      <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.DllImportAttribute" /> class with the name of the DLL containing the method to import.</summary>
-      <param name="dllName">The name of the DLL that contains the unmanaged method. This can include an assembly display name, if the DLL is included in an assembly.</param>
-    </member>
     <member name="P:System.Runtime.InteropServices.DllImportAttribute.Value">
       <summary>Gets the name of the DLL file that contains the entry point.</summary>
       <returns>The name of the DLL file that contains the entry point.</returns>
@@ -3185,12 +3253,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="F:System.Runtime.InteropServices.DllImportSearchPath.UserDirectories">
       <summary>Include any path that was explicitly added to the process-wide search path by using the Win32 <c>AddDllDirectory</c> function.</summary>
     </member>
-    <member name="T:System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute">
-      <summary>Attribute required by any type that is returned by <see cref="M:System.Runtime.InteropServices.IDynamicInterfaceCastable.GetInterfaceImplementation(System.RuntimeTypeHandle)" />.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute.#ctor">
-      <summary>Instance constructor.</summary>
-    </member>
     <member name="T:System.Runtime.InteropServices.ErrorWrapper">
       <summary>Wraps objects the marshaler should marshal as a <see langword="VT_ERROR" />.</summary>
     </member>
@@ -3236,21 +3298,15 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="name">A name for the collector.  This parameter allows you to name collectors that track handle types separately.</param>
       <param name="initialThreshold">A value that specifies the point at which collections should begin.</param>
       <param name="maximumThreshold">A value that specifies the point at which collections must occur. This should be set to the maximum number of available handles.</param>
-      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="initialThreshold" /> parameter is less than 0.  
-  
- -or-  
-  
- The <paramref name="maximumThreshold" /> parameter is less than 0.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="initialThreshold" /> parameter is less than 0.
+-or-
+The <paramref name="maximumThreshold" /> parameter is less than 0.</exception>
       <exception cref="T:System.ArgumentException">The <paramref name="maximumThreshold" /> parameter is less than the <paramref name="initialThreshold" /> parameter.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.HandleCollector.Add">
       <summary>Increments the current handle count.</summary>
       <exception cref="T:System.InvalidOperationException">The <see cref="P:System.Runtime.InteropServices.HandleCollector.Count" /> property is less than 0.</exception>
     </member>
-    <member name="M:System.Runtime.InteropServices.HandleCollector.Remove">
-      <summary>Decrements the current handle count.</summary>
-      <exception cref="T:System.InvalidOperationException">The <see cref="P:System.Runtime.InteropServices.HandleCollector.Count" /> property is less than 0.</exception>
-    </member>
     <member name="P:System.Runtime.InteropServices.HandleCollector.Count">
       <summary>Gets the number of handles collected.</summary>
       <returns>The number of handles collected.</returns>
@@ -3267,14 +3323,22 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Gets the name of a <see cref="T:System.Runtime.InteropServices.HandleCollector" /> object.</summary>
       <returns>This <see cref="P:System.Runtime.InteropServices.HandleCollector.Name" /> property allows you to name collectors that track handle types separately.</returns>
     </member>
-    <member name="T:System.Runtime.InteropServices.HandleRef">
-      <summary>Wraps a managed object holding a handle to a resource that is passed to unmanaged code using platform invoke.</summary>
+    <member name="M:System.Runtime.InteropServices.HandleCollector.Remove">
+      <summary>Decrements the current handle count.</summary>
+      <exception cref="T:System.InvalidOperationException">The <see cref="P:System.Runtime.InteropServices.HandleCollector.Count" /> property is less than 0.</exception>
+    </member>
+    <member name="T:System.Runtime.InteropServices.HandleRef">
+      <summary>Wraps a managed object holding a handle to a resource that is passed to unmanaged code using platform invoke.</summary>
     </member>
     <member name="M:System.Runtime.InteropServices.HandleRef.#ctor(System.Object,System.IntPtr)">
       <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.HandleRef" /> class with the object to wrap and a handle to the resource used by unmanaged code.</summary>
       <param name="wrapper">A managed object that should not be finalized until the platform invoke call returns.</param>
       <param name="handle">An <see cref="T:System.IntPtr" /> that indicates a handle to a resource.</param>
     </member>
+    <member name="P:System.Runtime.InteropServices.HandleRef.Handle">
+      <summary>Gets the handle to a resource.</summary>
+      <returns>The handle to a resource.</returns>
+    </member>
     <member name="M:System.Runtime.InteropServices.HandleRef.op_Explicit(System.Runtime.InteropServices.HandleRef)~System.IntPtr">
       <summary>Returns the handle to a resource of the specified <see cref="T:System.Runtime.InteropServices.HandleRef" /> object.</summary>
       <param name="value">The object that needs a handle.</param>
@@ -3285,10 +3349,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="value">A <see cref="T:System.Runtime.InteropServices.HandleRef" /> object to retrieve an internal integer representation from.</param>
       <returns>An <see cref="T:System.IntPtr" /> object that represents a <see cref="T:System.Runtime.InteropServices.HandleRef" /> object.</returns>
     </member>
-    <member name="P:System.Runtime.InteropServices.HandleRef.Handle">
-      <summary>Gets the handle to a resource.</summary>
-      <returns>The handle to a resource.</returns>
-    </member>
     <member name="P:System.Runtime.InteropServices.HandleRef.Wrapper">
       <summary>Gets the object holding the handle to a resource.</summary>
       <returns>The object holding the handle to a resource.</returns>
@@ -3342,22 +3402,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="ppv">A reference to the requested interface, when this method returns.</param>
       <returns>One of the enumeration values that indicates whether a custom implementation of IUnknown::QueryInterface was used.</returns>
     </member>
-    <member name="T:System.Runtime.InteropServices.IDynamicInterfaceCastable">
-      <summary>Interface used to participate in a type cast failure.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.IDynamicInterfaceCastable.GetInterfaceImplementation(System.RuntimeTypeHandle)">
-      <summary>Called during interface dispatch when the given interface type cannot be found in the class's metadata.</summary>
-      <param name="interfaceType">The interface type.</param>
-      <exception cref="T:System.InvalidOperationException">The returned type is not an interface type, or it was not marked with the <see cref="T:System.Runtime.InteropServices.DynamicInterfaceCastableImplementationAttribute" />.</exception>
-      <returns>The type that should be used to dispatch for <paramref name="interfaceType" /> on the current object.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.IDynamicInterfaceCastable.IsInterfaceImplemented(System.RuntimeTypeHandle,System.Boolean)">
-      <summary>Called when an implementing class instance is cast to an interface type that is not contained in the class's metadata.</summary>
-      <param name="interfaceType">The interface type.</param>
-      <param name="throwIfNotImplemented">Indicates if the function should throw an exception instead of returning <see langword="false" />.</param>
-      <returns>
-        <see langword="true" /> if this object can be cast to the given interface; otherwise, <see langword="false" />.</returns>
-    </member>
     <member name="T:System.Runtime.InteropServices.ImportedFromTypeLibAttribute">
       <summary>Indicates that the types defined within an assembly were originally defined in a type library.</summary>
     </member>
@@ -3447,15 +3491,11 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="classType">The class that contains the required stub method.</param>
       <param name="methodName">The name of the stub method.</param>
       <exception cref="T:System.ArgumentException">
-        <paramref name="methodName" /> cannot be found.  
-  
- -or-  
-  
- The method is not static or non-generic.  
-  
- -or-  
-  
- The method's parameter list does not match the expected parameter list for the stub.</exception>
+        <paramref name="methodName" /> cannot be found.
+-or-
+The method is not static or non-generic.
+-or-
+The method's parameter list does not match the expected parameter list for the stub.</exception>
       <exception cref="T:System.MethodAccessException">The interface that contains the managed interop method has no access to the stub method, because the stub method has private or protected accessibility, or because of a security issue.</exception>
     </member>
     <member name="P:System.Runtime.InteropServices.ManagedToNativeComInteropStubAttribute.ClassType">
@@ -3469,12 +3509,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="T:System.Runtime.InteropServices.Marshal">
       <summary>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.</summary>
     </member>
-    <member name="F:System.Runtime.InteropServices.Marshal.SystemDefaultCharSize">
-      <summary>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.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.Marshal.SystemMaxDBCSCharSize">
-      <summary>Represents the maximum size of a double byte character set (DBCS) size, in bytes, for the current operating system. This field is read-only.</summary>
-    </member>
     <member name="M:System.Runtime.InteropServices.Marshal.AddRef(System.IntPtr)">
       <summary>Increments the reference count on the specified interface.</summary>
       <param name="pUnk">The interface reference count to increment.</param>
@@ -3483,20 +3517,20 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.AllocCoTaskMem(System.Int32)">
       <summary>Allocates a block of memory of specified size from the COM task memory allocator.</summary>
       <param name="cb">The size of the block of memory to be allocated.</param>
-      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
       <returns>An integer representing the address of the block of memory allocated. This memory must be released with <see cref="M:System.Runtime.InteropServices.Marshal.FreeCoTaskMem(System.IntPtr)" />.</returns>
+      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.AllocHGlobal(System.Int32)">
       <summary>Allocates memory from the unmanaged memory of the process by using the specified number of bytes.</summary>
       <param name="cb">The required number of bytes in memory.</param>
-      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
       <returns>A pointer to the newly allocated memory. This memory must be released using the <see cref="M:System.Runtime.InteropServices.Marshal.FreeHGlobal(System.IntPtr)" /> method.</returns>
+      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.AllocHGlobal(System.IntPtr)">
       <summary>Allocates memory from the unmanaged memory of the process by using the pointer to the specified number of bytes.</summary>
       <param name="cb">The required number of bytes in memory.</param>
-      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
       <returns>A pointer to the newly allocated memory. This memory must be released using the <see cref="M:System.Runtime.InteropServices.Marshal.FreeHGlobal(System.IntPtr)" /> method.</returns>
+      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.AreComObjectsAvailableForCleanup">
       <summary>Indicates whether runtime callable wrappers (RCWs) from any context are available for cleanup.</summary>
@@ -3506,8 +3540,8 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.BindToMoniker(System.String)">
       <summary>Gets an interface pointer identified by the specified moniker.</summary>
       <param name="monikerName">The moniker corresponding to the desired interface pointer.</param>
-      <exception cref="T:System.Runtime.InteropServices.COMException">An unrecognized HRESULT was returned by the unmanaged <see langword="BindToMoniker" /> method.</exception>
       <returns>An object containing a reference to the interface pointer identified by the <paramref name="monikerName" /> parameter. A moniker is a name, and in this case, the moniker is defined by an interface.</returns>
+      <exception cref="T:System.Runtime.InteropServices.COMException">An unrecognized HRESULT was returned by the unmanaged <see langword="BindToMoniker" /> method.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ChangeWrapperHandleStrength(System.Object,System.Boolean)">
       <summary>Changes the strength of an object's COM Callable Wrapper (CCW) handle.</summary>
@@ -3680,52 +3714,46 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Aggregates a managed object with the specified COM object.</summary>
       <param name="pOuter">The outer <see langword="IUnknown" /> pointer.</param>
       <param name="o">An object to aggregate.</param>
+      <returns>The inner <see langword="IUnknown" /> pointer of the managed object.</returns>
       <exception cref="T:System.ArgumentException">
         <paramref name="o" /> is a Windows Runtime object.</exception>
-      <returns>The inner <see langword="IUnknown" /> pointer of the managed object.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.CreateAggregatedObject``1(System.IntPtr,``0)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Aggregates a managed object of the specified type with the specified COM object.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Aggregates a managed object of the specified type with the specified COM object.</summary>
       <param name="pOuter">The outer IUnknown pointer.</param>
       <param name="o">The managed object to aggregate.</param>
       <typeparam name="T">The type of the managed object to aggregate.</typeparam>
+      <returns>The inner IUnknown pointer of the managed object.</returns>
       <exception cref="T:System.ArgumentException">
         <paramref name="o" /> is a Windows Runtime object.</exception>
-      <returns>The inner IUnknown pointer of the managed object.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.CreateWrapperOfType(System.Object,System.Type)">
       <summary>Wraps the specified COM object in an object of the specified type.</summary>
       <param name="o">The object to be wrapped.</param>
       <param name="t">The type of wrapper to create.</param>
+      <returns>The newly wrapped object that is an instance of the desired type.</returns>
       <exception cref="T:System.ArgumentException">
-        <paramref name="t" /> must derive from <see langword="__ComObject" />.  
-  
- -or-  
-  
- <paramref name="t" /> is a Windows Runtime type.</exception>
+        <paramref name="t" /> must derive from <see langword="__ComObject" />.
+-or-
+<paramref name="t" /> is a Windows Runtime type.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="t" /> parameter is <see langword="null" />.</exception>
       <exception cref="T:System.InvalidCastException">
         <paramref name="o" /> cannot be converted to the destination type because it does not support all required interfaces.</exception>
-      <returns>The newly wrapped object that is an instance of the desired type.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.CreateWrapperOfType``2(``0)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Wraps the specified COM object in an object of the specified type.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Wraps the specified COM object in an object of the specified type.</summary>
       <param name="o">The object to be wrapped.</param>
       <typeparam name="T">The type of object to wrap.</typeparam>
       <typeparam name="TWrapper">The type of object to return.</typeparam>
+      <returns>The newly wrapped object.</returns>
       <exception cref="T:System.ArgumentException">
-        <typeparamref name="T" /> must derive from <see langword="__ComObject" />.  
-  
- -or-  
-  
- <typeparamref name="T" /> is a Windows Runtime type.</exception>
+        <typeparamref name="T" /> must derive from <see langword="__ComObject" />.
+-or-
+<typeparamref name="T" /> is a Windows Runtime type.</exception>
       <exception cref="T:System.InvalidCastException">
         <paramref name="o" /> cannot be converted to the <paramref name="TWrapper" /> because it does not support all required interfaces.</exception>
-      <returns>The newly wrapped object.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.DestroyStructure(System.IntPtr,System.Type)">
       <summary>Frees all substructures that the specified unmanaged memory block points to.</summary>
@@ -3735,9 +3763,8 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
         <paramref name="structureType" /> has an automatic layout. Use sequential or explicit instead.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.DestroyStructure``1(System.IntPtr)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Frees all substructures of a specified type that the specified unmanaged memory block points to.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Frees all substructures of a specified type that the specified unmanaged memory block points to.</summary>
       <param name="ptr">A pointer to an unmanaged block of memory.</param>
       <typeparam name="T">The type of the formatted structure. This provides the layout information necessary to delete the buffer in the <paramref name="ptr" /> parameter.</typeparam>
       <exception cref="T:System.ArgumentException">
@@ -3746,11 +3773,11 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.FinalReleaseComObject(System.Object)">
       <summary>Releases all references to a Runtime Callable Wrapper (RCW) by setting its reference count to 0.</summary>
       <param name="o">The RCW to be released.</param>
+      <returns>The new value of the reference count of the RCW associated with the <paramref name="o" /> parameter, which is 0 (zero) if the release is successful.</returns>
       <exception cref="T:System.ArgumentException">
         <paramref name="o" /> is not a valid COM object.</exception>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="o" /> is <see langword="null" />.</exception>
-      <returns>The new value of the reference count of the RCW associated with the <paramref name="o" /> parameter, which is 0 (zero) if the release is successful.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.FreeBSTR(System.IntPtr)">
       <summary>Frees a <see langword="BSTR" /> using the COM SysFreeString function.</summary>
@@ -3772,112 +3799,88 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.GenerateProgIdForType(System.Type)">
       <summary>Returns a programmatic identifier (ProgID) for the specified type.</summary>
       <param name="type">The type to get a ProgID for.</param>
+      <returns>The ProgID of the specified type.</returns>
       <exception cref="T:System.ArgumentException">The <paramref name="type" /> parameter is not a class that can be create by COM. The class must be public, have a public parameterless constructor, and be COM visible.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="type" /> parameter is <see langword="null" />.</exception>
-      <returns>The ProgID of the specified type.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type)">
       <summary>Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. Custom query interface access is enabled by default.</summary>
       <param name="o">The object that provides the interface.</param>
       <param name="T">The type of interface that is requested.</param>
-      <exception cref="T:System.ArgumentException">The <typeparamref name="T" /> parameter is not an interface.  
-  
- -or-  
-  
- The type is not visible to COM.  
-  
- -or-  
-  
- The <typeparamref name="T" /> parameter is a generic type definition.</exception>
-      <exception cref="T:System.InvalidCastException">The <paramref name="o" /> parameter does not support the requested interface.</exception>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="o" /> parameter is <see langword="null" />.  
-  
- -or-  
-  
- The <typeparamref name="T" /> parameter is <see langword="null" />.</exception>
       <returns>The interface pointer that represents the specified interface for the object.</returns>
+      <exception cref="T:System.ArgumentException">The <typeparamref name="T" /> parameter is not an interface.
+-or-
+The type is not visible to COM.
+-or-
+The <typeparamref name="T" /> parameter is a generic type definition.</exception>
+      <exception cref="T:System.InvalidCastException">The <paramref name="o" /> parameter does not support the requested interface.</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="o" /> parameter is <see langword="null" />.
+-or-
+The <typeparamref name="T" /> parameter is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetComInterfaceForObject(System.Object,System.Type,System.Runtime.InteropServices.CustomQueryInterfaceMode)">
       <summary>Returns a pointer to an IUnknown interface that represents the specified interface on the specified object. Custom query interface access is controlled by the specified customization mode.</summary>
       <param name="o">The object that provides the interface.</param>
       <param name="T">The type of interface that is requested.</param>
       <param name="mode">One of the enumeration values that indicates whether to apply an <see langword="IUnknown::QueryInterface" /> customization that is supplied by an <see cref="T:System.Runtime.InteropServices.ICustomQueryInterface" />.</param>
-      <exception cref="T:System.ArgumentException">The <typeparamref name="T" /> parameter is not an interface.  
-  
- -or-  
-  
- The type is not visible to COM.  
-  
- -or-  
-  
- The <typeparamref name="T" /> parameter is a generic type definition.</exception>
-      <exception cref="T:System.InvalidCastException">The object <paramref name="o" /> does not support the requested interface.</exception>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="o" /> parameter is <see langword="null" />.  
-  
- -or-  
-  
- The <typeparamref name="T" /> parameter is <see langword="null" />.</exception>
       <returns>The interface pointer that represents the interface for the object.</returns>
+      <exception cref="T:System.ArgumentException">The <typeparamref name="T" /> parameter is not an interface.
+-or-
+The type is not visible to COM.
+-or-
+The <typeparamref name="T" /> parameter is a generic type definition.</exception>
+      <exception cref="T:System.InvalidCastException">The object <paramref name="o" /> does not support the requested interface.</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="o" /> parameter is <see langword="null" />.
+-or-
+The <typeparamref name="T" /> parameter is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetComInterfaceForObject``2(``0)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Returns a pointer to an IUnknown interface that represents the specified interface on an object of the specified type. Custom query interface access is enabled by default.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Returns a pointer to an IUnknown interface that represents the specified interface on an object of the specified type. Custom query interface access is enabled by default.</summary>
       <param name="o">The object that provides the interface.</param>
       <typeparam name="T">The type of <paramref name="o" />.</typeparam>
       <typeparam name="TInterface">The type of interface to return.</typeparam>
-      <exception cref="T:System.ArgumentException">The <paramref name="TInterface" /> parameter is not an interface.  
-  
- -or-  
-  
- The type is not visible to COM.  
-  
- -or-  
-  
- The <typeparamref name="T" /> parameter is an open generic type.</exception>
+      <returns>The interface pointer that represents the <paramref name="TInterface" /> interface.</returns>
+      <exception cref="T:System.ArgumentException">The <paramref name="TInterface" /> parameter is not an interface.
+-or-
+The type is not visible to COM.
+-or-
+The <typeparamref name="T" /> parameter is an open generic type.</exception>
       <exception cref="T:System.InvalidCastException">The <paramref name="o" /> parameter does not support the <paramref name="TInterface" /> interface.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="o" /> parameter is <see langword="null" />.</exception>
-      <returns>The interface pointer that represents the <paramref name="TInterface" /> interface.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetComObjectData(System.Object,System.Object)">
       <summary>Retrieves data that is referenced by the specified key from the specified COM object.</summary>
       <param name="obj">The COM object that contains the data that you want.</param>
       <param name="key">The key in the internal hash table of <paramref name="obj" /> to retrieve the data from.</param>
+      <returns>The data represented by the <paramref name="key" /> parameter in the internal hash table of the <paramref name="obj" /> parameter.</returns>
       <exception cref="T:System.ArgumentNullException">
-        <paramref name="obj" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="key" /> is <see langword="null" />.</exception>
+        <paramref name="obj" /> is <see langword="null" />.
+-or-
+<paramref name="key" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
-        <paramref name="obj" /> is not a COM object.  
-  
- -or-  
-  
- <paramref name="obj" /> is a Windows Runtime object.</exception>
-      <returns>The data represented by the <paramref name="key" /> parameter in the internal hash table of the <paramref name="obj" /> parameter.</returns>
+        <paramref name="obj" /> is not a COM object.
+-or-
+<paramref name="obj" /> is a Windows Runtime object.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer(System.IntPtr,System.Type)">
       <summary>Converts an unmanaged function pointer to a delegate.</summary>
       <param name="ptr">The unmanaged function pointer to be converted.</param>
       <param name="t">The type of the delegate to be returned.</param>
-      <exception cref="T:System.ArgumentException">The <paramref name="t" /> parameter is not a delegate or is generic.</exception>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="ptr" /> parameter is <see langword="null" />.  
-  
- -or-  
-  
- The <paramref name="t" /> parameter is <see langword="null" />.</exception>
       <returns>A delegate instance that can be cast to the appropriate delegate type.</returns>
+      <exception cref="T:System.ArgumentException">The <paramref name="t" /> parameter is not a delegate or is generic.</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="ptr" /> parameter is <see langword="null" />.
+-or-
+The <paramref name="t" /> parameter is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetDelegateForFunctionPointer``1(System.IntPtr)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Converts an unmanaged function pointer to a delegate of a specified type.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Converts an unmanaged function pointer to a delegate of a specified type.</summary>
       <param name="ptr">The unmanaged function pointer to convert.</param>
       <typeparam name="TDelegate">The type of the delegate to return.</typeparam>
+      <returns>A instance of the specified delegate type.</returns>
       <exception cref="T:System.ArgumentException">The <paramref name="TDelegate" /> generic parameter is not a delegate, or it is an open generic type.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="ptr" /> parameter is <see langword="null" />.</exception>
-      <returns>A instance of the specified delegate type.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetEndComSlot(System.Type)">
       <summary>Retrieves the last slot in the virtual function table (v-table or VTBL) of a type when exposed to COM.</summary>
@@ -3906,25 +3909,24 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate(System.Delegate)">
       <summary>Converts a delegate into a function pointer that is callable from unmanaged code.</summary>
       <param name="d">The delegate to be passed to unmanaged code.</param>
+      <returns>A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.</returns>
       <exception cref="T:System.ArgumentException">The <paramref name="d" /> parameter is a generic type definition.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="d" /> parameter is <see langword="null" />.</exception>
-      <returns>A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetFunctionPointerForDelegate``1(``0)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Converts a delegate of a specified type to a function pointer that is callable from unmanaged code.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Converts a delegate of a specified type to a function pointer that is callable from unmanaged code.</summary>
       <param name="d">The delegate to be passed to unmanaged code.</param>
       <typeparam name="TDelegate">The type of delegate to convert.</typeparam>
+      <returns>A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.</returns>
       <exception cref="T:System.ArgumentException">The <paramref name="d" /> parameter is a generic type definition.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="d" /> parameter is <see langword="null" />.</exception>
-      <returns>A value that can be passed to unmanaged code, which, in turn, can use it to call the underlying managed delegate.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetHINSTANCE(System.Reflection.Module)">
       <summary>Returns the instance handle (HINSTANCE) for the specified module.</summary>
       <param name="m">The module whose HINSTANCE is desired.</param>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="m" /> parameter is <see langword="null" />.</exception>
       <returns>The HINSTANCE for <paramref name="m" />; or -1 if the module does not have an HINSTANCE.</returns>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="m" /> parameter is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetHRForException(System.Exception)">
       <summary>Converts the specified exception to an HRESULT.</summary>
@@ -3938,23 +3940,15 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.GetIDispatchForObject(System.Object)">
       <summary>Returns an IDispatch interface from a managed object.</summary>
       <param name="o">The object whose <see langword="IDispatch" /> interface is requested.</param>
+      <returns>The <see langword="IDispatch" /> pointer for the <paramref name="o" /> parameter.</returns>
       <exception cref="T:System.InvalidCastException">
         <paramref name="o" /> does not support the requested interface.</exception>
-      <returns>The <see langword="IDispatch" /> pointer for the <paramref name="o" /> parameter.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetIUnknownForObject(System.Object)">
       <summary>Returns an IUnknown interface from a managed object.</summary>
       <param name="o">The object whose <see langword="IUnknown" /> interface is requested.</param>
       <returns>The <see langword="IUnknown" /> pointer for the <paramref name="o" /> parameter.</returns>
     </member>
-    <member name="M:System.Runtime.InteropServices.Marshal.GetLastPInvokeError">
-      <summary>Get the last platform invoke error on the current thread</summary>
-      <returns>The last platform invoke error</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.Marshal.GetLastSystemError">
-      <summary>Get the last system error on the current thread</summary>
-      <returns>The last system error</returns>
-    </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetLastWin32Error">
       <summary>Returns the error code returned by the last unmanaged function that was called using platform invoke that has the <see cref="F:System.Runtime.InteropServices.DllImportAttribute.SetLastError" /> flag set.</summary>
       <returns>The last error code set by a call to the Win32 SetLastError function.</returns>
@@ -3966,9 +3960,8 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <exception cref="T:System.ArgumentException">The <paramref name="obj" /> parameter is an instance of a generic type.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetNativeVariantForObject``1(``0,System.IntPtr)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Converts an object of a specified type to a COM VARIANT.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Converts an object of a specified type to a COM VARIANT.</summary>
       <param name="obj">The object for which to get a COM VARIANT.</param>
       <param name="pDstNativeVariant">A pointer to receive the VARIANT that corresponds to the <paramref name="obj" /> parameter.</param>
       <typeparam name="T">The type of the object to convert.</typeparam>
@@ -3976,68 +3969,64 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.GetObjectForIUnknown(System.IntPtr)">
       <summary>Returns an instance of a type that represents a COM object by a pointer to its IUnknown interface.</summary>
       <param name="pUnk">A pointer to the <see langword="IUnknown" /> interface.</param>
-      <exception cref="T:System.ArgumentNullException">
-        <paramref name="pUnk" /> is <see cref="F:System.IntPtr.Zero" />.</exception>
       <returns>An object that represents the specified unmanaged COM object.</returns>
+      <exception cref="">
+        <paramref name="pUnk" /> is <see cref="F:System.IntPtr.Zero" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetObjectForNativeVariant(System.IntPtr)">
       <summary>Converts a COM VARIANT to an object.</summary>
       <param name="pSrcNativeVariant">A pointer to a COM VARIANT.</param>
+      <returns>An object that corresponds to the <paramref name="pSrcNativeVariant" /> parameter.</returns>
       <exception cref="T:System.Runtime.InteropServices.InvalidOleVariantTypeException">
         <paramref name="pSrcNativeVariant" /> is not a valid VARIANT type.</exception>
       <exception cref="T:System.NotSupportedException">
         <paramref name="pSrcNativeVariant" /> has an unsupported type.</exception>
-      <returns>An object that corresponds to the <paramref name="pSrcNativeVariant" /> parameter.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetObjectForNativeVariant``1(System.IntPtr)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Converts a COM VARIANT to an object of a specified type.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Converts a COM VARIANT to an object of a specified type.</summary>
       <param name="pSrcNativeVariant">A pointer to a COM VARIANT.</param>
       <typeparam name="T">The type to which to convert the COM VARIANT.</typeparam>
+      <returns>An object of the specified type that corresponds to the <paramref name="pSrcNativeVariant" /> parameter.</returns>
       <exception cref="T:System.Runtime.InteropServices.InvalidOleVariantTypeException">
         <paramref name="pSrcNativeVariant" /> is not a valid VARIANT type.</exception>
       <exception cref="T:System.NotSupportedException">
         <paramref name="pSrcNativeVariant" /> has an unsupported type.</exception>
-      <returns>An object of the specified type that corresponds to the <paramref name="pSrcNativeVariant" /> parameter.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetObjectsForNativeVariants(System.IntPtr,System.Int32)">
       <summary>Converts an array of COM VARIANTs to an array of objects.</summary>
       <param name="aSrcNativeVariant">A pointer to the first element of an array of COM VARIANTs.</param>
       <param name="cVars">The count of COM VARIANTs in <paramref name="aSrcNativeVariant" />.</param>
+      <returns>An object array that corresponds to <paramref name="aSrcNativeVariant" />.</returns>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="cVars" /> is a negative number.</exception>
-      <returns>An object array that corresponds to <paramref name="aSrcNativeVariant" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetObjectsForNativeVariants``1(System.IntPtr,System.Int32)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Converts an array of COM VARIANTs to an array of a specified type.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Converts an array of COM VARIANTs to an array of a specified type.</summary>
       <param name="aSrcNativeVariant">A pointer to the first element of an array of COM VARIANTs.</param>
       <param name="cVars">The count of COM VARIANTs in <paramref name="aSrcNativeVariant" />.</param>
       <typeparam name="T">The type of the array to return.</typeparam>
+      <returns>An array of <typeparamref name="T" /> objects that corresponds to <paramref name="aSrcNativeVariant" />.</returns>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="cVars" /> is a negative number.</exception>
-      <returns>An array of <typeparamref name="T" /> objects that corresponds to <paramref name="aSrcNativeVariant" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetStartComSlot(System.Type)">
       <summary>Gets the first slot in the virtual function table (v-table or VTBL) that contains user-defined methods.</summary>
       <param name="t">A type that represents an interface or a class.</param>
+      <returns>The first VTBL slot that contains user-defined methods. The first slot is 3 if the interface is based on IUnknown, and 7 if the interface is based on IDispatch.</returns>
       <exception cref="T:System.ArgumentException">
         <paramref name="t" /> is not visible from COM.</exception>
-      <returns>The first VTBL slot that contains user-defined methods. The first slot is 3 if the interface is based on IUnknown, and 7 if the interface is based on IDispatch.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetTypedObjectForIUnknown(System.IntPtr,System.Type)">
       <summary>Returns a managed object of a specified type that represents a COM object.</summary>
       <param name="pUnk">A pointer to the <see langword="IUnknown" /> interface of the unmanaged object.</param>
       <param name="t">The type of the requested managed class.</param>
-      <exception cref="T:System.ArgumentException">
-        <paramref name="t" /> is not attributed with <see cref="T:System.Runtime.InteropServices.ComImportAttribute" />.  
-  
- -or-  
-  
- <paramref name="t" /> is a Windows Runtime type.</exception>
       <returns>An instance of the class corresponding to the <see cref="T:System.Type" /> object that represents the requested unmanaged COM object.</returns>
+      <exception cref="T:System.ArgumentException">
+        <paramref name="t" /> is not attributed with <see cref="T:System.Runtime.InteropServices.ComImportAttribute" />.
+-or-
+<paramref name="t" /> is a Windows Runtime type.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetTypeFromCLSID(System.Guid)">
       <summary>Returns the type associated with the specified class identifier (CLSID).</summary>
@@ -4048,27 +4037,21 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.GetTypeInfoName(System.Runtime.InteropServices.ComTypes.ITypeInfo)">
       <summary>Retrieves the name of the type represented by an ITypeInfo object.</summary>
       <param name="typeInfo">An object that represents an <see langword="ITypeInfo" /> pointer.</param>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="typeInfo" /> parameter is <see langword="null" />.</exception>
       <returns>The name of the type that the <paramref name="typeInfo" /> parameter points to.</returns>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="typeInfo" /> parameter is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.GetUniqueObjectForIUnknown(System.IntPtr)">
       <summary>Creates a unique Runtime Callable Wrapper (RCW) object for a given IUnknown interface.</summary>
       <param name="unknown">A managed pointer to an <see langword="IUnknown" /> interface.</param>
       <returns>A unique RCW for the specified <see langword="IUnknown" /> interface.</returns>
     </member>
-    <member name="M:System.Runtime.InteropServices.Marshal.InitHandle(System.Runtime.InteropServices.SafeHandle,System.IntPtr)">
-      <summary>Initializes the underlying handle of a newly created <see cref="T:System.Runtime.InteropServices.SafeHandle" /> to the provided value.</summary>
-      <param name="safeHandle">
-        <see cref="T:System.Runtime.InteropServices.SafeHandle" /> instance to update</param>
-      <param name="handle">Pre-existing handle</param>
-    </member>
     <member name="M:System.Runtime.InteropServices.Marshal.IsComObject(System.Object)">
       <summary>Indicates whether a specified object represents a COM object.</summary>
       <param name="o">The object to check.</param>
-      <exception cref="T:System.ArgumentNullException">
-        <paramref name="o" /> is <see langword="null" />.</exception>
       <returns>
         <see langword="true" /> if the <paramref name="o" /> parameter is a COM type; otherwise, <see langword="false" />.</returns>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="o" /> is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.IsTypeVisibleFromCom(System.Type)">
       <summary>Indicates whether a type is visible to COM clients.</summary>
@@ -4080,14 +4063,13 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Returns the field offset of the unmanaged form of the managed class.</summary>
       <param name="t">A value type or formatted reference type that specifies the managed class. You must apply the <see cref="T:System.Runtime.InteropServices.StructLayoutAttribute" /> to the class.</param>
       <param name="fieldName">The field within the <paramref name="t" /> parameter.</param>
+      <returns>The offset, in bytes, for the <paramref name="fieldName" /> parameter within the specified class that is declared by platform invoke.</returns>
       <exception cref="T:System.ArgumentException">The class cannot be exported as a structure or the field is nonpublic. Beginning with the .NET Framework version 2.0, the field may be private.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="t" /> parameter is <see langword="null" />.</exception>
-      <returns>The offset, in bytes, for the <paramref name="fieldName" /> parameter within the specified class that is declared by platform invoke.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.OffsetOf``1(System.String)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Returns the field offset of the unmanaged form of a specified managed class.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Returns the field offset of the unmanaged form of a specified managed class.</summary>
       <param name="fieldName">The name of the field in the <paramref name="T" /> type.</param>
       <typeparam name="T">A managed value type or formatted reference type. You must apply the <see cref="T:System.Runtime.InteropServices.StructLayoutAttribute" /> attribute to the class.</typeparam>
       <returns>The offset, in bytes, for the <paramref name="fieldName" /> parameter within the specified class that is declared by platform invoke.</returns>
@@ -4104,45 +4086,41 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <exception cref="T:System.ArgumentNullException">The <paramref name="c" /> parameter is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStringAnsi(System.IntPtr)">
-      <summary>Copies all characters up to the first null character from an unmanaged ANSI or UTF-8 string to a managed <see cref="T:System.String" />, and widens each character to UTF-16.</summary>
+      <summary>Copies all characters up to the first null character from an unmanaged ANSI string to a managed <see cref="T:System.String" />, and widens each ANSI character to Unicode.</summary>
       <param name="ptr">The address of the first character of the unmanaged string.</param>
-      <returns>A managed string that holds a copy of the unmanaged string. If <paramref name="ptr" /> is <see langword="null" />, the method returns a null string.</returns>
+      <returns>A managed string that holds a copy of the unmanaged ANSI string. If <paramref name="ptr" /> is <see langword="null" />, the method returns a null string.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStringAnsi(System.IntPtr,System.Int32)">
-      <summary>Allocates a managed <see cref="T:System.String" />, copies a specified number of characters from an unmanaged ANSI or UTF-8 string into it, and widens each character to UTF-16.</summary>
+      <summary>Allocates a managed <see cref="T:System.String" />, copies a specified number of characters from an unmanaged ANSI string into it, and widens each ANSI character to Unicode.</summary>
       <param name="ptr">The address of the first character of the unmanaged string.</param>
       <param name="len">The byte count of the input string to copy.</param>
+      <returns>A managed string that holds a copy of the native ANSI string if the value of the <paramref name="ptr" /> parameter is not <see langword="null" />; otherwise, this method returns <see langword="null" />.</returns>
       <exception cref="T:System.ArgumentException">
         <paramref name="len" /> is less than zero.</exception>
-      <returns>A managed string that holds a copy of the native string if the value of the <paramref name="ptr" /> parameter is not <see langword="null" />; otherwise, this method returns <see langword="null" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStringAuto(System.IntPtr)">
       <summary>Allocates a managed <see cref="T:System.String" /> and copies all characters up to the first null character from a string stored in unmanaged memory into it.</summary>
-      <param name="ptr">For Unicode platforms, the address of the first Unicode character.  
-  
- -or-  
-  
- For ANSI platforms, the address of the first ANSI character.</param>
+      <param name="ptr">For Unicode platforms, the address of the first Unicode character.
+-or-
+For ANSI platforms, the address of the first ANSI character.</param>
       <returns>A managed string that holds a copy of the unmanaged string if the value of the <paramref name="ptr" /> parameter is not <see langword="null" />; otherwise, this method returns <see langword="null" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStringAuto(System.IntPtr,System.Int32)">
       <summary>Allocates a managed <see cref="T:System.String" /> and copies the specified number of characters from a string stored in unmanaged memory into it.</summary>
-      <param name="ptr">For Unicode platforms, the address of the first Unicode character.  
-  
- -or-  
-  
- For ANSI platforms, the address of the first ANSI character.</param>
+      <param name="ptr">For Unicode platforms, the address of the first Unicode character.
+-or-
+For ANSI platforms, the address of the first ANSI character.</param>
       <param name="len">The number of characters to copy.</param>
+      <returns>A managed string that holds a copy of the native string if the value of the <paramref name="ptr" /> parameter is not <see langword="null" />; otherwise, this method returns <see langword="null" />.</returns>
       <exception cref="T:System.ArgumentException">
         <paramref name="len" /> is less than zero.</exception>
-      <returns>A managed string that holds a copy of the native string if the value of the <paramref name="ptr" /> parameter is not <see langword="null" />; otherwise, this method returns <see langword="null" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStringBSTR(System.IntPtr)">
       <summary>Allocates a managed <see cref="T:System.String" /> and copies a binary string (BSTR) stored in unmanaged memory into it.</summary>
       <param name="ptr">The address of the first character of the unmanaged string.</param>
+      <returns>A managed string that holds a copy of the unmanaged string.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="ptr" /> equals <see cref="F:System.IntPtr.Zero" />.</exception>
-      <returns>A managed string that holds a copy of the unmanaged string.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStringUni(System.IntPtr)">
       <summary>Allocates a managed <see cref="T:System.String" /> and copies all characters up to the first null character from an unmanaged Unicode string into it.</summary>
@@ -4156,54 +4134,44 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <returns>A managed string that holds a copy of the unmanaged string if the value of the <paramref name="ptr" /> parameter is not <see langword="null" />; otherwise, this method returns <see langword="null" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStringUTF8(System.IntPtr)">
-      <summary>Allocates a managed <see cref="T:System.String" /> and copies all characters up to the first null character from an unmanaged UTF-8 string into it.</summary>
-      <param name="ptr">The address of the first character of the unmanaged string.</param>
-      <returns>A managed string that holds a copy of the unmanaged string if the value of the <paramref name="ptr" /> parameter is not <see langword="null" />; otherwise, this method returns <see langword="null" />.</returns>
+      <param name="ptr" />
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStringUTF8(System.IntPtr,System.Int32)">
-      <summary>Allocates a managed <see cref="T:System.String" /> and copies a specified number of bytes from an unmanaged UTF8 string into it.</summary>
-      <param name="ptr">The address of the first character of the unmanaged string.</param>
-      <param name="byteLen">The number of bytes to copy.</param>
-      <returns>A managed string that holds a copy of the unmanaged string if the value of the <paramref name="ptr" /> parameter is not <see langword="null" />; otherwise, this method returns <see langword="null" />.</returns>
+      <param name="ptr" />
+      <param name="byteLen" />
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStructure(System.IntPtr,System.Object)">
       <summary>Marshals data from an unmanaged block of memory to a managed object.</summary>
       <param name="ptr">A pointer to an unmanaged block of memory.</param>
       <param name="structure">The object to which the data is to be copied. This must be an instance of a formatted class.</param>
-      <exception cref="T:System.ArgumentException">Structure layout is not sequential or explicit.  
-  
- -or-  
-  
- Structure is a boxed value type.</exception>
+      <exception cref="T:System.ArgumentException">Structure layout is not sequential or explicit.
+-or-
+Structure is a boxed value type.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStructure(System.IntPtr,System.Type)">
       <summary>Marshals data from an unmanaged block of memory to a newly allocated managed object of the specified type.</summary>
       <param name="ptr">A pointer to an unmanaged block of memory.</param>
       <param name="structureType">The type of object to be created. This object must represent a formatted class or a structure.</param>
-      <exception cref="T:System.ArgumentException">The <paramref name="structureType" /> parameter layout is not sequential or explicit.  
-  
- -or-  
-  
- The <paramref name="structureType" /> parameter is a generic type definition.</exception>
+      <returns>A managed object containing the data pointed to by the <paramref name="ptr" /> parameter.</returns>
+      <exception cref="T:System.ArgumentException">The <paramref name="structureType" /> parameter layout is not sequential or explicit.
+-or-
+The <paramref name="structureType" /> parameter is a generic type definition.</exception>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="structureType" /> is <see langword="null" />.</exception>
       <exception cref="T:System.MissingMethodException">The class specified by <paramref name="structureType" /> does not have an accessible parameterless constructor.</exception>
-      <returns>A managed object containing the data pointed to by the <paramref name="ptr" /> parameter.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStructure``1(System.IntPtr)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Marshals data from an unmanaged block of memory to a newly allocated managed object of the type specified by a generic type parameter.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Marshals data from an unmanaged block of memory to a newly allocated managed object of the type specified by a generic type parameter.</summary>
       <param name="ptr">A pointer to an unmanaged block of memory.</param>
       <typeparam name="T">The type of the object to which the data is to be copied. This must be a formatted class or a structure.</typeparam>
+      <returns>A managed object that contains the data that the <paramref name="ptr" /> parameter points to.</returns>
       <exception cref="T:System.ArgumentException">The layout of <typeparamref name="T" /> is not sequential or explicit.</exception>
       <exception cref="T:System.MissingMethodException">The class specified by <typeparamref name="T" /> does not have an accessible parameterless constructor.</exception>
-      <returns>A managed object that contains the data that the <paramref name="ptr" /> parameter points to.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.PtrToStructure``1(System.IntPtr,``0)">
-      <summary>[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.</summary>
+      <summary>[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.</summary>
       <param name="ptr">A pointer to an unmanaged block of memory.</param>
       <param name="structure">The object to which the data is to be copied.</param>
       <typeparam name="T">The type of <paramref name="structure" />. This must be a formatted class.</typeparam>
@@ -4219,171 +4187,151 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.ReadByte(System.IntPtr)">
       <summary>Reads a single byte from unmanaged memory.</summary>
       <param name="ptr">The address in unmanaged memory from which to read.</param>
-      <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
       <returns>The byte read from unmanaged memory.</returns>
+      <exception cref="T:System.AccessViolationException">
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadByte(System.IntPtr,System.Int32)">
       <summary>Reads a single byte at a given offset (or index) from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory from which to read.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
-      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <returns>The byte read from unmanaged memory at the given offset.</returns>
+      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadByte(System.Object,System.Int32)">
       <summary>Reads a single byte at a given offset (or index) from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory of the source object.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
+      <returns>The byte read from unmanaged memory at the given offset.</returns>
       <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="ptr" /> is an <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> object. This method does not accept <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> parameters.</exception>
-      <returns>The byte read from unmanaged memory at the given offset.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadInt16(System.IntPtr)">
       <summary>Reads a 16-bit signed integer from unmanaged memory.</summary>
       <param name="ptr">The address in unmanaged memory from which to read.</param>
-      <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
       <returns>The 16-bit signed integer read from unmanaged memory.</returns>
+      <exception cref="T:System.AccessViolationException">
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadInt16(System.IntPtr,System.Int32)">
       <summary>Reads a 16-bit signed integer at a given offset from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory from which to read.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
-      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <returns>The 16-bit signed integer read from unmanaged memory at the given offset.</returns>
+      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadInt16(System.Object,System.Int32)">
       <summary>Reads a 16-bit signed integer at a given offset from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory of the source object.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
+      <returns>The 16-bit signed integer read from unmanaged memory at the given offset.</returns>
       <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="ptr" /> is an <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> object. This method does not accept <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> parameters.</exception>
-      <returns>The 16-bit signed integer read from unmanaged memory at the given offset.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadInt32(System.IntPtr)">
       <summary>Reads a 32-bit signed integer from unmanaged memory.</summary>
       <param name="ptr">The address in unmanaged memory from which to read.</param>
-      <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
       <returns>The 32-bit signed integer read from unmanaged memory.</returns>
+      <exception cref="T:System.AccessViolationException">
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadInt32(System.IntPtr,System.Int32)">
       <summary>Reads a 32-bit signed integer at a given offset from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory from which to read.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
-      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <returns>The 32-bit signed integer read from unmanaged memory.</returns>
+      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadInt32(System.Object,System.Int32)">
       <summary>Reads a 32-bit signed integer at a given offset from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory of the source object.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
+      <returns>The 32-bit signed integer read from unmanaged memory at the given offset.</returns>
       <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="ptr" /> is an <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> object. This method does not accept <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> parameters.</exception>
-      <returns>The 32-bit signed integer read from unmanaged memory at the given offset.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadInt64(System.IntPtr)">
       <summary>Reads a 64-bit signed integer from unmanaged memory.</summary>
       <param name="ptr">The address in unmanaged memory from which to read.</param>
-      <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
       <returns>The 64-bit signed integer read from unmanaged memory.</returns>
+      <exception cref="T:System.AccessViolationException">
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadInt64(System.IntPtr,System.Int32)">
       <summary>Reads a 64-bit signed integer at a given offset from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory from which to read.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
-      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <returns>The 64-bit signed integer read from unmanaged memory at the given offset.</returns>
+      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadInt64(System.Object,System.Int32)">
       <summary>Reads a 64-bit signed integer at a given offset from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory of the source object.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
+      <returns>The 64-bit signed integer read from unmanaged memory at the given offset.</returns>
       <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="ptr" /> is an <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> object. This method does not accept <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> parameters.</exception>
-      <returns>The 64-bit signed integer read from unmanaged memory at the given offset.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadIntPtr(System.IntPtr)">
       <summary>Reads a processor native-sized integer from unmanaged memory.</summary>
       <param name="ptr">The address in unmanaged memory from which to read.</param>
-      <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
       <returns>The integer read from unmanaged memory. A 32 bit integer is returned on 32 bit machines and a 64 bit integer is returned on 64 bit machines.</returns>
+      <exception cref="T:System.AccessViolationException">
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadIntPtr(System.IntPtr,System.Int32)">
       <summary>Reads a processor native sized integer at a given offset from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory from which to read.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
-      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <returns>The integer read from unmanaged memory at the given offset.</returns>
+      <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReadIntPtr(System.Object,System.Int32)">
       <summary>Reads a processor native sized integer from unmanaged memory.</summary>
       <param name="ptr">The base address in unmanaged memory of the source object.</param>
       <param name="ofs">An additional byte offset, which is added to the <paramref name="ptr" /> parameter before reading.</param>
+      <returns>The integer read from unmanaged memory at the given offset.</returns>
       <exception cref="T:System.AccessViolationException">Base address (<paramref name="ptr" />) plus offset byte (<paramref name="ofs" />) produces a null or invalid address.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="ptr" /> is an <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> object. This method does not accept <see cref="T:System.Runtime.InteropServices.ArrayWithOffset" /> parameters.</exception>
-      <returns>The integer read from unmanaged memory at the given offset.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReAllocCoTaskMem(System.IntPtr,System.Int32)">
       <summary>Resizes a block of memory previously allocated with <see cref="M:System.Runtime.InteropServices.Marshal.AllocCoTaskMem(System.Int32)" />.</summary>
       <param name="pv">A pointer to memory allocated with <see cref="M:System.Runtime.InteropServices.Marshal.AllocCoTaskMem(System.Int32)" />.</param>
       <param name="cb">The new size of the allocated block.</param>
-      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
       <returns>An integer representing the address of the reallocated block of memory. This memory must be released with <see cref="M:System.Runtime.InteropServices.Marshal.FreeCoTaskMem(System.IntPtr)" />.</returns>
+      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ReAllocHGlobal(System.IntPtr,System.IntPtr)">
       <summary>Resizes a block of memory previously allocated with <see cref="M:System.Runtime.InteropServices.Marshal.AllocHGlobal(System.IntPtr)" />.</summary>
       <param name="pv">A pointer to memory allocated with <see cref="M:System.Runtime.InteropServices.Marshal.AllocHGlobal(System.IntPtr)" />.</param>
       <param name="cb">The new size of the allocated block. This is not a pointer; it is the byte count you are requesting, cast to type <see cref="T:System.IntPtr" />. If you pass a pointer, it is treated as a size.</param>
-      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
       <returns>A pointer to the reallocated memory. This memory must be released using <see cref="M:System.Runtime.InteropServices.Marshal.FreeHGlobal(System.IntPtr)" />.</returns>
+      <exception cref="T:System.OutOfMemoryException">There is insufficient memory to satisfy the request.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.Release(System.IntPtr)">
       <summary>Decrements the reference count on the specified interface.</summary>
@@ -4393,158 +4341,145 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.Marshal.ReleaseComObject(System.Object)">
       <summary>Decrements the reference count of the Runtime Callable Wrapper (RCW) associated with the specified COM object.</summary>
       <param name="o">The COM object to release.</param>
+      <returns>The new value of the reference count of the RCW associated with <paramref name="o" />. This value is typically zero since the RCW keeps just one reference to the wrapped COM object regardless of the number of managed clients calling it.</returns>
       <exception cref="T:System.ArgumentException">
         <paramref name="o" /> is not a valid COM object.</exception>
       <exception cref="T:System.NullReferenceException">
         <paramref name="o" /> is <see langword="null" />.</exception>
-      <returns>The new value of the reference count of the RCW associated with <paramref name="o" />. This value is typically zero since the RCW keeps just one reference to the wrapped COM object regardless of the number of managed clients calling it.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SecureStringToBSTR(System.Security.SecureString)">
       <summary>Allocates an unmanaged binary string (BSTR) and copies the contents of a managed <see cref="T:System.Security.SecureString" /> object into it.</summary>
       <param name="s">The managed object to copy.</param>
+      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="s" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.NotSupportedException">The current computer is not running Windows 2000 Service Pack 3 or later.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SecureStringToCoTaskMemAnsi(System.Security.SecureString)">
       <summary>Copies the contents of a managed <see cref="T:System.Security.SecureString" /> object to a block of memory allocated from the unmanaged COM task allocator.</summary>
       <param name="s">The managed object to copy.</param>
+      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="s" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.NotSupportedException">The current computer is not running Windows 2000 Service Pack 3 or later.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SecureStringToCoTaskMemUnicode(System.Security.SecureString)">
       <summary>Copies the contents of a managed <see cref="T:System.Security.SecureString" /> object to a block of memory allocated from the unmanaged COM task allocator.</summary>
       <param name="s">The managed object to copy.</param>
+      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="s" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.NotSupportedException">The current computer is not running Windows 2000 Service Pack 3 or later.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SecureStringToGlobalAllocAnsi(System.Security.SecureString)">
       <summary>Copies the contents of a managed <see cref="T:System.Security.SecureString" /> into unmanaged memory, converting into ANSI format as it copies.</summary>
       <param name="s">The managed object to copy.</param>
+      <returns>The address, in unmanaged memory, to where the <paramref name="s" /> parameter was copied, or 0 if a null object was supplied.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="s" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.NotSupportedException">The current computer is not running Windows 2000 Service Pack 3 or later.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>The address, in unmanaged memory, to where the <paramref name="s" /> parameter was copied, or 0 if a null object was supplied.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SecureStringToGlobalAllocUnicode(System.Security.SecureString)">
       <summary>Copies the contents of a managed <see cref="T:System.Security.SecureString" /> object into unmanaged memory.</summary>
       <param name="s">The managed object to copy.</param>
+      <returns>The address, in unmanaged memory, where <paramref name="s" /> was copied, or 0 if <paramref name="s" /> is a <see cref="T:System.Security.SecureString" /> object whose length is 0.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="s" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.NotSupportedException">The current computer is not running Windows 2000 Service Pack 3 or later.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>The address, in unmanaged memory, where <paramref name="s" /> was copied, or 0 if <paramref name="s" /> is a <see cref="T:System.Security.SecureString" /> object whose length is 0.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SetComObjectData(System.Object,System.Object,System.Object)">
       <summary>Sets data referenced by the specified key in the specified COM object.</summary>
       <param name="obj">The COM object in which to store the data.</param>
       <param name="key">The key in the internal hash table of the COM object in which to store the data.</param>
       <param name="data">The data to set.</param>
-      <exception cref="T:System.ArgumentNullException">
-        <paramref name="obj" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="key" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.ArgumentException">
-        <paramref name="obj" /> is not a COM object.  
-  
- -or-  
-  
- <paramref name="obj" /> is a Windows Runtime object.</exception>
       <returns>
         <see langword="true" /> if the data was set successfully; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.Marshal.SetLastPInvokeError(System.Int32)">
-      <summary>Set the last platform invoke error on the current thread</summary>
-      <param name="error">Error to set</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.Marshal.SetLastSystemError(System.Int32)">
-      <summary>Set the last system error on the current thread</summary>
-      <param name="error">Error to set</param>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="obj" /> is <see langword="null" />.
+-or-
+<paramref name="key" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentException">
+        <paramref name="obj" /> is not a COM object.
+-or-
+<paramref name="obj" /> is a Windows Runtime object.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SizeOf(System.Object)">
       <summary>Returns the unmanaged size of an object in bytes.</summary>
       <param name="structure">The object whose size is to be returned.</param>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="structure" /> parameter is <see langword="null" />.</exception>
       <returns>The size of the specified object in unmanaged code.</returns>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="structure" /> parameter is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SizeOf(System.Type)">
       <summary>Returns the size of an unmanaged type in bytes.</summary>
       <param name="t">The type whose size is to be returned.</param>
+      <returns>The size of the specified type in unmanaged code.</returns>
       <exception cref="T:System.ArgumentException">The <paramref name="t" /> parameter is a generic type definition.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="t" /> parameter is <see langword="null" />.</exception>
-      <returns>The size of the specified type in unmanaged code.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SizeOf``1">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Returns the size of an unmanaged type in bytes.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Returns the size of an unmanaged type in bytes.</summary>
       <typeparam name="T">The type whose size is to be returned.</typeparam>
       <returns>The size, in bytes, of the type that is specified by the <typeparamref name="T" /> generic type parameter.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.SizeOf``1(``0)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Returns the unmanaged size of an object of a specified type in bytes.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Returns the unmanaged size of an object of a specified type in bytes.</summary>
       <param name="structure">The object whose size is to be returned.</param>
       <typeparam name="T">The type of the <paramref name="structure" /> parameter.</typeparam>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="structure" /> parameter is <see langword="null" />.</exception>
       <returns>The size, in bytes, of the specified object in unmanaged code.</returns>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="structure" /> parameter is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StringToBSTR(System.String)">
       <summary>Allocates a BSTR and copies the contents of a managed <see cref="T:System.String" /> into it.</summary>
       <param name="s">The managed string to be copied.</param>
+      <returns>An unmanaged pointer to the <see langword="BSTR" />, or 0 if <paramref name="s" /> is null.</returns>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The length for <paramref name="s" /> is out of range.</exception>
-      <returns>An unmanaged pointer to the <see langword="BSTR" />, or 0 if <paramref name="s" /> is null.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StringToCoTaskMemAnsi(System.String)">
       <summary>Copies the contents of a managed <see cref="T:System.String" /> to a block of memory allocated from the unmanaged COM task allocator.</summary>
       <param name="s">A managed string to be copied.</param>
+      <returns>An integer representing a pointer to the block of memory allocated for the string, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="s" /> parameter exceeds the maximum length allowed by the operating system.</exception>
-      <returns>An integer representing a pointer to the block of memory allocated for the string, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StringToCoTaskMemAuto(System.String)">
       <summary>Copies the contents of a managed <see cref="T:System.String" /> to a block of memory allocated from the unmanaged COM task allocator.</summary>
       <param name="s">A managed string to be copied.</param>
+      <returns>The allocated memory block, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The length for <paramref name="s" /> is out of range.</exception>
-      <returns>The allocated memory block, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StringToCoTaskMemUni(System.String)">
       <summary>Copies the contents of a managed <see cref="T:System.String" /> to a block of memory allocated from the unmanaged COM task allocator.</summary>
       <param name="s">A managed string to be copied.</param>
+      <returns>An integer representing a pointer to the block of memory allocated for the string, or 0 if s is <see langword="null" />.</returns>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="s" /> parameter exceeds the maximum length allowed by the operating system.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>An integer representing a pointer to the block of memory allocated for the string, or 0 if s is <see langword="null" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StringToCoTaskMemUTF8(System.String)">
-      <summary>Copies the contents of a managed <see cref="T:System.String" /> to a block of memory allocated from the unmanaged COM task allocator.</summary>
-      <param name="s">A managed string to be copied.</param>
-      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="s" /> parameter exceeds the maximum length allowed by the operating system.</exception>
-      <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>An integer representing a pointer to the block of memory allocated for the string, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
+      <param name="s" />
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi(System.String)">
       <summary>Copies the contents of a managed <see cref="T:System.String" /> into unmanaged memory, converting into ANSI format as it copies.</summary>
       <param name="s">A managed string to be copied.</param>
+      <returns>The address, in unmanaged memory, to where <paramref name="s" /> was copied, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="s" /> parameter exceeds the maximum length allowed by the operating system.</exception>
-      <returns>The address, in unmanaged memory, to where <paramref name="s" /> was copied, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StringToHGlobalAuto(System.String)">
       <summary>Copies the contents of a managed <see cref="T:System.String" /> into unmanaged memory, converting into ANSI format if required.</summary>
       <param name="s">A managed string to be copied.</param>
-      <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
       <returns>The address, in unmanaged memory, to where the string was copied, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
+      <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StringToHGlobalUni(System.String)">
       <summary>Copies the contents of a managed <see cref="T:System.String" /> into unmanaged memory.</summary>
       <param name="s">A managed string to be copied.</param>
+      <returns>The address, in unmanaged memory, to where the <paramref name="s" /> was copied, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
       <exception cref="T:System.OutOfMemoryException">The method could not allocate enough native heap memory.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="s" /> parameter exceeds the maximum length allowed by the operating system.</exception>
-      <returns>The address, in unmanaged memory, to where the <paramref name="s" /> was copied, or 0 if <paramref name="s" /> is <see langword="null" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StructureToPtr(System.Object,System.IntPtr,System.Boolean)">
       <summary>Marshals data from a managed object to an unmanaged block of memory.</summary>
@@ -4553,16 +4488,13 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="fDeleteOld">
         <see langword="true" /> to call the <see cref="M:System.Runtime.InteropServices.Marshal.DestroyStructure(System.IntPtr,System.Type)" /> method on the <paramref name="ptr" /> parameter before this method copies the data. The block must contain valid data. Note that passing <see langword="false" /> when the memory block already contains data can lead to a memory leak.</param>
       <exception cref="T:System.ArgumentException">
-        <paramref name="structure" /> is a reference type that is not a formatted class.  
-  
- -or-  
-  
- <paramref name="structure" /> is an instance of a generic type (in the .NET Framework 4.5 and earlier versions only).</exception>
+        <paramref name="structure" /> is a reference type that is not a formatted class.
+-or-
+<paramref name="structure" /> is an instance of a generic type (in the .NET Framework 4.5 and earlier versions only).</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.StructureToPtr``1(``0,System.IntPtr,System.Boolean)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Marshals data from a managed object of a specified type to an unmanaged block of memory.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Marshals data from a managed object of a specified type to an unmanaged block of memory.</summary>
       <param name="structure">A managed object that holds the data to be marshaled. The object must be a structure or an instance of a formatted class.</param>
       <param name="ptr">A pointer to an unmanaged block of memory, which must be allocated before this method is called.</param>
       <param name="fDeleteOld">
@@ -4571,12 +4503,18 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <exception cref="T:System.ArgumentException">
         <paramref name="structure" /> is a reference type that is not a formatted class.</exception>
     </member>
+    <member name="F:System.Runtime.InteropServices.Marshal.SystemDefaultCharSize">
+      <summary>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.</summary>
+    </member>
+    <member name="F:System.Runtime.InteropServices.Marshal.SystemMaxDBCSCharSize">
+      <summary>Represents the maximum size of a double byte character set (DBCS) size, in bytes, for the current operating system. This field is read-only.</summary>
+    </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32)">
       <summary>Throws an exception with a specific failure HRESULT value.</summary>
       <param name="errorCode">The HRESULT corresponding to the desired exception.</param>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(System.Int32,System.IntPtr)">
-      <summary>Throws an exception with a specific failure HRESULT, based on the specified IErrorInfo interface.</summary>
+      <summary>Throws an exception with a specific failure HRESULT, based on the specified IErrorInfo.aspx) interface.</summary>
       <param name="errorCode">The HRESULT corresponding to the desired exception.</param>
       <param name="errorInfo">A pointer to the IErrorInfo interface that provides more information about the error. You can specify <c>IntPtr(0)</c> to use the current IErrorInfo interface, or <c>IntPtr(-1)</c> to ignore the current IErrorInfo interface and construct the exception just from the error code.</param>
     </member>
@@ -4587,9 +4525,8 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <returns>The address of <paramref name="index" /> inside <paramref name="arr" />.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.UnsafeAddrOfPinnedArrayElement``1(``0[],System.Int32)">
-      <summary>[Supported in the .NET Framework 4.5.1 and later versions]  
-  
- Gets the address of the element at the specified index in an array of a specified type.</summary>
+      <summary>[Supported in the .NET Framework 4.5.1 and later versions]
+Gets the address of the element at the specified index in an array of a specified type.</summary>
       <param name="arr">The array that contains the desired element.</param>
       <param name="index">The index of the desired element in the <paramref name="arr" /> array.</param>
       <typeparam name="T">The type of the array.</typeparam>
@@ -4600,15 +4537,11 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="ptr">The address in unmanaged memory to write to.</param>
       <param name="val">The value to write.</param>
       <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.WriteByte(System.IntPtr,System.Int32,System.Byte)">
       <summary>Writes a single byte value to unmanaged memory at a specified offset.</summary>
@@ -4631,30 +4564,22 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="ptr">The address in unmanaged memory to write to.</param>
       <param name="val">The value to write.</param>
       <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.WriteInt16(System.IntPtr,System.Int16)">
       <summary>Writes a 16-bit integer value to unmanaged memory.</summary>
       <param name="ptr">The address in unmanaged memory to write to.</param>
       <param name="val">The value to write.</param>
       <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.WriteInt16(System.IntPtr,System.Int32,System.Char)">
       <summary>Writes a 16-bit signed integer value to unmanaged memory at a specified offset.</summary>
@@ -4693,15 +4618,11 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="ptr">The address in unmanaged memory to write to.</param>
       <param name="val">The value to write.</param>
       <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.WriteInt32(System.IntPtr,System.Int32,System.Int32)">
       <summary>Writes a 32-bit signed integer value into unmanaged memory at a specified offset.</summary>
@@ -4731,15 +4652,11 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="ptr">The address in unmanaged memory to write to.</param>
       <param name="val">The value to write.</param>
       <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.WriteInt64(System.Object,System.Int32,System.Int64)">
       <summary>Writes a 64-bit signed integer value to unmanaged memory at a specified offset.</summary>
@@ -4762,15 +4679,11 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="ptr">The address in unmanaged memory to write to.</param>
       <param name="val">The value to write.</param>
       <exception cref="T:System.AccessViolationException">
-        <paramref name="ptr" /> is not a recognized format.  
-  
- -or-  
-  
- <paramref name="ptr" /> is <see langword="null" />.  
-  
- -or-  
-  
- <paramref name="ptr" /> is invalid.</exception>
+        <paramref name="ptr" /> is not a recognized format.
+-or-
+<paramref name="ptr" /> is <see langword="null" />.
+-or-
+<paramref name="ptr" /> is invalid.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.WriteIntPtr(System.Object,System.Int32,System.IntPtr)">
       <summary>Writes a processor native sized integer value to unmanaged memory.</summary>
@@ -4794,8 +4707,7 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="s">The address of the unmanaged string to free.</param>
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ZeroFreeCoTaskMemUTF8(System.IntPtr)">
-      <summary>Frees an unmanaged string pointer that was allocated using the <see cref="M:System.Runtime.InteropServices.Marshal.StringToCoTaskMemUTF8(System.String)" /> method.</summary>
-      <param name="s">The address of the unmanaged string to free.</param>
+      <param name="s" />
     </member>
     <member name="M:System.Runtime.InteropServices.Marshal.ZeroFreeGlobalAllocAnsi(System.IntPtr)">
       <summary>Frees an unmanaged string pointer that was allocated using the <see cref="M:System.Runtime.InteropServices.Marshal.SecureStringToGlobalAllocAnsi(System.Security.SecureString)" /> method.</summary>
@@ -4808,6 +4720,14 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="T:System.Runtime.InteropServices.MarshalAsAttribute">
       <summary>Indicates how to marshal the data between managed and unmanaged code.</summary>
     </member>
+    <member name="M:System.Runtime.InteropServices.MarshalAsAttribute.#ctor(System.Int16)">
+      <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.MarshalAsAttribute" /> class with the specified <see cref="T:System.Runtime.InteropServices.UnmanagedType" /> value.</summary>
+      <param name="unmanagedType">The value the data is to be marshaled as.</param>
+    </member>
+    <member name="M:System.Runtime.InteropServices.MarshalAsAttribute.#ctor(System.Runtime.InteropServices.UnmanagedType)">
+      <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.MarshalAsAttribute" /> class with the specified <see cref="T:System.Runtime.InteropServices.UnmanagedType" /> enumeration member.</summary>
+      <param name="unmanagedType">The value the data is to be marshaled as.</param>
+    </member>
     <member name="F:System.Runtime.InteropServices.MarshalAsAttribute.ArraySubType">
       <summary>Specifies the element type of the unmanaged <see cref="F:System.Runtime.InteropServices.UnmanagedType.LPArray" /> or <see cref="F:System.Runtime.InteropServices.UnmanagedType.ByValArray" />.</summary>
     </member>
@@ -4835,14 +4755,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="F:System.Runtime.InteropServices.MarshalAsAttribute.SizeParamIndex">
       <summary>Indicates the zero-based parameter that contains the count of array elements, similar to <see langword="size_is" /> in COM.</summary>
     </member>
-    <member name="M:System.Runtime.InteropServices.MarshalAsAttribute.#ctor(System.Int16)">
-      <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.MarshalAsAttribute" /> class with the specified <see cref="T:System.Runtime.InteropServices.UnmanagedType" /> value.</summary>
-      <param name="unmanagedType">The value the data is to be marshaled as.</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.MarshalAsAttribute.#ctor(System.Runtime.InteropServices.UnmanagedType)">
-      <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.MarshalAsAttribute" /> class with the specified <see cref="T:System.Runtime.InteropServices.UnmanagedType" /> enumeration member.</summary>
-      <param name="unmanagedType">The value the data is to be marshaled as.</param>
-    </member>
     <member name="P:System.Runtime.InteropServices.MarshalAsAttribute.Value">
       <summary>Gets the <see cref="T:System.Runtime.InteropServices.UnmanagedType" /> value the data is to be marshaled as.</summary>
       <returns>The <see cref="T:System.Runtime.InteropServices.UnmanagedType" /> value the data is to be marshaled as.</returns>
@@ -4880,39 +4792,39 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Gets the address of an exported symbol.</summary>
       <param name="handle">The native library OS handle.</param>
       <param name="name">The name of the exported symbol.</param>
+      <returns>The address of the symbol.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="handle" /> or <paramref name="name" /> is <see langword="null" />.</exception>
       <exception cref="T:System.EntryPointNotFoundException">The symbol is not found.</exception>
-      <returns>The address of the symbol.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.NativeLibrary.Load(System.String)">
       <summary>Provides a simple API for loading a native library that wraps the OS loader and uses default flags.</summary>
       <param name="libraryPath">The name of the native library to be loaded.</param>
+      <returns>The OS handle for the loaded native library.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="libraryPath" /> is <see langword="null" />.</exception>
       <exception cref="T:System.DllNotFoundException">The library can't be found.</exception>
       <exception cref="T:System.BadImageFormatException">The library is not valid.</exception>
-      <returns>The OS handle for the loaded native library.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.NativeLibrary.Load(System.String,System.Reflection.Assembly,System.Nullable{System.Runtime.InteropServices.DllImportSearchPath})">
       <summary>Provides a high-level API for loading a native library.</summary>
       <param name="libraryName">The name of the native library to be loaded.</param>
       <param name="assembly">The assembly loading the native library.</param>
       <param name="searchPath">The search path.</param>
+      <returns>The OS handle for the loaded library.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="libraryName" /> or <paramref name="assembly" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="assembly" /> is not a <see langword="RuntimeAssembly" />.</exception>
       <exception cref="T:System.DllNotFoundException">The library can't be found.</exception>
       <exception cref="T:System.BadImageFormatException">The library is not valid.</exception>
-      <returns>The OS handle for the loaded library.</returns>
     </member>
     <member name="M:System.Runtime.InteropServices.NativeLibrary.SetDllImportResolver(System.Reflection.Assembly,System.Runtime.InteropServices.DllImportResolver)">
       <summary>Sets a callback for resolving native library imports from an assembly.</summary>
       <param name="assembly">The assembly for which the resolver is registered.</param>
       <param name="resolver">The resolver callback to register.</param>
       <exception cref="T:System.ArgumentNullException">
-        <paramref name="assembly" /> or <paramref name="resolver" /> is <see langword="null" />.</exception>
+        <paramref name="assembly" /> or paramref name="resolver" /&gt; is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">A resolver is already set for this assembly.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.NativeLibrary.TryGetExport(System.IntPtr,System.String,System.IntPtr@)">
@@ -4920,19 +4832,19 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="handle">The native library OS handle.</param>
       <param name="name">The name of the exported symbol.</param>
       <param name="address">When the method returns, contains the symbol address, if it exists.</param>
-      <exception cref="T:System.ArgumentNullException">
-        <paramref name="handle" /> or <paramref name="name" /> is <see langword="null" />.</exception>
       <returns>
         <see langword="true" /> if the method returned successfully; otherwise, <see langword="false" />.</returns>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="handle" /> or <paramref name="name" /> is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.NativeLibrary.TryLoad(System.String,System.IntPtr@)">
       <summary>Provides a simple API for loading a native library and returns a value that indicates whether the operation succeeded.</summary>
       <param name="libraryPath">The name of the native library to be loaded.</param>
       <param name="handle">When the method returns, the OS handle of the loaded native library.</param>
-      <exception cref="T:System.ArgumentNullException">
-        <paramref name="libraryPath" /> is <see langword="null" />.</exception>
       <returns>
         <see langword="true" /> if the native library was loaded successful; otherwise, <see langword="false" />.</returns>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="libraryPath" /> is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.NativeLibrary.TryLoad(System.String,System.Reflection.Assembly,System.Nullable{System.Runtime.InteropServices.DllImportSearchPath},System.IntPtr@)">
       <summary>Provides a high-level API that loads a native library and returns a value that indicates whether the operation succeeded.</summary>
@@ -4940,169 +4852,12 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="assembly">The assembly loading the native library.</param>
       <param name="searchPath">The search path.</param>
       <param name="handle">When the method returns, the OS handle of the loaded native library.</param>
+      <returns>
+        <see langword="true" /> if the load operation was successful; otherwise, <see langword="false" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="libraryPath" /> or <paramref name="assembly" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="assembly" /> is not a <see langword="RuntimeAssembly" />.</exception>
-      <returns>
-        <see langword="true" /> if the load operation was successful; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="T:System.Runtime.InteropServices.NativeMemory">
-      <summary>This class contains methods that are mainly used to manage native memory.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NativeMemory.AlignedAlloc(System.UIntPtr,System.UIntPtr)">
-      <summary>Allocates an aligned block of memory of the specified size and alignment, in bytes.</summary>
-      <param name="byteCount">The size, in bytes, of the block to allocate.</param>
-      <param name="alignment">The alignment, in bytes, of the block to allocate. This must be a power of <c>2</c>.</param>
-      <exception cref="T:System.ArgumentException">
-        <paramref name="alignment" /> is not a power of two.</exception>
-      <exception cref="T:System.OutOfMemoryException">Allocating <paramref name="byteCount" /> of memory with <paramref name="alignment" /> failed.</exception>
-      <returns>A pointer to the allocated aligned block of memory.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NativeMemory.AlignedFree(System.Void*)">
-      <summary>Frees an aligned block of memory.</summary>
-      <param name="ptr">A pointer to the aligned block of memory that should be freed.</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NativeMemory.AlignedRealloc(System.Void*,System.UIntPtr,System.UIntPtr)">
-      <summary>Reallocates an aligned block of memory of the specified size and alignment, in bytes.</summary>
-      <param name="ptr">The previously allocated block of memory.</param>
-      <param name="byteCount">The size, in bytes, of the block to allocate.</param>
-      <param name="alignment">The alignment, in bytes, of the block to allocate. This must be a power of <c>2</c>.</param>
-      <exception cref="T:System.ArgumentException">
-        <paramref name="alignment" /> is not a power of two.</exception>
-      <exception cref="T:System.OutOfMemoryException">Reallocating <paramref name="byteCount" /> of memory with <paramref name="alignment" /> failed.</exception>
-      <returns>A pointer to the reallocated aligned block of memory.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NativeMemory.Alloc(System.UIntPtr)">
-      <summary>Allocates a block of memory of the specified size, in bytes.</summary>
-      <param name="byteCount">The size, in bytes, of the block to allocate.</param>
-      <exception cref="T:System.OutOfMemoryException">Allocating <paramref name="byteCount" /> of memory failed.</exception>
-      <returns>A pointer to the allocated block of memory.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NativeMemory.Alloc(System.UIntPtr,System.UIntPtr)">
-      <summary>Allocates a block of memory of the specified size, in elements.</summary>
-      <param name="elementCount">The count, in elements, of the block to allocate.</param>
-      <param name="elementSize">The size, in bytes, of each element in the allocation.</param>
-      <exception cref="T:System.OutOfMemoryException">Allocating <paramref name="elementCount" /> * <paramref name="elementSize" /> bytes of memory failed.</exception>
-      <returns>A pointer to the allocated block of memory.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NativeMemory.AllocZeroed(System.UIntPtr)">
-      <summary>Allocates and zeroes a block of memory of the specified size, in bytes.</summary>
-      <param name="byteCount">The size, in bytes, of the block to allocate.</param>
-      <exception cref="T:System.OutOfMemoryException">Allocating <paramref name="byteCount" /> of memory failed.</exception>
-      <returns>A pointer to the allocated and zeroed block of memory.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NativeMemory.AllocZeroed(System.UIntPtr,System.UIntPtr)">
-      <summary>Allocates and zeroes a block of memory of the specified size, in elements.</summary>
-      <param name="elementCount">The count, in elements, of the block to allocate.</param>
-      <param name="elementSize">The size, in bytes, of each element in the allocation.</param>
-      <exception cref="T:System.OutOfMemoryException">Allocating <paramref name="elementCount" /> * <paramref name="elementSize" /> bytes of memory failed.</exception>
-      <returns>A pointer to the allocated and zeroed block of memory.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NativeMemory.Free(System.Void*)">
-      <summary>Frees a block of memory.</summary>
-      <param name="ptr">A pointer to the block of memory that should be freed.</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NativeMemory.Realloc(System.Void*,System.UIntPtr)">
-      <summary>Reallocates a block of memory to be the specified size, in bytes.</summary>
-      <param name="ptr">The previously allocated block of memory.</param>
-      <param name="byteCount">The size, in bytes, of the reallocated block.</param>
-      <exception cref="T:System.OutOfMemoryException">Reallocating <paramref name="byteCount" /> of memory failed.</exception>
-      <returns>A pointer to the reallocated block of memory.</returns>
-    </member>
-    <member name="T:System.Runtime.InteropServices.NFloat">
-      <summary>
-        <see cref="T:System.Runtime.InteropServices.NFloat" /> is an immutable value type that represents a floating type that has the same size as the native integer size.
-      It is meant to be used as an exchange type at the managed/unmanaged boundary to accurately represent in managed code unmanaged APIs that use a type alias for C or C++'s <c>float</c> on 32-bit platforms or <c>double</c> on 64-bit platforms, such as the CGFloat type in libraries provided by Apple.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NFloat.#ctor(System.Double)">
-      <summary>Constructs an instance from a 64-bit floating point value.</summary>
-      <param name="value">The floating-point value.</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NFloat.#ctor(System.Single)">
-      <summary>Constructs an instance from a 32-bit floating point value.</summary>
-      <param name="value">The floating-point value.</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NFloat.Equals(System.Object)">
-      <summary>Returns a value indicating whether this instance is equal to a specified object.</summary>
-      <param name="o">An object to compare with this instance.</param>
-      <returns>
-        <see langword="true" /> if <paramref name="o" /> is an instance of <see cref="T:System.Runtime.InteropServices.NFloat" /> and equals the value of this instance; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NFloat.Equals(System.Runtime.InteropServices.NFloat)">
-      <summary>Returns a value indicating whether this instance is equal to a specified <see cref="T:System.Runtime.InteropServices.CLong" /> value.</summary>
-      <param name="other">An <see cref="T:System.Runtime.InteropServices.NFloat" /> value to compare to this instance.</param>
-      <returns>
-        <see langword="true" /> if <paramref name="other" /> has the same value as this instance; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NFloat.GetHashCode">
-      <summary>Returns the hash code for this instance.</summary>
-      <returns>A 32-bit signed integer hash code.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.NFloat.ToString">
-      <summary>Converts the numeric value of this instance to its equivalent string representation.</summary>
-      <returns>The string representation of the value of this instance.</returns>
-    </member>
-    <member name="P:System.Runtime.InteropServices.NFloat.Value">
-      <summary>The underlying floating-point value of this instance.</summary>
-    </member>
-    <member name="T:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal">
-      <summary>API to enable Objective-C marshalling.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.CreateReferenceTrackingHandle(System.Object,System.Span{System.IntPtr}@)">
-      <summary>Request native reference tracking for the supplied object.</summary>
-      <param name="obj">The object to track.</param>
-      <param name="taggedMemory">A pointer to memory tagged to the object.</param>
-      <exception cref="T:System.InvalidOperationException">Thrown if the ObjectiveCMarshal API has not been initialized.</exception>
-      <returns>Reference tracking GC handle.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.Initialize(method,method,method,System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler)">
-      <summary>Initialize the Objective-C marshalling API.</summary>
-      <param name="beginEndCallback">Called when tracking begins and ends.</param>
-      <param name="isReferencedCallback">Called to determine if a managed object instance is referenced elsewhere, and must not be collected by the GC.</param>
-      <param name="trackedObjectEnteredFinalization">Called when a tracked object enters the finalization queue.</param>
-      <param name="unhandledExceptionPropagationHandler">Handler for the propagation of unhandled Exceptions across a managed -&gt; native boundary (that is, Reverse P/Invoke).</param>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.SetMessageSendCallback(System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction,System.IntPtr)">
-      <summary>Set a function pointer override for an Objective-C runtime message passing export.</summary>
-      <param name="msgSendFunction">The export to override.</param>
-      <param name="func">The function override.</param>
-      <exception cref="T:System.InvalidOperationException">Thrown if the msgSend function has already been overridden.</exception>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.SetMessageSendPendingException(System.Exception)">
-      <summary>Sets a pending exception to be thrown the next time the runtime is entered from an Objective-C msgSend P/Invoke.</summary>
-      <param name="exception">The exception.</param>
-    </member>
-    <member name="T:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction">
-      <summary>Objective-C msgSend function override options.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction.MsgSend">
-      <summary>Overrides the Objective-C runtime's msgSend().</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction.MsgSendFpret">
-      <summary>Overrides the Objective-C runtime's objc_msgSend_fpret().</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction.MsgSendStret">
-      <summary>Overrides the Objective-C runtime's objc_msgSend_stret().</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction.MsgSendSuper">
-      <summary>Overrides the Objective-C runtime's objc_msgSendSuper().</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.MessageSendFunction.MsgSendSuperStret">
-      <summary>Overrides the Objective-C runtime's objc_msgSendSuper_stret().</summary>
-    </member>
-    <member name="T:System.Runtime.InteropServices.ObjectiveC.ObjectiveCMarshal.UnhandledExceptionPropagationHandler">
-      <summary>Handler for unhandled Exceptions crossing the managed -&gt; native boundary (that is, Reverse P/Invoke).</summary>
-      <param name="exception">Unhandled exception.</param>
-      <param name="lastMethod">Last managed method.</param>
-      <param name="context">Context provided to the returned function pointer.</param>
-      <returns>Exception propagation callback.</returns>
-    </member>
-    <member name="T:System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute">
-      <summary>Attribute used to indicate a class represents a tracked Objective-C type.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute.#ctor">
-      <summary>Instantiate a <see cref="T:System.Runtime.InteropServices.ObjectiveC.ObjectiveCTrackedTypeAttribute" /> instance.</summary>
     </member>
     <member name="T:System.Runtime.InteropServices.OptionalAttribute">
       <summary>Indicates that a parameter is optional.</summary>
@@ -5110,74 +4865,8 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="M:System.Runtime.InteropServices.OptionalAttribute.#ctor">
       <summary>Initializes a new instance of the <see langword="OptionalAttribute" /> class with default values.</summary>
     </member>
-    <member name="T:System.Runtime.InteropServices.PosixSignal">
-      <summary>Specifies a POSIX signal number.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGCHLD">
-      <summary>Child stopped</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGCONT">
-      <summary>Continue if stopped</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGHUP">
-      <summary>Hangup</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGINT">
-      <summary>Interrupt</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGQUIT">
-      <summary>Quit</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGTERM">
-      <summary>Termination</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGTSTP">
-      <summary>Stop typed at terminal</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGTTIN">
-      <summary>Terminal input for background process</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGTTOU">
-      <summary>Terminal output for background process</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.PosixSignal.SIGWINCH">
-      <summary>Window resized</summary>
-    </member>
-    <member name="T:System.Runtime.InteropServices.PosixSignalContext">
-      <summary>Provides data for a <see cref="T:System.Runtime.InteropServices.PosixSignalRegistration" /> event.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.PosixSignalContext.#ctor(System.Runtime.InteropServices.PosixSignal)">
-      <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.PosixSignalContext" /> class.</summary>
-      <param name="signal">The signal that occurred.</param>
-    </member>
-    <member name="P:System.Runtime.InteropServices.PosixSignalContext.Cancel">
-      <summary>Gets or sets a value that indicates whether to cancel the default handling of the signal. The default is <see langword="false" />.</summary>
-    </member>
-    <member name="P:System.Runtime.InteropServices.PosixSignalContext.Signal">
-      <summary>Gets the signal that occurred.</summary>
-    </member>
-    <member name="T:System.Runtime.InteropServices.PosixSignalRegistration">
-      <summary>Handles a <see cref="T:System.Runtime.InteropServices.PosixSignal" />.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.PosixSignalRegistration.Create(System.Runtime.InteropServices.PosixSignal,System.Action{System.Runtime.InteropServices.PosixSignalContext})">
-      <summary>Registers a <paramref name="handler" /> that is invoked when the <paramref name="signal" /> occurs.</summary>
-      <param name="signal">The signal to register for.</param>
-      <param name="handler">The handler that gets invoked.</param>
-      <exception cref="T:System.ArgumentNullException">
-        <paramref name="handler" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.PlatformNotSupportedException">
-        <paramref name="signal" /> is not supported by the platform.</exception>
-      <exception cref="T:System.IO.IOException">An error occurred while setting up the signal handling or while installing the handler for the specified signal.</exception>
-      <returns>A <see cref="T:System.Runtime.InteropServices.PosixSignalRegistration" /> instance that can be disposed to unregister the handler.</returns>
-    </member>
-    <member name="M:System.Runtime.InteropServices.PosixSignalRegistration.Dispose">
-      <summary>Unregisters the handler.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.PosixSignalRegistration.Finalize">
-      <summary>Unregisters the handler.</summary>
-    </member>
     <member name="T:System.Runtime.InteropServices.PreserveSigAttribute">
-      <summary>Indicates that the HRESULT signature transformation that takes place during COM interop calls should be suppressed.</summary>
+      <summary>Indicates that the HRESULT or <see langword="retval" /> signature transformation that takes place during COM interop calls should be suppressed.</summary>
     </member>
     <member name="M:System.Runtime.InteropServices.PreserveSigAttribute.#ctor">
       <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.PreserveSigAttribute" /> class.</summary>
@@ -5226,17 +4915,15 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Returns the specified interface on the specified class.</summary>
       <param name="clsid">The identifier for the desired class.</param>
       <param name="riid">The identifier for the desired interface.</param>
-      <exception cref="T:System.Runtime.InteropServices.COMException">IUnknown::QueryInterface failure.</exception>
-      <exception cref="T:System.PlatformNotSupportedException">.NET Core and .NET 5+ only: In all cases.</exception>
       <returns>An unmanaged pointer to the requested interface.</returns>
+      <exception cref="T:System.Runtime.InteropServices.COMException">IUnknown::QueryInterface failure.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsObject(System.Guid,System.Guid)">
       <summary>Returns an instance of a type that represents a COM object by a pointer to its <see langword="IUnknown" /> interface.</summary>
       <param name="clsid">The identifier for the desired class.</param>
       <param name="riid">The identifier for the desired interface.</param>
-      <exception cref="T:System.Runtime.InteropServices.COMException">IUnknown::QueryInterface failure.</exception>
-      <exception cref="T:System.PlatformNotSupportedException">.NET Core and .NET 5+ only: In all cases.</exception>
       <returns>An object that represents the specified unmanaged COM object.</returns>
+      <exception cref="T:System.Runtime.InteropServices.COMException">IUnknown::QueryInterface failure.</exception>
     </member>
     <member name="M:System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion">
       <summary>Gets the version number of the common language runtime that is running the current process.</summary>
@@ -5244,7 +4931,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     </member>
     <member name="P:System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile">
       <summary>Gets the path to the system configuration file.</summary>
-      <exception cref="T:System.PlatformNotSupportedException">.NET Core and .NET 5+ only: In all cases.</exception>
       <returns>The path to the system configuration file.</returns>
     </member>
     <member name="T:System.Runtime.InteropServices.SafeArrayRankMismatchException">
@@ -5291,6 +4977,100 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <param name="message">The error message that explains the reason for the exception.</param>
       <param name="inner">The exception that is the cause of the current exception. If the <paramref name="inner" /> parameter is not <see langword="null" />, the current exception is raised in a <see langword="catch" /> block that handles the inner exception.</param>
     </member>
+    <member name="T:System.Runtime.InteropServices.SafeBuffer">
+      <summary>Provides a controlled memory buffer that can be used for reading and writing. Attempts to access memory outside the controlled buffer (underruns and overruns) raise exceptions.</summary>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.#ctor(System.Boolean)">
+      <summary>Creates a new instance of the <see cref="T:System.Runtime.InteropServices.SafeBuffer" /> class, and specifies whether the buffer handle is to be reliably released.</summary>
+      <param name="ownsHandle">
+        <see langword="true" /> to reliably release the handle during the finalization phase; <see langword="false" /> to prevent reliable release (not recommended).</param>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.AcquirePointer(System.Byte*@)">
+      <summary>Obtains a pointer from a <see cref="T:System.Runtime.InteropServices.SafeBuffer" /> object for a block of memory.</summary>
+      <param name="pointer">A byte pointer, passed by reference, to receive the pointer from within the <see cref="T:System.Runtime.InteropServices.SafeBuffer" /> object. You must set this pointer to <see langword="null" /> before you call this method.</param>
+      <exception cref="T:System.InvalidOperationException">The <see cref="Overload:System.Runtime.InteropServices.SafeBuffer.Initialize" /> method has not been called.</exception>
+    </member>
+    <member name="P:System.Runtime.InteropServices.SafeBuffer.ByteLength">
+      <summary>Gets the size of the buffer, in bytes.</summary>
+      <returns>The number of bytes in the memory buffer.</returns>
+      <exception cref="T:System.InvalidOperationException">The <see cref="Overload:System.Runtime.InteropServices.SafeBuffer.Initialize" /> method has not been called.</exception>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.Initialize(System.UInt32,System.UInt32)">
+      <summary>Specifies the allocation size of the memory buffer by using the specified number of elements and element size. You must call this method before you use the <see cref="T:System.Runtime.InteropServices.SafeBuffer" /> instance.</summary>
+      <param name="numElements">The number of elements in the buffer.</param>
+      <param name="sizeOfEachElement">The size of each element in the buffer.</param>
+      <exception cref="T:System.ArgumentOutOfRangeException">
+        <paramref name="numElements" /> is less than zero.
+-or-
+<paramref name="sizeOfEachElement" /> is less than zero.
+-or-
+<paramref name="numElements" /> multiplied by <paramref name="sizeOfEachElement" /> is greater than the available address space.</exception>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.Initialize(System.UInt64)">
+      <summary>Defines the allocation size of the memory region in bytes. You must call this method before you use the <see cref="T:System.Runtime.InteropServices.SafeBuffer" /> instance.</summary>
+      <param name="numBytes">The number of bytes in the buffer.</param>
+      <exception cref="T:System.ArgumentOutOfRangeException">
+        <paramref name="numBytes" /> is less than zero.
+-or-
+<paramref name="numBytes" /> is greater than the available address space.</exception>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.Initialize``1(System.UInt32)">
+      <summary>Defines the allocation size of the memory region by specifying the number of value types. You must call this method before you use the <see cref="T:System.Runtime.InteropServices.SafeBuffer" /> instance.</summary>
+      <param name="numElements">The number of elements of the value type to allocate memory for.</param>
+      <typeparam name="T">The value type to allocate memory for.</typeparam>
+      <exception cref="T:System.ArgumentOutOfRangeException">
+        <paramref name="numElements" /> is less than zero.
+-or-
+<paramref name="numElements" /> multiplied by the size of each element is greater than the available address space.</exception>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.Read``1(System.UInt64)">
+      <summary>Reads a value type from memory at the specified offset.</summary>
+      <param name="byteOffset">The location from which to read the value type. You may have to consider alignment issues.</param>
+      <typeparam name="T">The value type to read.</typeparam>
+      <returns>The value type that was read from memory.</returns>
+      <exception cref="T:System.InvalidOperationException">The <see cref="Overload:System.Runtime.InteropServices.SafeBuffer.Initialize" /> method has not been called.</exception>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.ReadArray``1(System.UInt64,``0[],System.Int32,System.Int32)">
+      <summary>Reads the specified number of value types from memory starting at the offset, and writes them into an array starting at the index.</summary>
+      <param name="byteOffset">The location from which to start reading.</param>
+      <param name="array">The output array to write to.</param>
+      <param name="index">The location in the output array to begin writing to.</param>
+      <param name="count">The number of value types to read from the input array and to write to the output array.</param>
+      <typeparam name="T">The value type to read.</typeparam>
+      <exception cref="T:System.ArgumentOutOfRangeException">
+        <paramref name="index" /> is less than zero.
+-or-
+<paramref name="count" /> is less than zero.</exception>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="array" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentException">The length of the array minus the index is less than <paramref name="count" />.</exception>
+      <exception cref="T:System.InvalidOperationException">The <see cref="Overload:System.Runtime.InteropServices.SafeBuffer.Initialize" /> method has not been called.</exception>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.ReleasePointer">
+      <summary>Releases a pointer that was obtained by the <see cref="M:System.Runtime.InteropServices.SafeBuffer.AcquirePointer(System.Byte*@)" /> method.</summary>
+      <exception cref="T:System.InvalidOperationException">The <see cref="Overload:System.Runtime.InteropServices.SafeBuffer.Initialize" /> method has not been called.</exception>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.Write``1(System.UInt64,``0)">
+      <summary>Writes a value type to memory at the given location.</summary>
+      <param name="byteOffset">The location at which to start writing. You may have to consider alignment issues.</param>
+      <param name="value">The value to write.</param>
+      <typeparam name="T">The value type to write.</typeparam>
+      <exception cref="T:System.InvalidOperationException">The <see cref="Overload:System.Runtime.InteropServices.SafeBuffer.Initialize" /> method has not been called.</exception>
+    </member>
+    <member name="M:System.Runtime.InteropServices.SafeBuffer.WriteArray``1(System.UInt64,``0[],System.Int32,System.Int32)">
+      <summary>Writes the specified number of value types to a memory location by reading bytes starting from the specified location in the input array.</summary>
+      <param name="byteOffset">The location in memory to write to.</param>
+      <param name="array">The input array.</param>
+      <param name="index">The offset in the array to start reading from.</param>
+      <param name="count">The number of value types to write.</param>
+      <typeparam name="T">The value type to write.</typeparam>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="array" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">
+        <paramref name="index" /> or <paramref name="count" /> is less than zero.</exception>
+      <exception cref="T:System.ArgumentException">The length of the input array minus <paramref name="index" /> is less than <paramref name="count" />.</exception>
+      <exception cref="T:System.InvalidOperationException">The <see cref="Overload:System.Runtime.InteropServices.SafeBuffer.Initialize" /> method has not been called.</exception>
+    </member>
     <member name="T:System.Runtime.InteropServices.SEHException">
       <summary>Represents structured exception handling (SEH) errors.</summary>
     </member>
@@ -5554,33 +5334,20 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>Gets the object contained by this wrapper.</summary>
       <returns>The wrapped object.</returns>
     </member>
-    <member name="T:System.Runtime.InteropServices.UnmanagedCallConvAttribute">
-      <summary>Provides an equivalent to <see cref="T:System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute" /> for native functions declared in .NET.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.UnmanagedCallConvAttribute.CallConvs">
-      <summary>Types indicating calling conventions for the unmanaged target.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.UnmanagedCallConvAttribute.#ctor">
-      <summary>Initializes a new <see cref="T:System.Runtime.InteropServices.UnmanagedCallConvAttribute" /> instance.</summary>
-    </member>
-    <member name="T:System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute">
-      <summary>Any method marked with <see cref="T:System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute" /> can be directly called from native code. The function token can be loaded to a local variable using the address-of operator in C# and passed as a callback to a native method.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute.CallConvs">
-      <summary>Optional. If omitted, the runtime will use the default platform calling convention.</summary>
-    </member>
-    <member name="F:System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute.EntryPoint">
-      <summary>Optional. If omitted, no named export is emitted during compilation.</summary>
-    </member>
-    <member name="M:System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute.#ctor">
-      <summary>Initializes a new <see cref="T:System.Runtime.InteropServices.UnmanagedCallersOnlyAttribute" /> instance.</summary>
-    </member>
     <member name="T:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute">
       <summary>Controls the marshaling behavior of a delegate signature passed as an unmanaged function pointer to or from unmanaged code. This class cannot be inherited.</summary>
     </member>
+    <member name="M:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.#ctor(System.Runtime.InteropServices.CallingConvention)">
+      <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute" /> class with the specified calling convention.</summary>
+      <param name="callingConvention">The specified calling convention.</param>
+    </member>
     <member name="F:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.BestFitMapping">
       <summary>Enables or disables best-fit mapping behavior when converting Unicode characters to ANSI characters.</summary>
     </member>
+    <member name="P:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.CallingConvention">
+      <summary>Gets the value of the calling convention.</summary>
+      <returns>The value of the calling convention specified by the <see cref="M:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.#ctor(System.Runtime.InteropServices.CallingConvention)" /> constructor.</returns>
+    </member>
     <member name="F:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.CharSet">
       <summary>Indicates how to marshal string parameters to the method, and controls name mangling.</summary>
     </member>
@@ -5590,14 +5357,6 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     <member name="F:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.ThrowOnUnmappableChar">
       <summary>Enables or disables the throwing of an exception on an unmappable Unicode character that is converted to an ANSI "?" character.</summary>
     </member>
-    <member name="M:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.#ctor(System.Runtime.InteropServices.CallingConvention)">
-      <summary>Initializes a new instance of the <see cref="T:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute" /> class with the specified calling convention.</summary>
-      <param name="callingConvention">The specified calling convention.</param>
-    </member>
-    <member name="P:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.CallingConvention">
-      <summary>Gets the value of the calling convention.</summary>
-      <returns>The value of the calling convention specified by the <see cref="M:System.Runtime.InteropServices.UnmanagedFunctionPointerAttribute.#ctor(System.Runtime.InteropServices.CallingConvention)" /> constructor.</returns>
-    </member>
     <member name="T:System.Runtime.InteropServices.UnmanagedType">
       <summary>Identifies how to marshal parameters or fields to unmanaged code.</summary>
     </member>
@@ -5668,7 +5427,7 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>A pointer to a C-style structure that you use to marshal managed formatted classes. This member is valid for platform invoke methods only.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.UnmanagedType.LPTStr">
-      <summary>A Unicode character string. This value is supported only for platform invoke and not for COM interop, because exporting a string of type <see langword="LPTStr" /> is not supported.</summary>
+      <summary>A platform-dependent character string: ANSI on Windows 98, and Unicode on Windows NT and Windows XP. This value is supported only for platform invoke and not for COM interop, because exporting a string of type <see langword="LPTStr" /> is not supported.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.UnmanagedType.LPUTF8Str">
       <summary>A pointer to a UTF-8 encoded string.</summary>
@@ -5695,7 +5454,7 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <summary>A platform-dependent, unsigned integer: 4 bytes on 32-bit Windows, 8 bytes on 64-bit Windows.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.UnmanagedType.TBStr">
-      <summary>A length-prefixed, Unicode <see langword="char" /> string. You rarely use this BSTR-like member.</summary>
+      <summary>A length-prefixed, platform-dependent <see langword="char" /> string: ANSI on Windows 98, Unicode on Windows NT. You rarely use this BSTR-like member.</summary>
     </member>
     <member name="F:System.Runtime.InteropServices.UnmanagedType.U1">
       <summary>A 1-byte unsigned integer.</summary>
@@ -5870,9 +5629,8 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <exception cref="T:System.NotSupportedException">This operation is not supported on this platform.</exception>
     </member>
     <member name="M:System.Security.SecureString.#ctor(System.Char*,System.Int32)">
-      <summary>Initializes a new instance of the <see cref="T:System.Security.SecureString" /> class from a subarray of <see cref="T:System.Char" /> objects.  
-  
- This constructor is not CLS-compliant. The CLS-compliant alternative is <see cref="M:System.Security.SecureString.#ctor" />.</summary>
+      <summary>Initializes a new instance of the <see cref="T:System.Security.SecureString" /> class from a subarray of <see cref="T:System.Char" /> objects.
+This constructor is not CLS-compliant. The CLS-compliant alternative is <see cref="M:System.Security.SecureString.#ctor" />.</summary>
       <param name="value">A pointer to an array of <see cref="T:System.Char" /> objects.</param>
       <param name="length">The number of elements of <paramref name="value" /> to include in the new instance.</param>
       <exception cref="T:System.ArgumentNullException">
@@ -5897,9 +5655,9 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     </member>
     <member name="M:System.Security.SecureString.Copy">
       <summary>Creates a copy of the current secure string.</summary>
+      <returns>A duplicate of this secure string.</returns>
       <exception cref="T:System.ObjectDisposedException">This secure string has already been disposed.</exception>
       <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurred while protecting or unprotecting the value of this secure string.</exception>
-      <returns>A duplicate of this secure string.</returns>
     </member>
     <member name="M:System.Security.SecureString.Dispose">
       <summary>Releases all resources used by the current <see cref="T:System.Security.SecureString" /> object.</summary>
@@ -5911,18 +5669,21 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
       <exception cref="T:System.ObjectDisposedException">This secure string has already been disposed.</exception>
       <exception cref="T:System.InvalidOperationException">This secure string is read-only.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
-        <paramref name="index" /> is less than zero, or greater than the length of this secure string.  
-  
- -or-  
-  
- Performing this operation would make the length of this secure string greater than 65,536 characters.</exception>
+        <paramref name="index" /> is less than zero, or greater than the length of this secure string.
+-or-
+Performing this operation would make the length of this secure string greater than 65,536 characters.</exception>
       <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurred while protecting or unprotecting the value of this secure string.</exception>
     </member>
     <member name="M:System.Security.SecureString.IsReadOnly">
       <summary>Indicates whether this secure string is marked read-only.</summary>
-      <exception cref="T:System.ObjectDisposedException">This secure string has already been disposed.</exception>
       <returns>
         <see langword="true" /> if this secure string is marked read-only; otherwise, <see langword="false" />.</returns>
+      <exception cref="T:System.ObjectDisposedException">This secure string has already been disposed.</exception>
+    </member>
+    <member name="P:System.Security.SecureString.Length">
+      <summary>Gets the number of characters in the current secure string.</summary>
+      <returns>The number of <see cref="T:System.Char" /> objects in this secure string.</returns>
+      <exception cref="T:System.ObjectDisposedException">This secure string has already been disposed.</exception>
     </member>
     <member name="M:System.Security.SecureString.MakeReadOnly">
       <summary>Makes the text value of this secure string read-only.</summary>
@@ -5939,7 +5700,7 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
     </member>
     <member name="M:System.Security.SecureString.SetAt(System.Int32,System.Char)">
       <summary>Replaces the existing character at the specified index position with another character.</summary>
-      <param name="index">The index position of an existing character in this secure string.</param>
+      <param name="index">The index position of an existing character in this secure string</param>
       <param name="c">A character that replaces the existing character.</param>
       <exception cref="T:System.ObjectDisposedException">This secure string has already been disposed.</exception>
       <exception cref="T:System.InvalidOperationException">This secure string is read-only.</exception>
@@ -5947,41 +5708,40 @@ Note: In .NET for Windows Store apps or the Portable Class Library, catch the ba
         <paramref name="index" /> is less than zero, or greater than or equal to the length of this secure string.</exception>
       <exception cref="T:System.Security.Cryptography.CryptographicException">An error occurred while protecting or unprotecting the value of this secure string.</exception>
     </member>
-    <member name="P:System.Security.SecureString.Length">
-      <summary>Gets the number of characters in the current secure string.</summary>
-      <exception cref="T:System.ObjectDisposedException">This secure string has already been disposed.</exception>
-      <returns>The number of <see cref="T:System.Char" /> objects in this secure string.</returns>
-    </member>
     <member name="T:System.Security.SecureStringMarshal">
       <summary>Provides a collection of methods for allocating unmanaged memory and copying unmanaged memory blocks.</summary>
     </member>
     <member name="M:System.Security.SecureStringMarshal.SecureStringToCoTaskMemAnsi(System.Security.SecureString)">
       <summary>Copies the contents of a managed <see cref="T:System.Security.SecureString" /> object to a block of memory allocated from the unmanaged COM task allocator.</summary>
       <param name="s">The managed object to copy.</param>
+      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="s" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.NotSupportedException">The current computer is not running Windows 2000 Service Pack 3 or later.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
     </member>
     <member name="M:System.Security.SecureStringMarshal.SecureStringToCoTaskMemUnicode(System.Security.SecureString)">
       <summary>Copies the contents of a managed <see cref="T:System.Security.SecureString" /> object to a block of memory allocated from the unmanaged COM task allocator.</summary>
       <param name="s">The managed object to copy.</param>
+      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="s" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.NotSupportedException">The current computer is not running Windows 2000 Service Pack 3 or later.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>The address, in unmanaged memory, where the <paramref name="s" /> parameter was copied to, or 0 if a null object was supplied.</returns>
     </member>
     <member name="M:System.Security.SecureStringMarshal.SecureStringToGlobalAllocAnsi(System.Security.SecureString)">
       <summary>Copies the contents of a managed <see cref="T:System.Security.SecureString" /> into unmanaged memory, converting into ANSI format as it copies.</summary>
       <param name="s">The managed object to copy.</param>
+      <returns>The address, in unmanaged memory, to where the <paramref name="s" /> parameter was copied, or 0 if a null object was supplied.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="s" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.NotSupportedException">The current computer is not running Windows 2000 Service Pack 3 or later.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>The address, in unmanaged memory, to where the <paramref name="s" /> parameter was copied, or 0 if a null object was supplied.</returns>
     </member>
     <member name="M:System.Security.SecureStringMarshal.SecureStringToGlobalAllocUnicode(System.Security.SecureString)">
       <summary>Copies the contents of a managed <see cref="T:System.Security.SecureString" /> object into unmanaged memory.</summary>
       <param name="s">The managed object to copy.</param>
+      <returns>The address, in unmanaged memory, where <paramref name="s" /> was copied, or 0 if <paramref name="s" /> is a <see cref="T:System.Security.SecureString" /> object whose length is 0.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="s" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.NotSupportedException">The current computer is not running Windows 2000 Service Pack 3 or later.</exception>
       <exception cref="T:System.OutOfMemoryException">There is insufficient memory available.</exception>
-      <returns>The address, in unmanaged memory, where <paramref name="s" /> was copied, or 0 if <paramref name="s" /> is a <see cref="T:System.Security.SecureString" /> object whose length is 0.</returns>
     </member>
   </members>
 </doc>
\ No newline at end of file