MemoryMappedFile.CreateFromFile MemoryMappedFile.CreateFromFile MemoryMappedFile.CreateFromFile MemoryMappedFile.CreateFromFile Method

定義

既存のファイルからメモリ マップト ファイルを作成します。Creates a memory-mapped file from an existing file.

オーバーロード

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.

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)

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

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

パラメーター

path
String String String String

割り当てるファイルのパス。The path to file to map.

戻り値

メモリ マップト ファイル。A memory-mapped file.

例外

path が、空の文字列であるか、空白しか含んでいないか、GetInvalidFileNameChars() メソッドで定義されている無効な文字を 1 つ以上含んでいます。path is an empty string, contains only white space, or has one or more invalid characters, as defined by the GetInvalidFileNameChars() method.

- または --or- path が無効なデバイスを参照しています。path refers to an invalid device.

I/O エラーが発生しました。An I/O error occurred.

path がオペレーティング システムで定義されている最大長を超えています。path exceeds the maximum length defined by the operating system.

呼び出し元に、ファイルに対する必要なアクセス許可がありません。The caller does not have the required permissions for the file.

次の例ではCreateFromFile 、メソッドを使用して、メモリマップトファイルを作成し、非常に大きなファイルの一部にメモリマップトビューを作成します。The following example uses the CreateFromFile method to create a memory-mapped file, and then creates a memory-mapped view to a portion of an extremely large file.

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
こちらもご覧ください

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.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path, System::IO::FileMode mode);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile (string path, System.IO.FileMode mode);
static member CreateFromFile : string * System.IO.FileMode -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (path As String, mode As FileMode) As MemoryMappedFile

パラメーター

path
String String String String

割り当てるファイルのパス。The path to the file to map.

mode
FileMode FileMode FileMode FileMode

アクセス モードは、Open にする必要があります。Access mode; must be Open.

戻り値

アクセス モードが指定されたメモリ マップト ファイル。A memory-mapped file that has the specified access mode.

例外

path が、空の文字列であるか、空白しか含んでいないか、GetInvalidFileNameChars() メソッドで定義されている無効な文字を 1 つ以上含んでいます。path is an empty string, contains only white space, or has one or more invalid characters, as defined by the GetInvalidFileNameChars() method.

または-or- path が無効なデバイスを参照しています。path refers to an invalid device.

または-or- modeAppend です。mode is Append.

modeCreateCreateNew、または Truncate です。mode is Create, CreateNew, or Truncate.

- または --or- modeOpenOrCreate で、ディスク上のファイルが存在しません。mode is OpenOrCreate and the file on disk does not exist.

または-or- I/O エラーが発生しました。An I/O error occurred.

path がオペレーティング システムで定義されている最大長を超えています。path exceeds the maximum length defined by the operating system.

呼び出し元に、ファイルに対する必要なアクセス許可がありません。The caller does not have the required permissions for the file.

注釈

パラメーター modeは、ディスク上のソースファイルに関連します。The mode parameter pertains to the source file on disk. Open列挙値のみを使用して、ディスク上のソースファイルからメモリマップトファイルを作成することができます。You can use only the Open enumeration value to create the memory-mapped file from the source 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.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path, System::IO::FileMode mode, System::String ^ mapName);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile (string path, System.IO.FileMode mode, string mapName);
static member CreateFromFile : string * System.IO.FileMode * string -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (path As String, mode As FileMode, mapName As String) As MemoryMappedFile

パラメーター

path
String String String String

割り当てるファイルのパス。The path to the file to map.

mode
FileMode FileMode FileMode FileMode

アクセス モードは、Open にする必要があります。Access mode; must be Open.

mapName
String String String String

メモリ マップト ファイルに割り当てる名前。または、プロセス間で共有する意図のない MemoryMappedFilenullA name to assign to the memory-mapped file, or null for a MemoryMappedFile that you do not intend to share across processes.

戻り値

名前およびアクセス モードが指定されたメモリ マップト ファイル。A memory-mapped file that has the specified name and access mode.

例外

path が、空の文字列であるか、空白しか含んでいないか、GetInvalidFileNameChars() メソッドで定義されている無効な文字を 1 つ以上含んでいます。path is an empty string, contains only white space, or has one or more invalid characters, as defined by the GetInvalidFileNameChars() method.

- または --or- path が無効なデバイスを参照しています。path refers to an invalid device.

- または --or- mapName が空の文字列です。mapName is an empty string.

- または --or- modeAppend です。mode is Append.

modeCreateCreateNew、または Truncate です。mode is Create, CreateNew, or Truncate.

または-or- modeOpenOrCreate で、ディスク上のファイルが存在しません。mode is OpenOrCreate and the file on disk does not exist.

または-or- I/O エラーが発生しました。An I/O error occurred.

path がオペレーティング システムで定義されている最大長を超えています。path exceeds the maximum length defined by the operating system.

呼び出し元に、ファイルに対する必要なアクセス許可がありません。The caller does not have the required permissions for the file.

注釈

パラメーター modeは、ディスク上のソースファイルに関連します。The mode parameter pertains to the source file on disk. Open列挙値のみを使用して、ディスク上のソースファイルからメモリマップトファイルを作成することができます。You can use only the Open enumeration value to create the memory-mapped file from the source 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.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path, System::IO::FileMode mode, System::String ^ mapName, long capacity);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile (string path, System.IO.FileMode mode, string mapName, long capacity);
static member CreateFromFile : string * System.IO.FileMode * string * int64 -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (path As String, mode As FileMode, mapName As String, capacity As Long) As MemoryMappedFile

パラメーター

path
String String String String

割り当てるファイルのパス。The path to the file to map.

mode
FileMode FileMode FileMode FileMode

アクセス モード。Append 以外の FileMode 列挙値を指定できます。Access mode; can be any of the FileMode enumeration values except Append.

mapName
String String String String

メモリ マップト ファイルに割り当てる名前。または、プロセス間で共有する意図のない MemoryMappedFilenullA name to assign to the memory-mapped file, or null for a MemoryMappedFile that you do not intend to share across processes.

capacity
Int64 Int64 Int64 Int64

メモリ マップト ファイルに割り当てる最大サイズ (バイト単位)。The maximum size, in bytes, to allocate to the memory-mapped file. 容量をディスク上のファイルのサイズに設定するには、0 を指定します。Specify 0 to set the capacity to the size of the file on disk.

戻り値

指定された特性を持つメモリ マップト ファイル。A memory-mapped file that has the specified characteristics.

例外

path が、空の文字列であるか、空白しか含んでいないか、GetInvalidFileNameChars() メソッドで定義されている無効な文字を 1 つ以上含んでいます。path is an empty string, contains only white space, or has one or more invalid characters, as defined by the GetInvalidFileNameChars() method.

- または --or- path が無効なデバイスを参照しています。path refers to an invalid device.

または-or- mapName が空の文字列です。mapName is an empty string.

- または --or- modeAppend です。mode is Append.

capacity が論理アドレス空間のサイズを超えています。capacity is greater than the size of the logical address space.

または-or- capacity が 0 未満です。capacity is less than zero.

- または --or- capacity がファイル サイズを下回っています (ゼロではない)。capacity is less than the file size (but not zero).

または-or- capacity がゼロで、ディスク上のファイルのサイズもゼロです。capacity is zero, and the size of the file on disk is also zero.

I/O エラーが発生しました。An I/O error occurred.

path がオペレーティング システムで定義されている最大長を超えています。path exceeds the maximum length defined by the operating system.

呼び出し元に、ファイルに対する必要なアクセス許可がありません。The caller does not have the required permissions for the file.

注釈

パラメーター modeは、ディスク上のソースファイルに関連します。The mode parameter pertains to the source file on disk.

capacityディスク上のファイルのサイズより大きい場合、メモリマップトファイルにデータが書き込まれない場合でも、ディスク上のファイルは指定された容量に合わせて増加します。If capacity is larger than the size of the file on disk, the file on disk is increased to match the specified capacity even if no data is written to the memory-mapped file. このような事態が発生しないようにするには、既定の容量に 0 ( capacityゼロ) を指定します。これは、内部的にディスク上のファイルのサイズに設定されます。To prevent this from occurring, specify 0 (zero) for the default capacity, which will internally set capacity to the size of the 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.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path, System::IO::FileMode mode, System::String ^ mapName, long capacity, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access);
[System.Security.SecurityCritical]
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile (string path, System.IO.FileMode mode, string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);
static member CreateFromFile : string * System.IO.FileMode * string * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (path As String, mode As FileMode, mapName As String, capacity As Long, access As MemoryMappedFileAccess) As MemoryMappedFile

パラメーター

path
String String String String

割り当てるファイルのパス。The path to the file to map.

mode
FileMode FileMode FileMode FileMode

アクセス モード。Append 以外の FileMode 列挙値を指定できます。Access mode; can be any of the FileMode enumeration values except Append.

mapName
String String String String

メモリ マップト ファイルに割り当てる名前。または、プロセス間で共有する意図のない MemoryMappedFilenullA name to assign to the memory-mapped file, or null for a MemoryMappedFile that you do not intend to share across processes.

capacity
Int64 Int64 Int64 Int64

メモリ マップト ファイルに割り当てる最大サイズ (バイト単位)。The maximum size, in bytes, to allocate to the memory-mapped file. 容量をディスク上のファイルのサイズに設定するには、0 を指定します。Specify 0 to set the capacity to the size of the file on disk.

access
MemoryMappedFileAccess MemoryMappedFileAccess MemoryMappedFileAccess MemoryMappedFileAccess

メモリ マップト ファイルに対して許可されたアクセス権の種類を指定する列挙値の 1 つ。One of the enumeration values that specifies the type of access allowed to the memory-mapped file.

戻り値

指定された特性を持つメモリ マップト ファイル。A memory-mapped file that has the specified characteristics.

例外

mapName が空の文字列です。mapName is an empty string.

- または --or- access が許可値ではありません。access is not an allowed value.

または-or- path が空のファイルを指定しています。path specifies an empty file.

- または --or- accessRead として指定され、容量が path によって指定されたファイルのサイズを超えています。access is specified as Read and capacity is greater than the size of the file indicated by path.

- または --or- modeAppend です。mode is Append.

capacity が論理アドレス空間のサイズを超えています。capacity is greater than the size of the logical address space.

または-or- capacity が 0 未満です。capacity is less than zero.

- または --or- capacity がファイル サイズを下回っています (ゼロではない)。capacity is less than the file size (but not zero).

または-or- capacity がゼロで、ディスク上のファイルのサイズもゼロです。capacity is zero, and the size of the file on disk is also zero.

- または --or- access が定義された MemoryMappedFileAccess 値ではありません。access is not a defined MemoryMappedFileAccess value.

または-or- path によって示されるファイルのサイズが capacity を超える値です。The size of the file indicated by path is greater than capacity.

- または --or-

I/O エラーが発生しました。An I/O error occurred.

path がオペレーティング システムで定義されている最大長を超えています。path exceeds the maximum length defined by the operating system.

呼び出し元に、ファイルに対する必要なアクセス許可がありません。The caller does not have the required permissions for the file.

注釈

パラメーター modeは、ディスク上のソースファイルに関連します。The mode parameter pertains to the source file on disk.

capacityディスク上のファイルのサイズより大きい場合、メモリマップトファイルにデータが書き込まれない場合でも、ディスク上のファイルは指定された容量に合わせて増加します。If capacity is larger than the size of the file on disk, the file on disk is increased to match the specified capacity even if no data is written to the memory-mapped file. このような事態が発生しないようにするには、既定の容量に 0 ( capacityゼロ) を指定します。これは、内部的にディスク上のファイルのサイズに設定されます。To prevent this from occurring, specify 0 (zero) for the default capacity, which will internally set capacity to the size of the file on disk.

セキュリティ

SecurityPermission
アンマネージコードへのアクセスに使用します。for access to unmanaged code. UnmanagedCode (関連する列挙体)Associated enumeration: UnmanagedCode.

こちらもご覧ください

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.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::IO::FileStream ^ fileStream, System::String ^ mapName, long capacity, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access, System::IO::HandleInheritability inheritability, bool leaveOpen);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile (System.IO.FileStream fileStream, string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.HandleInheritability inheritability, bool leaveOpen);
static member CreateFromFile : System.IO.FileStream * string * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess * System.IO.HandleInheritability * bool -> System.IO.MemoryMappedFiles.MemoryMappedFile

パラメーター

fileStream
FileStream FileStream FileStream FileStream

既存のファイルのファイル ストリーム。The file stream of the existing file.

mapName
String String String String

メモリ マップト ファイルに割り当てる名前。または、プロセス間で共有する意図のない MemoryMappedFilenullA name to assign to the memory-mapped file, or null for a MemoryMappedFile that you do not intend to share across processes.

capacity
Int64 Int64 Int64 Int64

メモリ マップト ファイルに割り当てる最大サイズ (バイト単位)。The maximum size, in bytes, to allocate to the memory-mapped file. 容量を filestream のサイズに設定するには 0 を指定します。Specify 0 to set the capacity to the size of filestream.

access
MemoryMappedFileAccess MemoryMappedFileAccess MemoryMappedFileAccess MemoryMappedFileAccess

メモリ マップト ファイルに対して許可されたアクセス権の種類を指定する列挙値の 1 つ。One of the enumeration values that specifies the type of access allowed to the memory-mapped file.

このパラメーターは Write に設定できません。This parameter can't be set to Write.

inheritability
HandleInheritability HandleInheritability HandleInheritability HandleInheritability

メモリ マップト ファイルへのハンドルを子プロセスが継承できるかどうかを指定する列挙値の 1 つ。One of the enumeration values that specifies whether a handle to the memory-mapped file can be inherited by a child process. 既定値は、None です。The default is None.

leaveOpen
Boolean Boolean Boolean Boolean

MemoryMappedFile が破棄されるときにソース ファイル ストリームを閉じるかどうかを示す値。A value that indicates whether to close the source file stream when the MemoryMappedFile is disposed.

戻り値

指定された特性を持つメモリ マップト ファイル。A memory-mapped file that has the specified characteristics.

例外

mapName は、null または空の文字列です。mapName is null or an empty string.

- または --or- capacity とファイルの長さがゼロです。capacity and the length of the file are zero.

または-or- accessWrite 列挙値または Write 列挙値に設定されていますが、これは許可されません。access is set to Write or Write enumeration value, which is not allowed.

または-or- accessRead に設定されており、capacityfilestream より長くなっています。access is set to Read and capacity is larger than the length of filestream.

capacity が 0 未満です。capacity is less than zero.

- または --or- capacity がファイル サイズ未満です。capacity is less than the file size.

または-or- access が有効な MemoryMappedFileAccess 列挙値ではありません。access is not a valid MemoryMappedFileAccess enumeration value.

- または --or- inheritability が有効な HandleInheritability 列挙値ではありません。inheritability is not a valid HandleInheritability enumeration value.

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.

public:
 static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::IO::FileStream ^ fileStream, System::String ^ mapName, long capacity, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access, System::IO::MemoryMappedFiles::MemoryMappedFileSecurity ^ memoryMappedFileSecurity, System::IO::HandleInheritability inheritability, bool leaveOpen);
[System.Security.SecurityCritical]
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile (System.IO.FileStream fileStream, string mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.MemoryMappedFiles.MemoryMappedFileSecurity memoryMappedFileSecurity, System.IO.HandleInheritability inheritability, bool leaveOpen);
static member CreateFromFile : System.IO.FileStream * string * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess * System.IO.MemoryMappedFiles.MemoryMappedFileSecurity * System.IO.HandleInheritability * bool -> System.IO.MemoryMappedFiles.MemoryMappedFile

パラメーター

fileStream
FileStream FileStream FileStream FileStream

メモリ マップト ファイルを作成する既存のファイルへの fileStreamThe fileStream to the file to map.

mapName
String String String String

メモリ マップト ファイルに割り当てる名前。または、プロセス間で共有する意図のない MemoryMappedFilenullA name to assign to the memory-mapped file, or null for a MemoryMappedFile that you do not intend to share across processes.

capacity
Int64 Int64 Int64 Int64

メモリ マップト ファイルに割り当てる最大サイズ (バイト単位)。The maximum size, in bytes, to allocate to the memory-mapped file. 容量をディスク上のファイルのサイズに設定するには、0 を指定します。Specify 0 to set the capacity to the size of the file on disk.

access
MemoryMappedFileAccess MemoryMappedFileAccess MemoryMappedFileAccess MemoryMappedFileAccess

メモリ マップト ファイルに対して許可されたアクセス権の種類を指定する列挙値の 1 つ。One of the enumeration values that specifies the type of access allowed to the memory-mapped file.

このパラメーターは Write に設定できません。This parameter can't be set to Write.

memoryMappedFileSecurity
MemoryMappedFileSecurity MemoryMappedFileSecurity MemoryMappedFileSecurity MemoryMappedFileSecurity

メモリ マップト ファイルに対するファイル アクセスと操作に関して付与することのできるアクセス許可。The permissions that can be granted for file access and operations on memory-mapped files.

このパラメーターは、null に設定できます。This parameter can be null.

inheritability
HandleInheritability HandleInheritability HandleInheritability HandleInheritability

メモリ マップト ファイルへのハンドルを子プロセスが継承できるかどうかを指定する列挙値の 1 つ。One of the enumeration values that specifies whether a handle to the memory-mapped file can be inherited by a child process. 既定値は、None です。The default is None.

leaveOpen
Boolean Boolean Boolean Boolean

MemoryMappedFile を閉じた後で fileStream を破棄しない場合は truefileStream を破棄する場合は falsetrue to not dispose fileStream after the MemoryMappedFile is closed; false to dispose fileStream.

戻り値

指定された特性を持つメモリ マップト ファイル。A memory-mapped file that has the specified characteristics.

例外

mapName が空の文字列です。mapName is an empty string.

または-or- capacity とファイルの長さがゼロです。capacity and the length of the file are zero.

- または --or- accessRead 列挙値または Write 列挙値に設定されていますが、これは許可されません。access is set to the Read or Write enumeration value, which is not allowed.

capacity が 0 未満です。capacity is less than zero.

- または --or- capacity がファイル サイズ未満です。capacity is less than the file size.

- または --or- access が有効な MemoryMappedFileAccess 列挙値ではありません。access is not a valid MemoryMappedFileAccess enumeration value.

または-or- inheritability が有効な HandleInheritability 列挙値ではありません。inheritability is not a valid HandleInheritability enumeration value.

fileStream が閉じられました。fileStream was closed.

fileStream のアクセスを Read または Write に設定すると、accessReadWrite に設定されます。access is set to ReadWrite when fileStream's access is set to Read or Write.

mapName が既に存在します。mapName already exists.

注釈

capacityディスク上のファイルのサイズより大きい場合、メモリマップトファイルにデータが書き込まれない場合でも、ディスク上のファイルは指定された容量に合わせて増加します。If capacity is larger than the size of the file on disk, the file on disk is increased to match the specified capacity even if no data is written to the memory-mapped file. このような事態が発生しないようにするには、既定の容量に 0 ( capacityゼロ) を指定します。これは、内部的にディスク上のファイルのサイズに設定されます。To prevent this from occurring, specify 0 (zero) for the default capacity, which will internally set capacity to the size of the file on disk.

セキュリティ

SecurityPermission
アンマネージコードへのアクセスに使用します。for access to unmanaged code. UnmanagedCode (関連する列挙体)Associated enumeration: UnmanagedCode.

こちらもご覧ください

適用対象