MemoryMappedFile MemoryMappedFile MemoryMappedFile MemoryMappedFile Class

定義

メモリ マップト ファイルを表します。 Represents a memory-mapped file.

public ref class MemoryMappedFile : IDisposable
public class MemoryMappedFile : IDisposable
type MemoryMappedFile = class
    interface IDisposable
Public Class MemoryMappedFile
Implements IDisposable
継承
MemoryMappedFileMemoryMappedFileMemoryMappedFileMemoryMappedFile
実装

次の例では、きわめて大きなファイルの一部のメモリ マップト ビューを作成し、その一部分を操作します。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

注釈

メモリ マップト ファイルは、ファイルの内容をアプリケーションの論理アドレス空間にマップします。A memory-mapped file maps the contents of a file to an application’s logical address space. メモリ マップト ファイルには、メモリを同時に管理でき、シークを行わずにファイルへの完全なランダム アクセスを許可するために非常に大きなファイルを使用するプログラマが有効にします。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. メモリ マップト ファイルは、複数のプロセスでも共有できます。Memory-mapped files can also be shared across multiple processes.

CreateFromFileメソッドは、指定されたパスからメモリ マップト ファイルを作成またはFileStreamのディスク上の既存のファイル。The CreateFromFile methods create a memory-mapped file from a specified path or a FileStream of an existing file on disk. 変更がディスクに自動的に反映ファイルが割り当てられていません。Changes are automatically propagated to disk when the file is unmapped.

CreateNewメソッドは、ディスク上の既存のファイルにマップされていないメモリ マップト ファイルを作成してはプロセス間通信 (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).

メモリ マップト ファイルは、他のプロセスと共有するメモリ マップト ファイルを許可するオプションの名前を関連付けることができます。A memory-mapped file can be associated with an optional name that allows the memory-mapped file to be shared with other processes.

ファイルの部分の表示も含め、メモリ マップト ファイルの複数のビューを作成することができます。You can create multiple views of the memory-mapped file, including views of parts of the file. ファイルの同じ部分は、同時実行メモリを作成する 1 つ以上のアドレスにマップできます。You can map the same part of a file to more than one address to create concurrent memory. 2 つのビューが同時実行されるには、それらのビューを同じメモリ マップト ファイルから作成する必要があります。For two views to remain concurrent, they have to be created from the same memory-mapped file. 2 つのビューと同じファイルの 2 つのファイル マッピングを作成しても、同時実行制御は提供されません。Creating two file mappings of the same file with two views does not provide concurrency.

プロパティ

SafeMemoryMappedFileHandle SafeMemoryMappedFileHandle SafeMemoryMappedFileHandle SafeMemoryMappedFileHandle

メモリ マップト ファイルのファイル ハンドルを取得します。 Gets the file handle of a memory-mapped file.

方法

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)

既存のファイルから、アクセス モード、名前、継承性、および容量が指定されたメモリ マップト ファイルを作成します。 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)

ディスク上のファイルから、名前、容量、アクセスの種類、セキュリティ アクセス許可、継承性、および破棄要件が指定されたメモリ マップト ファイルを作成します。 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)

ディスク上のファイルからメモリ マップト ファイルを作成します。 Creates a memory-mapped file from a file on disk.

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

ディスク上のファイルから、アクセス モードが指定されたメモリ マップト ファイルを作成します。 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)

ディスク上のファイルから、アクセス モードと名前が指定されたメモリ マップト ファイルを作成します。 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)

ディスク上のファイルから、アクセス モード、名前、および容量が指定されたメモリ マップト ファイルを作成します。 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)

ディスク上のファイルから、アクセス モード、名前、容量、およびアクセスの種類が指定されたメモリ マップト ファイルを作成します。 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)

容量が指定されたメモリ マップト ファイルをシステム メモリ内で作成します。 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)

容量およびアクセスの種類が指定されたメモリ マップト ファイルをシステム メモリ内で作成します。 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)

名前、容量、アクセスの種類、メモリ割り当てオプション、および継承性が指定されたメモリ マップト ファイルを作成します。 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)

容量、アクセスの種類、メモリの割り当て、セキュリティ アクセス許可、および継承性が指定されたメモリ マップト ファイルをシステム メモリ内で作成します。 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)

名前と容量が指定されたメモリ マップト ファイルをシステム メモリ内で作成するか、開きます。 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)

名前、容量、アクセスの種類が指定されたメモリ マップト ファイルをシステム メモリ内で作成するか、開きます。 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)

新しい空のメモリ マップト ファイルを作成するか、同じ名前のファイルが存在する場合は既存のメモリ マップト ファイルを開きます。 Creates a new empty memory mapped file or opens an existing memory mapped file if one exists with the same name. 既存のファイルを開く場合、容量、オプション、およびメモリ引数は無視されます。 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)

名前、容量、アクセスの種類、メモリの割り当て、セキュリティ アクセス許可、継承性が指定されたメモリ マップト ファイルをシステム メモリ内で作成するか、開きます。 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()

メモリ マップト ファイルのビューに対応する MemoryMappedViewAccessor を作成します。 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)

メモリ マップト ファイルのビューに対応する、オフセットとサイズが指定された MemoryMappedViewAccessor を作成します。 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)

メモリ マップト ファイルのビューに対応するオフセット、サイズ、およびアクセス制限が指定された MemoryMappedViewAccessor を作成します。 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()

メモリ マップト ファイルのビューに対応するストリームを作成します。 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)

メモリ マップト ファイルのビューに対応する、オフセットとサイズが指定されたストリームを作成します。 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)

メモリ マップト ファイルのビューに対応するオフセット、サイズ、およびアクセスの種類が指定されたストリームを作成します。 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()

MemoryMappedFile によって使用されているすべてのリソースを解放します。 Releases all resources used by the MemoryMappedFile.

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

MemoryMappedFile によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。 Releases the unmanaged resources used by the MemoryMappedFile and optionally releases the managed resources.

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

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。 Determines whether the specified object is equal to the current object.

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

メモリ マップト ファイル リソースへのアクセス制御を取得します。 Gets the access control to the memory-mapped file resource.

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

既定のハッシュ関数として機能します。 Serves as the default hash function.

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

現在のインスタンスの Type を取得します。 Gets the Type of the current instance.

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

現在の Object の簡易コピーを作成します。 Creates a shallow copy of the current Object.

(Inherited from Object)
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.

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

メモリ マップト ファイル リソースへのアクセス制御を設定します。 Sets the access control to the memory-mapped file resource.

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

現在のオブジェクトを表す文字列を返します。 Returns a string that represents the current object.

(Inherited from Object)

適用対象

こちらもご覧ください