Your question is Pinning in C# Native Interop. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
Why do we need to pin objects when dealing with native code in C#, and what problems can occur if you don't handle pinning correctly?
Explain the interaction between the .NET garbage collector and unmanaged pointers. Discuss when to use fixed, GCHandle.Alloc(..., GCHandleType.Pinned), or safer abstractions, and identify the failure modes you would test for in production code.