Если вы ищете решение, в котором неуправляемый процесс и управляемый процесс могут совместно использовать память, вы можете использовать класс MemoryMappedFile (представлен в .NET 4.0).
Если вы хотите разделить память между неизмененным и управляемым кодом в том же процессе, то вы можете использовать GCHandle
для закрепления управляемого массива в памяти и передачи его в неуправляемый код, который может получить доступ к нему.