Partilhar via


MemoryMappedFile.OpenExisting Método

Definição

Abre um arquivo mapeado em memória nomeado existente na memória do sistema.

Sobrecargas

OpenExisting(String)

Abre um arquivo mapeado na memória existente que tem o nome especificado na memória do sistema.

OpenExisting(String, MemoryMappedFileRights)

Abre um arquivo mapeado em memória existente que tem o nome especificado e os direitos de acesso na memória do sistema.

OpenExisting(String, MemoryMappedFileRights, HandleInheritability)

Abre um arquivo mapeado em memória existente que tem o nome, os direitos de acesso e a capacidade de herança especificados na memória do sistema.

OpenExisting(String)

Origem:
MemoryMappedFile.cs
Origem:
MemoryMappedFile.cs
Origem:
MemoryMappedFile.cs

Abre um arquivo mapeado na memória existente que tem o nome especificado na memória do sistema.

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

Parâmetros

mapName
String

O nome do arquivo mapeado em memória.

Retornos

Um arquivo mapeado na memória que tem o nome especificado.

Atributos

Exceções

mapName é null.

mapName é uma cadeia de caracteres vazia.

O arquivo especificado para mapName não existe.

Exemplos

Abrindo um arquivo de Memory-Mapped persistente

O exemplo a seguir abre um arquivo mapeado em memória chamado ImgA que já foi criado com base em um arquivo no disco (conforme mostrado no exemplo para o CreateFromFile(String) método ).

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

Abrindo um arquivo de Memory-Mapped não persistente

O exemplo a seguir abre um arquivo mapeado em memória usado para comunicação entre processos. Este exemplo de código faz parte de um exemplo maior fornecido para o CreateNew(String, Int64) método .

Comentários

O arquivo mapeado em memória pode ser um arquivo mapeado por memória persistente (associado a um arquivo em disco) ou não persistente.

Confira também

Aplica-se a

OpenExisting(String, MemoryMappedFileRights)

Origem:
MemoryMappedFile.cs
Origem:
MemoryMappedFile.cs
Origem:
MemoryMappedFile.cs

Abre um arquivo mapeado em memória existente que tem o nome especificado e os direitos de acesso na memória do sistema.

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

Parâmetros

mapName
String

O nome do arquivo mapeado na memória para ser aberto.

desiredAccessRights
MemoryMappedFileRights

Um dos valores de enumeração que especifica os direitos de acesso a serem aplicados ao arquivo mapeado em memória.

Retornos

Um arquivo mapeado na memória que tem as características especificadas.

Atributos

Exceções

mapName é null.

mapName é uma cadeia de caracteres vazia.

desiredAccessRights não é um valor de enumeração MemoryMappedFileRights válido.

O arquivo especificado para mapName não existe.

Confira também

Aplica-se a

OpenExisting(String, MemoryMappedFileRights, HandleInheritability)

Origem:
MemoryMappedFile.cs
Origem:
MemoryMappedFile.cs
Origem:
MemoryMappedFile.cs

Abre um arquivo mapeado em memória existente que tem o nome, os direitos de acesso e a capacidade de herança especificados na memória do sistema.

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

Parâmetros

mapName
String

O nome do arquivo mapeado na memória para ser aberto.

desiredAccessRights
MemoryMappedFileRights

Um dos valores de enumeração que especifica os direitos de acesso a serem aplicados ao arquivo mapeado em memória.

inheritability
HandleInheritability

Um dos valores de enumeração que especifica se um identificador para o arquivo mapeado em memória pode ser herdado por um processo filho. O padrão é None.

Retornos

Um arquivo mapeado na memória que tem as características especificadas.

Atributos

Exceções

mapName é null.

mapName é uma cadeia de caracteres vazia.

desiredAccessRights não é um valor de enumeração MemoryMappedFileRights válido.

- ou -

inheritability não é um valor de enumeração HandleInheritability válido.

O acesso solicitado é inválido para o arquivo mapeado em memória.

O arquivo especificado para mapName não existe.

Confira também

Aplica-se a