Sdílet prostřednictvím


MemoryMappedFile.OpenExisting Metoda

Definice

Otevře existující pojmenovaný soubor mapované paměti v systémové paměti.

Přetížení

OpenExisting(String)

Otevře existující soubor mapované paměti, který má zadaný název v systémové paměti.

OpenExisting(String, MemoryMappedFileRights)

Otevře existující soubor mapované paměti, který má zadaný název a přístupová práva v systémové paměti.

OpenExisting(String, MemoryMappedFileRights, HandleInheritability)

Otevře existující soubor mapované paměti, který má zadaný název, přístupová práva a dědičnost v systémové paměti.

OpenExisting(String)

Zdroj:
MemoryMappedFile.cs
Zdroj:
MemoryMappedFile.cs
Zdroj:
MemoryMappedFile.cs

Otevře existující soubor mapované paměti, který má zadaný název v systémové paměti.

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

Parametry

mapName
String

Název souboru mapované paměti.

Návraty

Soubor mapované paměti, který má zadaný název.

Atributy

Výjimky

mapName je null.

mapName je prázdný řetězec.

Soubor zadaný pro mapName neexistuje.

Příklady

Otevření trvalého souboru Memory-Mapped

Následující příklad otevře soubor mapované paměti s názvem ImgA , který již byl vytvořen ze souboru na disku (jak je znázorněno v příkladu pro metodu CreateFromFile(String) ).

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

Otevření neuchovaného souboru Memory-Mapped

Následující příklad otevře soubor mapované paměti, který se používá pro komunikaci mezi procesy. Tento příklad kódu je součástí většího příkladu pro metodu CreateNew(String, Int64) .

Poznámky

Soubor mapované paměti může být buď trvalý soubor mapované paměti (přidružený k souboru na disku), nebo neudržovaný.

Viz také

Platí pro

OpenExisting(String, MemoryMappedFileRights)

Zdroj:
MemoryMappedFile.cs
Zdroj:
MemoryMappedFile.cs
Zdroj:
MemoryMappedFile.cs

Otevře existující soubor mapované paměti, který má zadaný název a přístupová práva v systémové paměti.

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

Parametry

mapName
String

Název souboru mapovaného na paměť, který se má otevřít.

desiredAccessRights
MemoryMappedFileRights

Jedna z hodnot výčtu, která určuje přístupová práva, která se mají použít na soubor mapované paměti.

Návraty

Soubor mapované paměti, který má zadané vlastnosti.

Atributy

Výjimky

mapName je null.

mapName je prázdný řetězec.

desiredAccessRights není platná MemoryMappedFileRights hodnota výčtu.

Soubor zadaný pro mapName neexistuje.

Viz také

Platí pro

OpenExisting(String, MemoryMappedFileRights, HandleInheritability)

Zdroj:
MemoryMappedFile.cs
Zdroj:
MemoryMappedFile.cs
Zdroj:
MemoryMappedFile.cs

Otevře existující soubor mapované paměti, který má zadaný název, přístupová práva a dědičnost v systémové paměti.

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

Parametry

mapName
String

Název souboru mapovaného na paměť, který se má otevřít.

desiredAccessRights
MemoryMappedFileRights

Jedna z hodnot výčtu, která určuje přístupová práva, která se mají použít na soubor mapované paměti.

inheritability
HandleInheritability

Jedna z hodnot výčtu, která určuje, zda popisovač souboru mapované paměti může být zděděna podřízeným procesem. Výchozí formát je None.

Návraty

Soubor mapované paměti, který má zadané vlastnosti.

Atributy

Výjimky

mapName je null.

mapName je prázdný řetězec.

desiredAccessRights není platná MemoryMappedFileRights hodnota výčtu.

-nebo-

inheritability není platná HandleInheritability hodnota výčtu.

Požadovaný přístup je pro soubor mapované paměti neplatný.

Soubor zadaný pro mapName neexistuje.

Viz také

Platí pro