MemoryMappedFile.OpenExisting Method (String)

.NET Framework (current version)

Opens an existing memory-mapped file that has the specified name in system memory.

Namespace:   System.IO.MemoryMappedFiles
Assembly:  System.Core (in System.Core.dll)

Public Shared Function OpenExisting (
	mapName As String
) As MemoryMappedFile


Type: System.String

The name of the memory-mapped file to open.

Return Value

Type: System.IO.MemoryMappedFiles.MemoryMappedFile

A memory-mapped file that has the specified name.

Exception Condition

mapName is an empty string.


mapName is null.


The file specified for mapName does not exist.

The memory-mapped file can be either a persisted memory-mapped file (associated with a file on disk) or non persisted.

Opening a Persisted Memory-Mapped File

The following example opens a memory-mapped file named ImgA that has already been created from a file on disk (as shown in the example for the CreateFromFile(String) method).

Imports System
Imports System.IO.MemoryMappedFiles
Imports System.Runtime.InteropServices

Class Program
    Public Shared Sub Main(ByVal args As String())
        ' Assumes another process has created the memory-mapped file.
        Using mmf = MemoryMappedFile.OpenExisting("ImgA")
            Using accessor = mmf.CreateViewAccessor(4000000, 2000000)
                Dim colorSize As Integer = Marshal.SizeOf(GetType(MyColor))
                Dim color As MyColor

                ' Make changes to the view.
                Dim i As Long = 0
                While i < 1500000
                    accessor.Read(i, color)
                    accessor.Write(i, color)
                    i += colorSize
                End While
            End Using
        End Using
    End Sub
End Class

Public Structure MyColor
    Public Red As Short
    Public Green As Short
    Public Blue As Short
    Public Alpha As Short

    ' Make the view brigher.
    Public Sub Brighten(ByVal value As Short)
        Red = CShort(Math.Min(Short.MaxValue, CInt(Red) + value))
        Green = CShort(Math.Min(Short.MaxValue, CInt(Green) + value))
        Blue = CShort(Math.Min(Short.MaxValue, CInt(Blue) + value))
        Alpha = CShort(Math.Min(Short.MaxValue, CInt(Alpha) + value))
    End Sub
End Structure

Opening a Non-Persisted Memory-Mapped File

The following example opens a memory-mapped file used for inter-process communication. This code example is part of a larger example provided for the CreateNew(String, Int64) method.

.NET Framework
Available since 4.0
Return to top