MemoryMappedFile MemoryMappedFile MemoryMappedFile MemoryMappedFile Class

Definition

Stellt eine Speicherabbilddatei dar.Represents a memory-mapped file.

public ref class MemoryMappedFile : IDisposable
public class MemoryMappedFile : IDisposable
type MemoryMappedFile = class
    interface IDisposable
Public Class MemoryMappedFile
Implements IDisposable
Vererbung
MemoryMappedFileMemoryMappedFileMemoryMappedFileMemoryMappedFile
Implementiert

Beispiele

Im folgenden Beispiel wird ein Speicherabbild für einen Teil einer sehr großen Datei erstellt und teilweise bearbeitet.The following example creates a memory-mapped view of a part of an extremely large file and manipulates a portion of it.

using System;
using System.IO;
using System.IO.MemoryMappedFiles;
using System.Runtime.InteropServices;

class Program
{
    static void Main(string[] args)
    {
        long offset = 0x10000000; // 256 megabytes
        long length = 0x20000000; // 512 megabytes

        // Create the memory-mapped file.
        using (var mmf = MemoryMappedFile.CreateFromFile(@"c:\ExtremelyLargeImage.data", FileMode.Open,"ImgA"))
        {
            // Create a random access view, from the 256th megabyte (the offset)
            // to the 768th megabyte (the offset plus length).
            using (var accessor = mmf.CreateViewAccessor(offset, length))
            {
                int colorSize = Marshal.SizeOf(typeof(MyColor));
                MyColor color;

                // Make changes to the view.
                for (long i = 0; i < length; i += colorSize)
                {
                    accessor.Read(i, out color);
                    color.Brighten(10);
                    accessor.Write(i, ref color);
                }
            }
        }
    }
}

public struct MyColor
{
    public short Red;
    public short Green;
    public short Blue;
    public short Alpha;

    // Make the view brighter.
    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
Imports System.IO.MemoryMappedFiles
Imports System.Runtime.InteropServices

Class Program

    Sub Main()
        Dim offset As Long = &H10000000 ' 256 megabytes
        Dim length As Long = &H20000000 ' 512 megabytes

        ' Create the memory-mapped file.
        Using mmf = MemoryMappedFile.CreateFromFile("c:\ExtremelyLargeImage.data", FileMode.Open, "ImgA")
            ' Create a random access view, from the 256th megabyte (the offset)
            ' to the 768th megabyte (the offset plus length).
            Using accessor = mmf.CreateViewAccessor(offset, length)
                Dim colorSize As Integer = Marshal.SizeOf(GetType(MyColor))
                Dim color As MyColor
                Dim i As Long = 0

                ' Make changes to the view.
                Do While (i < length)
                    accessor.Read(i, color)
                    color.Brighten(10)
                    accessor.Write(i, color)
                    i += colorSize
                Loop
            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 brighter.
	Public Sub Brighten(ByVal value As Short)
        Red = CType(Math.Min(Short.MaxValue, (CType(Red, Integer) + value)), Short)
        Green = CType(Math.Min(Short.MaxValue, (CType(Green, Integer) + value)), Short)
        Blue = CType(Math.Min(Short.MaxValue, (CType(Blue, Integer) + value)), Short)
        Alpha = CType(Math.Min(Short.MaxValue, (CType(Alpha, Integer) + value)), Short)
    End Sub
End Structure

Hinweise

Eine Datei mit zugewiesenem Speicher ordnet den Inhalt einer Datei dem logischen Adressbereich einer Anwendung.A memory-mapped file maps the contents of a file to an application's logical address space. Speicherabbilddateien ermöglichen Programmierern, mit sehr großen Dateien arbeiten, da Speicher gleichzeitig verwaltet werden kann, und sie ermöglichen die vollständige, wahlfreien Zugriff auf eine Datei ohne die Notwendigkeit der gesucht werden soll.Memory-mapped files enable programmers to work with extremely large files because memory can be managed concurrently, and they allow complete, random access to a file without the need for seeking. Speicherabbilddateien können auch für mehrere Prozesse verwendet werden.Memory-mapped files can also be shared across multiple processes.

Die CreateFromFile Methoden erstellen eine Speicherabbilddatei aus einem angegebenen Pfad oder ein FileStream einer vorhandenen Datei auf dem Datenträger.The CreateFromFile methods create a memory-mapped file from a specified path or a FileStream of an existing file on disk. Änderungen werden automatisch weitergegeben, wenn auf dem Datenträger die Datei ist nicht zugeordnet.Changes are automatically propagated to disk when the file is unmapped.

Die CreateNew Methoden erstellen eine Speicherabbilddatei, die nicht zu einer vorhandenen Datei auf dem Datenträger zugeordnet ist, und eignen sich für das Erstellen von freigegebenen Speicherbereichen für die prozessübergreifende Kommunikation (IPC).The CreateNew methods create a memory-mapped file that is not mapped to an existing file on disk; and are suitable for creating shared memory for interprocess communication (IPC).

Eine Datei mit zugewiesenem Speicher kann ein optionaler Name zugeordnet sein, die die Datei mit zugewiesenem Speicher für andere Prozesse freigegeben werden können.A memory-mapped file can be associated with an optional name that allows the memory-mapped file to be shared with other processes.

Sie können mehrere Ansichten für die Datei mit zugewiesenem Speicher, einschließlich Ansichten von Teilen der Datei erstellen.You can create multiple views of the memory-mapped file, including views of parts of the file. Sie können die gleichen Teil der Datei mehr als eine Adresse zum Erstellen von parallelen Arbeitsspeicher zuordnen.You can map the same part of a file to more than one address to create concurrent memory. Parallele Ansichten müssen aus der gleichen Speicherabbilddatei erstellt werden.For two views to remain concurrent, they have to be created from the same memory-mapped file. Erstellen zwei Zuordnungen der gleichen Datei mit zwei Ansichten bietet keine Parallelität.Creating two file mappings of the same file with two views does not provide concurrency.

Eigenschaften

SafeMemoryMappedFileHandle SafeMemoryMappedFileHandle SafeMemoryMappedFileHandle SafeMemoryMappedFileHandle

Ruft das Dateihandle einer Speicherabbilddatei ab.Gets the file handle of a memory-mapped file.

Methoden

CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean) CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean) CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean) CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean)

Erstellt eine im Speicher abgebildete Datei aus einer vorhandenen Datei mit dem angegebenen Zugriffsmodus, den angegebenen Namen, der angegebenen Vererbbarkeit und Kapazität.Creates a memory-mapped file from an existing file with the specified access mode, name, inheritability, and capacity.

CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean) CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean) CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean) CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean)

Erstellt eine im Speicher abgebildete Datei mit den angegebenen Werten für Name, Kapazität, Zugriffstyp, Sicherheitsberechtigungen, Vererbbarkeit und Freigabeanforderung aus einer Datei auf dem Datenträger.Creates a memory-mapped file that has the specified name, capacity, access type, security permissions, inheritability, and disposal requirement from a file on disk.

CreateFromFile(String) CreateFromFile(String) CreateFromFile(String) CreateFromFile(String)

Erstellt eine Speicherabbilddatei aus einer Datei auf dem Datenträger.Creates a memory-mapped file from a file on disk.

CreateFromFile(String, FileMode) CreateFromFile(String, FileMode) CreateFromFile(String, FileMode) CreateFromFile(String, FileMode)

Erstellt eine im Speicher abgebildete Datei mit dem angegebenen Zugriffsmodus aus einer Datei auf dem Datenträger.Creates a memory-mapped file that has the specified access mode from a file on disk.

CreateFromFile(String, FileMode, String) CreateFromFile(String, FileMode, String) CreateFromFile(String, FileMode, String) CreateFromFile(String, FileMode, String)

Erstellt eine im Speicher abgebildete Datei mit den angegebenen Werten für Zugriffsmodus und Name aus einer Datei auf dem Datenträger.Creates a memory-mapped file that has the specified access mode and name from a file on disk.

CreateFromFile(String, FileMode, String, Int64) CreateFromFile(String, FileMode, String, Int64) CreateFromFile(String, FileMode, String, Int64) CreateFromFile(String, FileMode, String, Int64)

Erstellt eine im Speicher abgebildete Datei mit den angegebenen Werten für Zugriffsmodus, Name und Kapazität aus einer Datei auf dem Datenträger.Creates a memory-mapped file that has the specified access mode, name, and capacity from a file on disk.

CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess) CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess) CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess) CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess)

Erstellt eine im Speicher abgebildete Datei mit den angegebenen Werten für Zugriffsmodus, Name, Kapazität und Zugriffstyp aus einer Datei auf dem Datenträger.Creates a memory-mapped file that has the specified access mode, name, capacity, and access type from a file on disk.

CreateNew(String, Int64) CreateNew(String, Int64) CreateNew(String, Int64) CreateNew(String, Int64)

Erstellt eine im Speicher abgebildete Datei mit der angegebenen Kapazität im Systemspeicher.Creates a memory-mapped file that has the specified capacity in system memory.

CreateNew(String, Int64, MemoryMappedFileAccess) CreateNew(String, Int64, MemoryMappedFileAccess) CreateNew(String, Int64, MemoryMappedFileAccess) CreateNew(String, Int64, MemoryMappedFileAccess)

Erstellt eine im Speicher abgebildete Datei mit den angegebenen Werten für Kapazität und Zugriffstyp im Systemspeicher.Creates a memory-mapped file that has the specified capacity and access type in system memory.

CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability) CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability) CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability) CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability)

Erstellt eine im Speicher abgebildete Datei mit den angegebenen Werten für Name, Kapazität, Zugriffstyp, Speicherbelegung und Vererbbarkeit.Creates a memory-mapped file that has the specified name, capacity, access type, memory allocation options and inheritability.

CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability) CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability) CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability) CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability)

Erstellt eine im Speicher abgebildete Datei mit den angegebenen Werten für Kapazität, Zugriffstyp, Speicherbelegung, Sicherheitsberechtigungen und Vererbbarkeit im Systemspeicher.Creates a memory-mapped file that has the specified capacity, access type, memory allocation, security permissions, and inheritability in system memory.

CreateOrOpen(String, Int64) CreateOrOpen(String, Int64) CreateOrOpen(String, Int64) CreateOrOpen(String, Int64)

Erstellt oder öffnet eine im Speicher abgebildete Datei mit dem angegebenen Namen und der angegebenen Kapazität im Systemspeicher.Creates or opens a memory-mapped file that has the specified name and capacity in system memory.

CreateOrOpen(String, Int64, MemoryMappedFileAccess) CreateOrOpen(String, Int64, MemoryMappedFileAccess) CreateOrOpen(String, Int64, MemoryMappedFileAccess) CreateOrOpen(String, Int64, MemoryMappedFileAccess)

Erstellt oder öffnet eine im Speicher abgebildete Datei mit den angegebenen Werten für Name, Kapazität und Zugriffstyp im Systemspeicher.Creates or opens a memory-mapped file that has the specified name, capacity and access type in system memory.

CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability) CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability) CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability) CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability)

Erstellt eine neue leere im Speicher abgebildete Datei oder öffnet eine vorhandene im Speicher abgebildete Datei, wenn eine Datei mit diesem Namen existiert.Creates a new empty memory mapped file or opens an existing memory mapped file if one exists with the same name. Wenn Sie eine vorhandene Datei angeben, werden die Werte für Kapazität, Optionen und Speicherargumente ignoriert.If opening an existing file, the capacity, options, and memory arguments will be ignored.

CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability) CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability) CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability) CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability)

Erstellt oder öffnet eine im Speicher abgebildete Datei mit den angegebenen Werten für Kapazität, Zugriffstyp, Speicherbelegung, Sicherheitsberechtigungen und Vererbbarkeit im Systemspeicher.Creates or opens a memory-mapped file that has the specified name, capacity, access type, memory allocation, security permissions, and inheritability in system memory.

CreateViewAccessor() CreateViewAccessor() CreateViewAccessor() CreateViewAccessor()

Erstellt einen MemoryMappedViewAccessor, der einer Ansicht der Speicherabbilddatei zugeordnet ist.Creates a MemoryMappedViewAccessor that maps to a view of the memory-mapped file.

CreateViewAccessor(Int64, Int64) CreateViewAccessor(Int64, Int64) CreateViewAccessor(Int64, Int64) CreateViewAccessor(Int64, Int64)

Erstellt ein MemoryMappedViewAccessor, das einer Ansicht der im Speicher abgebildeten Datei zugeordnet ist und über die angegebenen Werte für Offset und Größe verfügt.Creates a MemoryMappedViewAccessor that maps to a view of the memory-mapped file, and that has the specified offset and size.

CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess) CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess) CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess) CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess)

Erstellt ein MemoryMappedViewAccessor, das einer Ansicht der im Speicher abgebildeten Datei zugeordnet ist und über die angegebenen Werte für Offset, Größe und Zugriffseinschränkungen verfügt.Creates a MemoryMappedViewAccessor that maps to a view of the memory-mapped file, and that has the specified offset, size, and access restrictions.

CreateViewStream() CreateViewStream() CreateViewStream() CreateViewStream()

Erstellt einen Stream, der einer Ansicht der Speicherabbilddatei zugeordnet ist.Creates a stream that maps to a view of the memory-mapped file.

CreateViewStream(Int64, Int64) CreateViewStream(Int64, Int64) CreateViewStream(Int64, Int64) CreateViewStream(Int64, Int64)

Erstellt einen Datenstrom, der einer Ansicht der im Speicher abgebildeten Datei zugeordnet ist und über die angegebenen Werte für Offset und Größe verfügt.Creates a stream that maps to a view of the memory-mapped file, and that has the specified offset and size.

CreateViewStream(Int64, Int64, MemoryMappedFileAccess) CreateViewStream(Int64, Int64, MemoryMappedFileAccess) CreateViewStream(Int64, Int64, MemoryMappedFileAccess) CreateViewStream(Int64, Int64, MemoryMappedFileAccess)

Erstellt einen Datenstrom, der einer Ansicht der im Speicher abgebildeten Datei zugeordnet ist und über die angegebenen Werte für Offset, Größe und Zugriffstyp verfügt.Creates a stream that maps to a view of the memory-mapped file, and that has the specified offset, size, and access type.

Dispose() Dispose() Dispose() Dispose()

Gibt alle vom MemoryMappedFile verwendeten Ressourcen frei.Releases all resources used by the MemoryMappedFile.

Dispose(Boolean) Dispose(Boolean) Dispose(Boolean) Dispose(Boolean)

Gibt die von MemoryMappedFile verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.Releases the unmanaged resources used by the MemoryMappedFile and optionally releases the managed resources.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetAccessControl() GetAccessControl() GetAccessControl() GetAccessControl()

Ruft die Zugriffssteuerung für die Ressource der Speicherabbilddatei ab.Gets the access control to the memory-mapped file resource.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
OpenExisting(String) OpenExisting(String) OpenExisting(String) OpenExisting(String)

Öffnet eine vorhandene im Speicher abgebildete Datei mit dem angegebenen Namen im Systemspeicher.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)

Öffnet eine vorhandene im Speicher abgebildete Datei mit den angegebenen Werten für Name und Zugriffsrechte im Systemspeicher.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)

Öffnet eine vorhandene im Speicher abgebildete Datei mit den angegebenen Werten für Name, Zugriffsrechte und Vererbbarkeit im Systemspeicher.Opens an existing memory-mapped file that has the specified name, access rights, and inheritability in system memory.

SetAccessControl(MemoryMappedFileSecurity) SetAccessControl(MemoryMappedFileSecurity) SetAccessControl(MemoryMappedFileSecurity) SetAccessControl(MemoryMappedFileSecurity)

Legt die Zugriffssteuerung für die Ressource der Speicherabbilddatei fest.Sets the access control to the memory-mapped file resource.

ToString() ToString() ToString() ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Gilt für:

Siehe auch