MemoryMappedFile.OpenExisting Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Opens an existing named memory-mapped file in system memory.
Overloads
OpenExisting(String) |
Opens an existing memory-mapped file that has the specified name in system memory. |
OpenExisting(String, MemoryMappedFileRights) |
Opens an existing memory-mapped file that has the specified name and access rights in system memory. |
OpenExisting(String, MemoryMappedFileRights, HandleInheritability) |
Opens an existing memory-mapped file that has the specified name, access rights, and inheritability in system memory. |
OpenExisting(String)
- Source:
- MemoryMappedFile.cs
- Source:
- MemoryMappedFile.cs
- Source:
- MemoryMappedFile.cs
Opens an existing memory-mapped file that has the specified name in system memory.
public:
static System::IO::MemoryMappedFiles::MemoryMappedFile ^ OpenExisting(System::String ^ mapName);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName);
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member OpenExisting : string -> System.IO.MemoryMappedFiles.MemoryMappedFile
static member OpenExisting : string -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function OpenExisting (mapName As String) As MemoryMappedFile
Parameters
- mapName
- String
The name of the memory-mapped file.
Returns
A memory-mapped file that has the specified name.
- Attributes
Exceptions
mapName
is null
.
mapName
is an empty string.
The file specified for mapName
does not exist.
Examples
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).
using System;
using System.IO.MemoryMappedFiles;
using System.Runtime.InteropServices;
class Program
{
static void Main(string[] args)
{
// Assumes another process has created the memory-mapped file.
using (var mmf = MemoryMappedFile.OpenExisting("ImgA"))
{
using (var accessor = mmf.CreateViewAccessor(4000000, 2000000))
{
int colorSize = Marshal.SizeOf(typeof(MyColor));
MyColor color;
// Make changes to the view.
for (long i = 0; i < 1500000; i += colorSize)
{
accessor.Read(i, out color);
color.Brighten(20);
accessor.Write(i, ref color);
}
}
}
}
}
public struct MyColor
{
public short Red;
public short Green;
public short Blue;
public short Alpha;
// Make the view brigher.
public void Brighten(short value)
{
Red = (short)Math.Min(short.MaxValue, (int)Red + value);
Green = (short)Math.Min(short.MaxValue, (int)Green + value);
Blue = (short)Math.Min(short.MaxValue, (int)Blue + value);
Alpha = (short)Math.Min(short.MaxValue, (int)Alpha + value);
}
}
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)
color.Brighten(30)
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.
Remarks
The memory-mapped file can be either a persisted memory-mapped file (associated with a file on disk) or non-persisted.
See also
Applies to
OpenExisting(String, MemoryMappedFileRights)
- Source:
- MemoryMappedFile.cs
- Source:
- MemoryMappedFile.cs
- Source:
- MemoryMappedFile.cs
Opens an existing memory-mapped file that has the specified name and access rights in system memory.
public:
static System::IO::MemoryMappedFiles::MemoryMappedFile ^ OpenExisting(System::String ^ mapName, System::IO::MemoryMappedFiles::MemoryMappedFileRights desiredAccessRights);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights);
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member OpenExisting : string * System.IO.MemoryMappedFiles.MemoryMappedFileRights -> System.IO.MemoryMappedFiles.MemoryMappedFile
static member OpenExisting : string * System.IO.MemoryMappedFiles.MemoryMappedFileRights -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function OpenExisting (mapName As String, desiredAccessRights As MemoryMappedFileRights) As MemoryMappedFile
Parameters
- mapName
- String
The name of the memory-mapped file to open.
- desiredAccessRights
- MemoryMappedFileRights
One of the enumeration values that specifies the access rights to apply to the memory-mapped file.
Returns
A memory-mapped file that has the specified characteristics.
- Attributes
Exceptions
mapName
is null
.
mapName
is an empty string.
desiredAccessRights
is not a valid MemoryMappedFileRights enumeration value.
The file specified for mapName
does not exist.
See also
Applies to
OpenExisting(String, MemoryMappedFileRights, HandleInheritability)
- Source:
- MemoryMappedFile.cs
- Source:
- MemoryMappedFile.cs
- Source:
- MemoryMappedFile.cs
Opens an existing memory-mapped file that has the specified name, access rights, and inheritability in system memory.
public:
static System::IO::MemoryMappedFiles::MemoryMappedFile ^ OpenExisting(System::String ^ mapName, System::IO::MemoryMappedFiles::MemoryMappedFileRights desiredAccessRights, System::IO::HandleInheritability inheritability);
[System.Runtime.Versioning.SupportedOSPlatform("windows")]
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights, System.IO.HandleInheritability inheritability);
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights, System.IO.HandleInheritability inheritability);
[System.Security.SecurityCritical]
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights, System.IO.HandleInheritability inheritability);
[<System.Runtime.Versioning.SupportedOSPlatform("windows")>]
static member OpenExisting : string * System.IO.MemoryMappedFiles.MemoryMappedFileRights * System.IO.HandleInheritability -> System.IO.MemoryMappedFiles.MemoryMappedFile
static member OpenExisting : string * System.IO.MemoryMappedFiles.MemoryMappedFileRights * System.IO.HandleInheritability -> System.IO.MemoryMappedFiles.MemoryMappedFile
[<System.Security.SecurityCritical>]
static member OpenExisting : string * System.IO.MemoryMappedFiles.MemoryMappedFileRights * System.IO.HandleInheritability -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function OpenExisting (mapName As String, desiredAccessRights As MemoryMappedFileRights, inheritability As HandleInheritability) As MemoryMappedFile
Parameters
- mapName
- String
The name of the memory-mapped file to open.
- desiredAccessRights
- MemoryMappedFileRights
One of the enumeration values that specifies the access rights to apply to the memory-mapped file.
- inheritability
- HandleInheritability
One of the enumeration values that specifies whether a handle to the memory-mapped file can be inherited by a child process. The default is None.
Returns
A memory-mapped file that has the specified characteristics.
- Attributes
Exceptions
mapName
is null
.
mapName
is an empty string.
desiredAccessRights
is not a valid MemoryMappedFileRights enumeration value.
-or-
inheritability
is not a valid HandleInheritability enumeration value.
The requested access is invalid for the memory-mapped file.
The file specified for mapName
does not exist.