PRB: 64-bit managed application fails with an access violation during CLR marshaling

This article helps you resolve a problem that a 64-bit managed application fails with an access violation during common language runtime (CLR) marshaling.

Original product version:   .NET Framework 3.5 Service Pack 1
Original KB number:   2615130

Symptoms

You have a .NET managed application running as a 64-bit process on 64-bit Microsoft Windows XP Service Pack (SP) 3 or 64-bit Windows Server 2003 SP2. The application may crash with an access violation during CLR marshaling. The stack traces and failing function resemble the following information:

0:000> knL
# Child-SP RetAddr Call Site
00 000000000042c900 0000064274ee8998 System_ni!DomainNeutralILStubClass.IL_STUB(System.Guid ByRef, IntPtr, Int32, IntPtr, Int32, IntPtr ByRef)+0xff
01 000000000042ca40 0000064274ee8c30 System_ni!System.Runtime.InteropServices.StandardOleMarshalObject.GetStdMarshaller(System.Guid ByRef, Int32, Int32)+0xe8
02 000000000042caf0 000006427f602322
System_ni!System.Runtime.InteropServices.StandardOleMarshalObject.Microsoft.Win32.UnsafeNativeMethods.IMarshal.MarshalInterface(System.Object, System.Guid ByRef, IntPtr, Int32, IntPtr, Int32)+0x6

...[Snip]

Cause

It's a known bug in 64-bit CLR marshaling where it tries to write to a readonly location causing an Access Violation.

Resolution

To resolve this problem, contact Microsoft Customer Support Services to obtain the hotfix. For a complete list of Microsoft Customer Support Services telephone numbers and information about support costs, visit Microsoft Support.