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

MemoryMappedFile::CreateFromFile Method (FileStream^, String^, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity^, HandleInheritability, Boolean)

.NET Framework 4.6 and 4.5

Creates a memory-mapped file that has the specified name, capacity, access type, security permissions, inheritability, and disposal requirement from a file on disk.

Namespace:   System.IO.MemoryMappedFiles
Assembly:  System.Core (in System.Core.dll)

[SecurityPermissionAttribute(SecurityAction::Demand, Flags = SecurityPermissionFlag::UnmanagedCode)]
static MemoryMappedFile^ CreateFromFile(
	FileStream^ fileStream,
	String^ mapName,
	long long capacity,
	MemoryMappedFileAccess access,
	MemoryMappedFileSecurity^ memoryMappedFileSecurity,
	HandleInheritability inheritability,
	bool leaveOpen


Type: System.IO::FileStream^

The fileStream to the file to map.

Type: System::String^

A name to assign to the memory-mapped file.

Type: System::Int64

The maximum size, in bytes, to allocate to the memory-mapped file. Specify 0 to set the capacity to the size of the file on disk.

Type: System.IO.MemoryMappedFiles::MemoryMappedFileAccess

One of the enumeration values that specifies the type of access allowed to the memory-mapped file.

This parameter can’t be set to Write.

Type: System.IO.MemoryMappedFiles::MemoryMappedFileSecurity^

The permissions that can be granted for file access and operations on memory-mapped files.

This parameter can be null.

Type: System.IO::HandleInheritability

One of the enumeration values that specifies whether a handle to the memory-mapped file can be inherited by a child process. The default is None.

Type: System::Boolean

true to not dispose fileStream after the MemoryMappedFile is closed; false to dispose fileStream.

Return Value

Type: System.IO.MemoryMappedFiles::MemoryMappedFile^

A memory-mapped file that has the specified characteristics.

Exception Condition

mapName is an empty string.


capacity and the length of the file are zero.


access is set to the Read or Write enumeration value, which is not allowed.


fileStream or mapname is null.


capacity is less than zero.


capacity is less than the file size.


access is not a valid MemoryMappedFileAccess enumeration value.


inheritability is not a valid HandleInheritability enumeration value.


fileStream was closed.


access is set to MemoryMappedFileAccess::ReadWrite when fileStream's access is set to FileAccess::Read or FileAccess::Write.


mapName already exists.

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. 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.


for access to unmanaged code. Associated enumeration: SecurityPermissionFlag::UnmanagedCode.

.NET Framework
Available since 4.0
Return to top
© 2015 Microsoft