MemoryMappedFile.CreateFromFile Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um arquivo mapeado em memória de um arquivo existente.
Sobrecargas
CreateFromFile(String) |
Cria um arquivo mapeado em memória de um arquivo no disco. |
CreateFromFile(String, FileMode) |
Cria, de um arquivo no disco, um arquivo mapeado na memória que tem o modo de acesso especificado. |
CreateFromFile(String, FileMode, String) |
Cria, de um arquivo no disco, um arquivo mapeado em memória que tem o modo de acesso e o nome especificados. |
CreateFromFile(String, FileMode, String, Int64) |
Cria, de um arquivo no disco, um arquivo mapeado em memória que tem o modo de acesso, o nome e a capacidade especificados. |
CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess) |
Cria um arquivo mapeado na memória que tem o modo de acesso, o nome, a capacidade e o tipo de acesso especificados de um arquivo no disco. |
CreateFromFile(SafeFileHandle, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean) |
Cria um arquivo mapeado na memória de um arquivo existente usando um SafeFileHandle e o modo de acesso, o nome, a herdabilidade e a capacidade especificados. |
CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean) |
Cria um arquivo mapeado na memória de um arquivo existente com o modo de acesso, nome, herdabilidade e capacidade especificados. |
CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean) |
Cria um arquivo mapeado na memória que tem o nome, a capacidade, o tipo de acesso, as permissões de segurança, a herdabilidade e o requisito de descarte especificados. |
CreateFromFile(String)
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
Cria um arquivo mapeado em memória de um arquivo no disco.
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
Parâmetros
- path
- String
O caminho para o arquivo a ser mapeado.
Retornos
Um arquivo mapeado em memória.
Exceções
path
é uma cadeia de caracteres vazia, contém somente espaço em branco ou tem um ou mais caracteres inválidos, conforme definido pelo método GetInvalidFileNameChars().
- ou -
path
refere-se a um dispositivo inválido.
path
é null
.
Ocorreu um erro de E/S.
path
excede o tamanho máximo definido pelo sistema operacional.
O chamador não tem as permissões necessárias para o arquivo.
Exemplos
O exemplo a seguir usa o CreateFromFile método para criar um arquivo mapeado pela memória e, em seguida, cria uma exibição mapeada por memória para uma parte de um arquivo extremamente grande.
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
Confira também
Aplica-se a
CreateFromFile(String, FileMode)
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
Cria, de um arquivo no disco, um arquivo mapeado na memória que tem o modo de acesso especificado.
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
Parâmetros
- path
- String
O caminho para o arquivo a ser mapeado.
Retornos
Um arquivo mapeado na memória que tem o modo de acesso especificado.
Exceções
path
é uma cadeia de caracteres vazia, contém somente espaço em branco ou tem um ou mais caracteres inválidos, conforme definido pelo método GetInvalidFileNameChars().
- ou -
path
refere-se a um dispositivo inválido.
- ou -
mode
é Append.
path
é null
.
mode
é Create, CreateNew ou Truncate.
- ou -
mode
é OpenOrCreate e o arquivo em disco não existe.
- ou -
Ocorreu um erro de E/S.
path
excede o tamanho máximo definido pelo sistema operacional.
O chamador não tem as permissões necessárias para o arquivo.
Comentários
O mode
parâmetro pertence ao arquivo de origem no disco. Você pode usar apenas o Open valor de enumeração para criar o arquivo mapeado na memória do arquivo de origem no disco.
Confira também
Aplica-se a
CreateFromFile(String, FileMode, String)
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
Cria, de um arquivo no disco, um arquivo mapeado em memória que tem o modo de acesso e o nome especificados.
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);
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
Parâmetros
- path
- String
O caminho para o arquivo a ser mapeado.
- mapName
- String
Um nome a ser atribuído ao arquivo mapeado em memória, ou null
para um MemoryMappedFile que você não pretende compartilhar entre processos.
Retornos
Um arquivo mapeado em memória que tem o nome e o modo de acesso especificados.
Exceções
path
é uma cadeia de caracteres vazia, contém somente espaço em branco ou tem um ou mais caracteres inválidos, conforme definido pelo método GetInvalidFileNameChars().
- ou -
path
refere-se a um dispositivo inválido.
- ou -
mapName
é uma cadeia de caracteres vazia.
- ou -
mode
é Append.
path
é null
.
mode
é Create, CreateNew ou Truncate.
- ou -
mode
é OpenOrCreate e o arquivo em disco não existe.
- ou -
Ocorreu um erro de E/S.
path
excede o tamanho máximo definido pelo sistema operacional.
O chamador não tem as permissões necessárias para o arquivo.
Comentários
O mode
parâmetro pertence ao arquivo de origem no disco. Você pode usar apenas o Open valor de enumeração para criar o arquivo mapeado na memória do arquivo de origem no disco.
Aplica-se a
CreateFromFile(String, FileMode, String, Int64)
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
Cria, de um arquivo no disco, um arquivo mapeado em memória que tem o modo de acesso, o nome e a capacidade especificados.
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);
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
Parâmetros
- path
- String
O caminho para o arquivo a ser mapeado.
- mode
- FileMode
Modo de acesso; pode ser qualquer um dos valores de enumeração de FileMode, exceto Append.
- mapName
- String
Um nome a ser atribuído ao arquivo mapeado em memória, ou null
para um MemoryMappedFile que você não pretende compartilhar entre processos.
- capacity
- Int64
O tamanho máximo, em bytes, a ser alocado para o arquivo mapeado em memória. Especifique 0 para definir a capacidade para o tamanho do arquivo no disco.
Retornos
Um arquivo mapeado na memória que tem as características especificadas.
Exceções
path
é uma cadeia de caracteres vazia, contém somente espaço em branco ou tem um ou mais caracteres inválidos, conforme definido pelo método GetInvalidFileNameChars().
- ou -
path
refere-se a um dispositivo inválido.
- ou -
mapName
é uma cadeia de caracteres vazia.
- ou -
mode
é Append.
path
é null
.
capacity
é maior que o tamanho do espaço de endereçamento lógico.
- ou -
capacity
é menor que zero.
- ou -
capacity
é menor que o tamanho do arquivo (mas não zero).
- ou -
capacity
é zero e o tamanho do arquivo em disco também é zero.
Ocorreu um erro de E/S.
path
excede o tamanho máximo definido pelo sistema operacional.
O chamador não tem as permissões necessárias para o arquivo.
Comentários
O mode
parâmetro pertence ao arquivo de origem no disco.
Se capacity
for maior que o tamanho do arquivo no disco, o arquivo no disco será aumentado para corresponder à capacidade especificada, mesmo que nenhum dado seja gravado no arquivo mapeado pela memória. Para evitar que isso ocorra, especifique 0 (zero) para a capacidade padrão, que será definida capacity
internamente como o tamanho do arquivo no disco.
Aplica-se a
CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess)
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
Cria um arquivo mapeado na memória que tem o modo de acesso, o nome, a capacidade e o tipo de acesso especificados de um arquivo no disco.
public:
static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(System::String ^ path, System::IO::FileMode mode, System::String ^ mapName, long capacity, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile (string path, System.IO.FileMode mode, string? mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile (string path, System.IO.FileMode mode, 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
[<System.Security.SecurityCritical>]
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
Parâmetros
- path
- String
O caminho para o arquivo a ser mapeado.
- mode
- FileMode
Modo de acesso; pode ser qualquer um dos valores de enumeração de FileMode, exceto Append.
- mapName
- String
Um nome a ser atribuído ao arquivo mapeado em memória, ou null
para um MemoryMappedFile que você não pretende compartilhar entre processos.
- capacity
- Int64
O tamanho máximo, em bytes, a ser alocado para o arquivo mapeado em memória. Especifique 0 para definir a capacidade para o tamanho do arquivo no disco.
- access
- MemoryMappedFileAccess
Um dos valores de enumeração que especifica o tipo de acesso permitido para o arquivo mapeado na memória.
Retornos
Um arquivo mapeado na memória que tem as características especificadas.
- Atributos
Exceções
mapName
é uma cadeia de caracteres vazia.
- ou -
access
não é um valor permitido.
- ou -
path
especifica um arquivo vazio.
- ou -
access
é especificado como Read e capacidade é maior que o tamanho do arquivo indicado por path
.
- ou -
mode
é Append.
path
é null
.
capacity
é maior que o tamanho do espaço de endereçamento lógico.
- ou -
capacity
é menor que zero.
- ou -
capacity
é menor que o tamanho do arquivo (mas não zero).
- ou -
capacity
é zero e o tamanho do arquivo em disco também é zero.
- ou -
access
não um valor de MemoryMappedFileAccess definido.
- ou -
O tamanho do arquivo indicado por path
é maior do que capacity
.
path
excede o tamanho máximo definido pelo sistema operacional.
O chamador não tem as permissões necessárias para o arquivo.
Comentários
O mode
parâmetro pertence ao arquivo de origem no disco.
Se capacity
for maior que o tamanho do arquivo no disco, o arquivo no disco será aumentado para corresponder à capacidade especificada, mesmo que nenhum dado seja gravado no arquivo mapeado na memória. Para evitar que isso ocorra, especifique 0 (zero) para a capacidade padrão, que será definida capacity
internamente como o tamanho do arquivo no disco.
Confira também
Aplica-se a
CreateFromFile(SafeFileHandle, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean)
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
Cria um arquivo mapeado em memória de um arquivo existente usando um SafeFileHandle e o modo de acesso, o nome, a herdabilidade e a capacidade especificados.
public:
static System::IO::MemoryMappedFiles::MemoryMappedFile ^ CreateFromFile(Microsoft::Win32::SafeHandles::SafeFileHandle ^ fileHandle, System::String ^ mapName, long capacity, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access, System::IO::HandleInheritability inheritability, bool leaveOpen);
public static System.IO.MemoryMappedFiles.MemoryMappedFile CreateFromFile (Microsoft.Win32.SafeHandles.SafeFileHandle fileHandle, string? mapName, long capacity, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access, System.IO.HandleInheritability inheritability, bool leaveOpen);
static member CreateFromFile : Microsoft.Win32.SafeHandles.SafeFileHandle * string * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess * System.IO.HandleInheritability * bool -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (fileHandle As SafeFileHandle, mapName As String, capacity As Long, access As MemoryMappedFileAccess, inheritability As HandleInheritability, leaveOpen As Boolean) As MemoryMappedFile
Parâmetros
- fileHandle
- SafeFileHandle
O SafeFileHandle para o arquivo existente. O chamador é responsável por descartar fileHandle
quando leaveOpen
é true
(caso contrário, descartado automaticamente pelo MemoryMappedFile).
- mapName
- String
Um nome a ser atribuído ao arquivo mapeado em memória, ou null
para um MemoryMappedFile que você não pretende compartilhar entre processos.
- capacity
- Int64
O tamanho máximo, em bytes, a ser alocado para o arquivo mapeado em memória. Especifique 0 para definir a capacidade para o tamanho do arquivo.
- access
- MemoryMappedFileAccess
Um dos valores de enumeração que especifica o tipo de acesso permitido para o arquivo mapeado na memória.
Este parâmetro não pode ser definido como Write.
- inheritability
- HandleInheritability
Um dos valores de enumeração que especifica se um identificador para o arquivo mapeado em memória pode ser herdado por um processo filho. O padrão é None.
- leaveOpen
- Boolean
Um valor que indica se o identificador de arquivo de origem deve ser fechado quando o MemoryMappedFile é descartado.
Retornos
Um arquivo mapeado na memória que tem as características especificadas.
Exceções
mapName
é null
ou é uma cadeia de caracteres vazia.
- ou -
capacity
e o tamanho do arquivo são zero.
- ou -
access
é definido como Write, o que não é permitido.
-ou-
access
é definido Read como e capacity
é maior que o comprimento do arquivo.
fileHandle
é null
.
capacity
é menor que zero.
- ou -
capacity
é menor que o tamanho do arquivo.
- ou -
access
não é um valor de enumeração MemoryMappedFileAccess válido.
- ou -
inheritability
não é um valor de enumeração HandleInheritability válido.
Aplica-se a
CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean)
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
- Origem:
- MemoryMappedFile.cs
Cria um arquivo mapeado na memória de um arquivo existente com o modo de acesso, nome, herdabilidade e capacidade especificados.
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);
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
Public Shared Function CreateFromFile (fileStream As FileStream, mapName As String, capacity As Long, access As MemoryMappedFileAccess, inheritability As HandleInheritability, leaveOpen As Boolean) As MemoryMappedFile
Parâmetros
- fileStream
- FileStream
O fluxo de arquivo do arquivo existente.
- mapName
- String
Um nome a ser atribuído ao arquivo mapeado em memória, ou null
para um MemoryMappedFile que você não pretende compartilhar entre processos.
- capacity
- Int64
O tamanho máximo, em bytes, a ser alocado para o arquivo mapeado em memória. Especifique 0 para definir a capacidade para o tamanho do filestream
.
- access
- MemoryMappedFileAccess
Um dos valores de enumeração que especifica o tipo de acesso permitido para o arquivo mapeado na memória.
Este parâmetro não pode ser definido como Write.
- inheritability
- HandleInheritability
Um dos valores de enumeração que especifica se um identificador para o arquivo mapeado em memória pode ser herdado por um processo filho. O padrão é None.
- leaveOpen
- Boolean
Um valor que indica se deve fechar o fluxo do arquivo de origem quando o MemoryMappedFile é descartado.
Retornos
Um arquivo mapeado na memória que tem as características especificadas.
Exceções
mapName
é null
ou é uma cadeia de caracteres vazia.
- ou -
capacity
e o tamanho do arquivo são zero.
- ou -
access
é definido como o valor de enumeração Write ou Write, o que não é permitido.
- ou -
access
é definido como Read e capacity
é maior do que o comprimento de filestream
.
fileStream
é null
.
capacity
é menor que zero.
- ou -
capacity
é menor que o tamanho do arquivo.
- ou -
access
não é um valor de enumeração MemoryMappedFileAccess válido.
- ou -
inheritability
não é um valor de enumeração HandleInheritability válido.
Aplica-se a
CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean)
Cria um arquivo mapeado na memória que tem o nome, a capacidade, o tipo de acesso, as permissões de segurança, a herdabilidade e o requisito de descarte especificados.
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);
[<System.Security.SecurityCritical>]
static member CreateFromFile : System.IO.FileStream * string * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess * System.IO.MemoryMappedFiles.MemoryMappedFileSecurity * System.IO.HandleInheritability * bool -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function CreateFromFile (fileStream As FileStream, mapName As String, capacity As Long, access As MemoryMappedFileAccess, memoryMappedFileSecurity As MemoryMappedFileSecurity, inheritability As HandleInheritability, leaveOpen As Boolean) As MemoryMappedFile
Parâmetros
- fileStream
- FileStream
O fileStream
para o arquivo a ser mapeado.
- mapName
- String
Um nome a ser atribuído ao arquivo mapeado em memória, ou null
para um MemoryMappedFile que você não pretende compartilhar entre processos.
- capacity
- Int64
O tamanho máximo, em bytes, a ser alocado para o arquivo mapeado em memória. Especifique 0 para definir a capacidade para o tamanho do arquivo no disco.
- access
- MemoryMappedFileAccess
Um dos valores de enumeração que especifica o tipo de acesso permitido para o arquivo mapeado na memória.
Este parâmetro não pode ser definido como Write.
- memoryMappedFileSecurity
- MemoryMappedFileSecurity
As permissões que podem ser concedidas para acesso a arquivos e operações em arquivos mapeados em memória.
Esse parâmetro pode ser null
.
- inheritability
- HandleInheritability
Um dos valores de enumeração que especifica se um identificador para o arquivo mapeado em memória pode ser herdado por um processo filho. O padrão é None.
- leaveOpen
- Boolean
true
para não descartar fileStream
depois que o MemoryMappedFile for fechado, false
para descartar fileStream
.
Retornos
Um arquivo mapeado na memória que tem as características especificadas.
- Atributos
Exceções
mapName
é uma cadeia de caracteres vazia.
- ou -
capacity
e o tamanho do arquivo são zero.
- ou -
access
é definido como o valor de enumeração Read ou Write, o que não é permitido.
fileStream
é null
.
capacity
é menor que zero.
- ou -
capacity
é menor que o tamanho do arquivo.
- ou -
access
não é um valor de enumeração MemoryMappedFileAccess válido.
- ou -
inheritability
não é um valor de enumeração HandleInheritability válido.
fileStream
foi fechado.
mapName
já existe.
Comentários
Se capacity
for maior que o tamanho do arquivo no disco, o arquivo no disco será aumentado para corresponder à capacidade especificada, mesmo que nenhum dado seja gravado no arquivo mapeado pela memória. Para evitar que isso ocorra, especifique 0 (zero) para a capacidade padrão, que será definida capacity
internamente como o tamanho do arquivo no disco.