MemoryMappedFile.OpenExisting Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee opent u een bestaand bestand met de naam geheugen in het systeemgeheugen.
Overloads
| Name | Description |
|---|---|
| OpenExisting(String) |
Hiermee opent u een bestaand geheugentoewijzingsbestand met de opgegeven naam in het systeemgeheugen. |
| OpenExisting(String, MemoryMappedFileRights) |
Hiermee opent u een bestaand geheugentoewijzingsbestand met de opgegeven naam en toegangsrechten in het systeemgeheugen. |
| OpenExisting(String, MemoryMappedFileRights, HandleInheritability) |
Hiermee opent u een bestaand geheugentoewijzingsbestand met de opgegeven naam, toegangsrechten en overnamemogelijkheden in het systeemgeheugen. |
OpenExisting(String)
Hiermee opent u een bestaand geheugentoewijzingsbestand met de opgegeven naam in het systeemgeheugen.
public:
static System::IO::MemoryMappedFiles::MemoryMappedFile ^ OpenExisting(System::String ^ mapName);
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting(string mapName);
static member OpenExisting : string -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function OpenExisting (mapName As String) As MemoryMappedFile
Parameters
- mapName
- String
De naam van het geheugentoewijzingsbestand.
Retouren
Een geheugentoewijzingsbestand met de opgegeven naam.
Uitzonderingen
mapName is null.
mapName is een lege tekenreeks.
Het opgegeven mapName bestand bestaat niet.
Voorbeelden
Een persistent Memory-Mapped-bestand openen
In het volgende voorbeeld wordt een geheugentoewijzingsbestand geopend met de naam ImgA dat al is gemaakt op basis van een bestand op schijf (zoals weergegeven in het voorbeeld voor de CreateFromFile(String) methode).
using System;
using System.IO.MemoryMappedFiles;
using System.Runtime.InteropServices;
class Program
{
static void Main(string[] args)
{
// Assumes another process has created the memory-mapped file.
using (var mmf = MemoryMappedFile.OpenExisting("ImgA"))
{
using (var accessor = mmf.CreateViewAccessor(4000000, 2000000))
{
int colorSize = Marshal.SizeOf(typeof(MyColor));
MyColor color;
// Make changes to the view.
for (long i = 0; i < 1500000; i += colorSize)
{
accessor.Read(i, out color);
color.Brighten(20);
accessor.Write(i, ref color);
}
}
}
}
}
public struct MyColor
{
public short Red;
public short Green;
public short Blue;
public short Alpha;
// Make the view brigher.
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.MemoryMappedFiles
Imports System.Runtime.InteropServices
Class Program
Public Shared Sub Main(ByVal args As String())
' Assumes another process has created the memory-mapped file.
Using mmf = MemoryMappedFile.OpenExisting("ImgA")
Using accessor = mmf.CreateViewAccessor(4000000, 2000000)
Dim colorSize As Integer = Marshal.SizeOf(GetType(MyColor))
Dim color As MyColor
' Make changes to the view.
Dim i As Long = 0
While i < 1500000
accessor.Read(i, color)
color.Brighten(30)
accessor.Write(i, color)
i += colorSize
End While
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 brigher.
Public Sub Brighten(ByVal value As Short)
Red = CShort(Math.Min(Short.MaxValue, CInt(Red) + value))
Green = CShort(Math.Min(Short.MaxValue, CInt(Green) + value))
Blue = CShort(Math.Min(Short.MaxValue, CInt(Blue) + value))
Alpha = CShort(Math.Min(Short.MaxValue, CInt(Alpha) + value))
End Sub
End Structure
Een niet-persistent Memory-Mapped-bestand openen
In het volgende voorbeeld wordt een geheugentoewijzingsbestand geopend dat wordt gebruikt voor communicatie tussen processen. Dit codevoorbeeld maakt deel uit van een groter voorbeeld dat is opgegeven voor de CreateNew(String, Int64) methode.
Opmerkingen
Het geheugentoewijzingsbestand kan een persistent geheugentoewijzingsbestand zijn (gekoppeld aan een bestand op schijf) of niet-persistent.
Zie ook
Van toepassing op
OpenExisting(String, MemoryMappedFileRights)
Hiermee opent u een bestaand geheugentoewijzingsbestand met de opgegeven naam en toegangsrechten in het systeemgeheugen.
public:
static System::IO::MemoryMappedFiles::MemoryMappedFile ^ OpenExisting(System::String ^ mapName, System::IO::MemoryMappedFiles::MemoryMappedFileRights desiredAccessRights);
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting(string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights);
static member OpenExisting : string * System.IO.MemoryMappedFiles.MemoryMappedFileRights -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function OpenExisting (mapName As String, desiredAccessRights As MemoryMappedFileRights) As MemoryMappedFile
Parameters
- mapName
- String
De naam van het geheugentoewijzingsbestand dat moet worden geopend.
- desiredAccessRights
- MemoryMappedFileRights
Een van de opsommingswaarden die de toegangsrechten specificeert die moeten worden toegepast op het geheugentoewijzingsbestand.
Retouren
Een geheugentoewijzingsbestand met de opgegeven kenmerken.
Uitzonderingen
mapName is null.
mapName is een lege tekenreeks.
desiredAccessRights is geen geldige MemoryMappedFileRights opsommingswaarde.
Het opgegeven mapName bestand bestaat niet.
Zie ook
Van toepassing op
OpenExisting(String, MemoryMappedFileRights, HandleInheritability)
Hiermee opent u een bestaand geheugentoewijzingsbestand met de opgegeven naam, toegangsrechten en overnamemogelijkheden in het systeemgeheugen.
public:
static System::IO::MemoryMappedFiles::MemoryMappedFile ^ OpenExisting(System::String ^ mapName, System::IO::MemoryMappedFiles::MemoryMappedFileRights desiredAccessRights, System::IO::HandleInheritability inheritability);
[System.Security.SecurityCritical]
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting(string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights, System.IO.HandleInheritability inheritability);
public static System.IO.MemoryMappedFiles.MemoryMappedFile OpenExisting(string mapName, System.IO.MemoryMappedFiles.MemoryMappedFileRights desiredAccessRights, System.IO.HandleInheritability inheritability);
[<System.Security.SecurityCritical>]
static member OpenExisting : string * System.IO.MemoryMappedFiles.MemoryMappedFileRights * System.IO.HandleInheritability -> System.IO.MemoryMappedFiles.MemoryMappedFile
static member OpenExisting : string * System.IO.MemoryMappedFiles.MemoryMappedFileRights * System.IO.HandleInheritability -> System.IO.MemoryMappedFiles.MemoryMappedFile
Public Shared Function OpenExisting (mapName As String, desiredAccessRights As MemoryMappedFileRights, inheritability As HandleInheritability) As MemoryMappedFile
Parameters
- mapName
- String
De naam van het geheugentoewijzingsbestand dat moet worden geopend.
- desiredAccessRights
- MemoryMappedFileRights
Een van de opsommingswaarden die de toegangsrechten specificeert die moeten worden toegepast op het geheugentoewijzingsbestand.
- inheritability
- HandleInheritability
Een van de opsommingswaarden die aangeeft of een ingang naar het geheugentoewijzingsbestand kan worden overgenomen door een onderliggend proces. De standaardwaarde is None.
Retouren
Een geheugentoewijzingsbestand met de opgegeven kenmerken.
- Kenmerken
Uitzonderingen
mapName is null.
mapName is een lege tekenreeks.
desiredAccessRights is geen geldige MemoryMappedFileRights opsommingswaarde.
– of –
inheritability is geen geldige HandleInheritability opsommingswaarde.
De aangevraagde toegang is ongeldig voor het geheugentoewijzingsbestand.
Het opgegeven mapName bestand bestaat niet.