MemoryMappedFile.OpenExisting MemoryMappedFile.OpenExisting MemoryMappedFile.OpenExisting MemoryMappedFile.OpenExisting Method

定義

開啟在系統記憶體中現有的具名記憶體對應檔。Opens an existing named memory-mapped file in system memory.

多載

OpenExisting(String) OpenExisting(String) OpenExisting(String) OpenExisting(String)

開啟現有的記憶體對應檔案,此檔案在系統記憶體中具有指定的名稱。Opens an existing memory-mapped file that has the specified name in system memory.

OpenExisting(String, MemoryMappedFileRights) OpenExisting(String, MemoryMappedFileRights) OpenExisting(String, MemoryMappedFileRights) OpenExisting(String, MemoryMappedFileRights)

開啟現有的記憶體對應檔案,此檔案在系統記憶體中具有指定的名稱和存取權限。Opens an existing memory-mapped file that has the specified name and access rights in system memory.

OpenExisting(String, MemoryMappedFileRights, HandleInheritability) OpenExisting(String, MemoryMappedFileRights, HandleInheritability) OpenExisting(String, MemoryMappedFileRights, HandleInheritability) OpenExisting(String, MemoryMappedFileRights, HandleInheritability)

開啟現有的記憶體對應檔案,此檔案在系統記憶體中具有指定的名稱、存取權限和可繼承性。Opens an existing memory-mapped file that has the specified name, access rights, and inheritability in system memory.

OpenExisting(String) OpenExisting(String) OpenExisting(String) OpenExisting(String)

開啟現有的記憶體對應檔案,此檔案在系統記憶體中具有指定的名稱。Opens an existing memory-mapped file that has the specified name in system memory.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ OpenExisting(System::String ^ mapName);
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName);
static member OpenExisting : string -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function OpenExisting (mapName As String) As MemoryMappedFile

參數

mapName
String String String String

記憶體對應檔的名稱。The name of the memory-mapped file.

傳回

有指定之名稱的記憶體對應檔。A memory-mapped file that has the specified name.

例外狀況

mapName 為空字串。mapName is an empty string.

針對 mapName 指定的檔案不存在。The file specified for mapName does not exist.

範例

開啟持續性記憶體對應檔案Opening a Persisted Memory-Mapped File

下列範例會開啟名為ImgA的記憶體對應檔案, 該檔案已從磁片上的檔案建立 (如CreateFromFile(String)方法的範例所示)。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
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. 這個程式碼範例是針對方法所CreateNew(String, Int64)提供之較大範例的一部分。This code example is part of a larger example provided for the CreateNew(String, Int64) method.

備註

記憶體對應檔可以是持續性記憶體對應檔案 (與磁片上的檔案相關聯) 或非保存的檔案。The memory-mapped file can be either a persisted memory-mapped file (associated with a file on disk) or non-persisted.

另請參閱

OpenExisting(String, MemoryMappedFileRights) OpenExisting(String, MemoryMappedFileRights) OpenExisting(String, MemoryMappedFileRights) OpenExisting(String, MemoryMappedFileRights)

開啟現有的記憶體對應檔案,此檔案在系統記憶體中具有指定的名稱和存取權限。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);
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights);
static member OpenExisting : string * System.IO.MemoryMappedFiles.MemoryMappedFileRights -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function OpenExisting (mapName As String, desiredAccessRights As MemoryMappedFileRights) As MemoryMappedFile

參數

mapName
String String String String

要開啟之記憶體對應檔的名稱。The name of the memory-mapped file to open.

desiredAccessRights
MemoryMappedFileRights MemoryMappedFileRights MemoryMappedFileRights MemoryMappedFileRights

其中一個列舉值,指定要套用至記憶體對應檔的存取權限。One of the enumeration values that specifies the access rights to apply to the memory-mapped file.

傳回

記憶體對應檔,具有指定的特性。A memory-mapped file that has the specified characteristics.

例外狀況

mapName 為空字串。mapName is an empty string.

desiredAccessRights 不是有效的 MemoryMappedFileRights 列舉值。desiredAccessRights is not a valid MemoryMappedFileRights enumeration value.

針對 mapName 指定的檔案不存在。The file specified for mapName does not exist.

另請參閱

OpenExisting(String, MemoryMappedFileRights, HandleInheritability) OpenExisting(String, MemoryMappedFileRights, HandleInheritability) OpenExisting(String, MemoryMappedFileRights, HandleInheritability) OpenExisting(String, MemoryMappedFileRights, HandleInheritability)

開啟現有的記憶體對應檔案,此檔案在系統記憶體中具有指定的名稱、存取權限和可繼承性。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.Security.SecurityCritical]
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting (string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights, System.IO.HandleInheritability inheritability);
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

參數

mapName
String String String String

要開啟之記憶體對應檔的名稱。The name of the memory-mapped file to open.

desiredAccessRights
MemoryMappedFileRights MemoryMappedFileRights MemoryMappedFileRights MemoryMappedFileRights

其中一個列舉值,指定要套用至記憶體對應檔的存取權限。One of the enumeration values that specifies the access rights to apply to the memory-mapped file.

inheritability
HandleInheritability HandleInheritability HandleInheritability HandleInheritability

其中一個列舉值,決定記憶體對應檔的控制代碼是否可以由子處理序繼承。One of the enumeration values that specifies whether a handle to the memory-mapped file can be inherited by a child process. 預設為 NoneThe default is None.

傳回

記憶體對應檔,具有指定的特性。A memory-mapped file that has the specified characteristics.

例外狀況

mapName 為空字串。mapName is an empty string.

desiredAccessRights 不是有效的 MemoryMappedFileRights 列舉值。desiredAccessRights is not a valid MemoryMappedFileRights enumeration value.

-或--or- inheritability 不是有效的 HandleInheritability 列舉值。inheritability is not a valid HandleInheritability enumeration value.

要求的存取是無效的記憶體對應檔案。The requested access is invalid for the memory-mapped file.

針對 mapName 指定的檔案不存在。The file specified for mapName does not exist.

安全性

SecurityPermission
用於存取未受管理的程式碼。for access to unmanaged code. 關聯的列舉型別:UnmanagedCodeAssociated enumeration: UnmanagedCode.

另請參閱

適用於