MemoryMappedFile.OpenExisting Método

Definición

Abre un archivo asignado a la memoria con nombre existente en la memoria del sistema.

Sobrecargas

OpenExisting(String)

Abre un archivo asignado a la memoria existente que tiene el nombre especificado en la memoria del sistema.

OpenExisting(String, MemoryMappedFileRights)

Abre un archivo asignado a la memoria existente que tiene el nombre y los permisos de acceso especificados en la memoria del sistema.

OpenExisting(String, MemoryMappedFileRights, HandleInheritability)

Abre un archivo asignado a la memoria existente que tiene el nombre, los permisos de acceso y la herencia especificados en la memoria del sistema.

OpenExisting(String)

Abre un archivo asignado a la memoria existente que tiene el nombre especificado en la memoria del 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

Nombre del archivo asignado a la memoria.

Devoluciones

MemoryMappedFile

Archivo asignado a la memoria que tiene el nombre especificado.

Atributos

Excepciones

mapName es null.

mapName es una cadena vacía.

El archivo especificado para mapName no existe.

Ejemplos

Abrir un archivo de Memory-Mapped persistente

En el ejemplo siguiente se abre un archivo asignado a memoria denominado ImgA que ya se ha creado a partir de un archivo en el disco (como se muestra en el ejemplo del 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

Abrir un archivo de Memory-Mapped no persistente

En el ejemplo siguiente se abre un archivo asignado a memoria que se usa para la comunicación entre procesos. Este ejemplo de código forma parte de un ejemplo más grande proporcionado para el CreateNew(String, Int64) método .

Comentarios

El archivo asignado a memoria puede ser un archivo asignado a memoria persistente (asociado a un archivo en el disco) o no persistente.

Consulte también

Se aplica a

OpenExisting(String, MemoryMappedFileRights)

Abre un archivo asignado a la memoria existente que tiene el nombre y los permisos de acceso especificados en la memoria del 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

Nombre del archivo asignado a la memoria que se va a abrir.

desiredAccessRights
MemoryMappedFileRights

Uno de los valores de enumeración que especifica los derechos de acceso que se van a aplicar al archivo asignado a la memoria.

Devoluciones

MemoryMappedFile

Archivo asignado a la memoria que tiene las características especificadas.

Atributos

Excepciones

mapName es null.

mapName es una cadena vacía.

desiredAccessRights no es un valor de enumeración MemoryMappedFileRights válido.

El archivo especificado para mapName no existe.

Consulte también

Se aplica a

OpenExisting(String, MemoryMappedFileRights, HandleInheritability)

Abre un archivo asignado a la memoria existente que tiene el nombre, los permisos de acceso y la herencia especificados en la memoria del 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

Nombre del archivo asignado a la memoria que se va a abrir.

desiredAccessRights
MemoryMappedFileRights

Uno de los valores de enumeración que especifica los derechos de acceso que se van a aplicar al archivo asignado a la memoria.

inheritability
HandleInheritability

Uno de los valores de enumeración que especifica si un proceso secundario puede heredar un identificador para el archivo asignado a la memoria. De manera predeterminada, es None.

Devoluciones

MemoryMappedFile

Archivo asignado a la memoria que tiene las características especificadas.

Atributos

Excepciones

mapName es null.

mapName es una cadena vacía.

desiredAccessRights no es un valor de enumeración MemoryMappedFileRights válido.

o bien inheritability no es un valor de enumeración HandleInheritability válido.

El acceso solicitado no es válido para el archivo asignado a memoria.

El archivo especificado para mapName no existe.

Consulte también

Se aplica a