MemoryMappedFile.CreateViewAccessor Method (Int64, Int64)

.NET Framework (current version)

Creates a MemoryMappedViewAccessor that maps to a view of the memory-mapped file, and that has the specified offset and size.

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

public MemoryMappedViewAccessor CreateViewAccessor(
	long offset,
	long size


Type: System.Int64

The byte at which to start the view.

Type: System.Int64

The size of the view. Specify 0 (zero) to create a view that starts at offset and ends approximately at the end of the memory-mapped file.

Return Value

Type: System.IO.MemoryMappedFiles.MemoryMappedViewAccessor

A randomly accessible block of memory.

Exception Condition

offset or size is a negative value.


size is greater than the logical address space.


Access to the memory-mapped file is unauthorized.


An I/O error occurred.

You can use the view returned by this method for random access to a memory-mapped file.

To create a complete view of the memory-mapped file, specify 0 (zero) for the size parameter. If you do this, the size of the view might be smaller or larger than the size of the source file on disk. This is because views are provided in units of system pages, and the size of the view is rounded up to the next system page size.

The following example creates a view of a memory-mapped file and edits it. This code example is part of a larger example provided for the MemoryMappedFile class.

// 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);
        accessor.Write(i, ref color);

.NET Framework
Available since 4.0
Return to top