# System.Runtime.InteropServices

``` diff
 namespace System.Runtime.InteropServices {
     public static class Marshal {
-        public static int QueryInterface(IntPtr pUnk, ref Guid iid, out IntPtr ppv);
+        public static int QueryInterface(IntPtr pUnk, in Guid iid, out IntPtr ppv);
     }
     public static class MemoryMarshal {
-        public static ReadOnlySpan<T> CreateReadOnlySpan<T>([ScopedRefAttribute] ref T reference, int length);
+        public static ReadOnlySpan<T> CreateReadOnlySpan<T>([RequiresLocationAttribute, ScopedRefAttribute] ref T reference, int length);
-        public static bool TryWrite<T>(Span<byte> destination, ref T value) where T : struct;
+        public static bool TryWrite<T>(Span<byte> destination, in T value) where T : struct;
-        public static void Write<T>(Span<byte> destination, ref T value) where T : struct;
+        public static void Write<T>(Span<byte> destination, in T value) where T : struct;
     }
 }
```

