Teilen über


CAtlFileMappingBase-Klasse

Diese Klasse stellt eine speicherzuordnunge Datei dar.

Wichtig

Diese Klasse und ihre Member können nicht in Anwendungen verwendet werden, die in der Windows-Runtime ausgeführt werden.

Syntax

class CAtlFileMappingBase

Member

Öffentliche Konstruktoren

Name Beschreibung
CAtlFileMappingBase::CAtlFileMappingBase Der Konstruktor.
CAtlFileMappingBase::~CAtlFileMappingBase Der Destruktor.

Öffentliche Methoden

Name Beschreibung
CAtlFileMappingBase::CopyFrom Rufen Sie diese Methode auf, um aus einem Dateizuordnungsobjekt zu kopieren.
CAtlFileMappingBase::GetData Rufen Sie diese Methode auf, um die Daten aus einem Dateizuordnungsobjekt abzurufen.
CAtlFileMappingBase::GetHandle Rufen Sie diese Methode auf, um das Dateihandle zurückzugeben.
CAtlFileMappingBase::GetMappingSize Rufen Sie diese Methode auf, um die Zuordnungsgröße aus einem Dateizuordnungsobjekt abzurufen.
CAtlFileMappingBase::MapFile Rufen Sie diese Methode auf, um ein Dateizuordnungsobjekt zu erstellen.
CAtlFileMappingBase::MapSharedMem Rufen Sie diese Methode auf, um ein Dateizuordnungsobjekt zu erstellen, das vollzugriff auf alle Prozesse zulässt.
CAtlFileMappingBase::OpenMapping Rufen Sie diese Methode auf, um ein Handle an das Dateizuordnungsobjekt zurückzugeben.
CAtlFileMappingBase::Unmap Rufen Sie diese Methode auf, um die Zuordnung eines Dateizuordnungsobjekts aufzuheben.

Öffentliche Operatoren

Name Beschreibung
CAtlFileMappingBase::operator = Legt das aktuelle Dateizuordnungsobjekt auf ein anderes Dateizuordnungsobjekt fest.

Hinweise

Die Dateizuordnung ist die Zuordnung des Inhalts einer Datei mit einem Teil des virtuellen Adressraums eines Prozesses. Diese Klasse stellt Methoden zum Erstellen von Dateizuordnungsobjekten bereit, mit denen Programme auf einfache Weise auf Daten zugreifen und diese freigeben können.

Weitere Informationen finden Sie unter "Dateizuordnung " im Windows SDK.

Anforderungen

Kopfzeile: atlfile.h

CAtlFileMappingBase::CAtlFileMappingBase

Der Konstruktor.

CAtlFileMappingBase(CAtlFileMappingBase& orig);
CAtlFileMappingBase() throw();

Parameter

Orig
Das ursprüngliche Dateizuordnungsobjekt, das kopiert werden soll, um das neue Objekt zu erstellen.

Hinweise

Erstellt ein neues Dateizuordnungsobjekt, optional mithilfe eines vorhandenen Objekts. Es ist weiterhin erforderlich, CAtlFileMappingBase::MapFile aufzurufen, um das Dateizuordnungsobjekt für eine bestimmte Datei zu öffnen oder zu erstellen.

Beispiel

int OpenMyFileMap()
{
   // Create the file-mapping object.
   CAtlFileMappingBase myFileMap;

   // Create a file.
   CAtlFile myFile;
   myFile.Create(_T("myMapTestFile"),
      GENERIC_READ|GENERIC_WRITE|STANDARD_RIGHTS_ALL,
      FILE_SHARE_READ|FILE_SHARE_WRITE,
      OPEN_ALWAYS);

   // The file handle.
   HANDLE hFile = (HANDLE)myFile;

   // Test the file has opened successfully.
   ATLASSERT(hFile != INVALID_HANDLE_VALUE);

   // Open the file for file-mapping.
   // Must give a size as the file is zero by default.
   if (myFileMap.MapFile(hFile,
      1024,
      0,
      PAGE_READWRITE,
      FILE_MAP_READ) != S_OK)
   {
      CloseHandle(hFile);
      return 0;
   }

   // Confirm the size of the mapping file.
   ATLASSERT(myFileMap.GetMappingSize() == 1024);

   // Now the file-mapping object is open, a second
   // process could access the filemap object to exchange
   // data.

   return 0;
}

CAtlFileMappingBase::~CAtlFileMappingBase

Der Destruktor.

~CAtlFileMappingBase() throw();

Hinweise

Gibt alle von der Klasse zugeordneten Ressourcen frei und ruft die CAtlFileMappingBase::Unmap-Methode auf.

CAtlFileMappingBase::CopyFrom

Rufen Sie diese Methode auf, um aus einem Dateizuordnungsobjekt zu kopieren.

HRESULT CopyFrom(CAtlFileMappingBase& orig) throw();

Parameter

Orig
Das ursprüngliche Dateizuordnungsobjekt, aus dem kopiert werden soll.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

CAtlFileMappingBase::GetData

Rufen Sie diese Methode auf, um die Daten aus einem Dateizuordnungsobjekt abzurufen.

void* GetData() const throw();

Rückgabewert

Gibt einen Zeiger auf die Daten zurück.

CAtlFileMappingBase::GetHandle

Rufen Sie diese Methode auf, um ein Handle an das Dateizuordnungsobjekt zurückzugeben.

HANDLE GetHandle() throw ();

Rückgabewert

Gibt ein Handle für das Dateizuordnungsobjekt zurück.

CAtlFileMappingBase::GetMappingSize

Rufen Sie diese Methode auf, um die Zuordnungsgröße aus einem Dateizuordnungsobjekt abzurufen.

SIZE_T GetMappingSize() throw();

Rückgabewert

Gibt die Zuordnungsgröße zurück.

Beispiel

Sehen Sie sich das Beispiel für CAtlFileMappingBase::CAtlFileMappingBase an.

CAtlFileMappingBase::MapFile

Rufen Sie diese Methode auf, um ein Dateizuordnungsobjekt für die angegebene Datei zu öffnen oder zu erstellen.

HRESULT MapFile(
    HANDLE hFile,
    SIZE_T nMappingSize = 0,
    ULONGLONG nOffset = 0,
    DWORD dwMappingProtection = PAGE_READONLY,
    DWORD dwViewDesiredAccess = FILE_MAP_READ) throw();

Parameter

hFile
Behandeln Sie die Datei, aus der ein Zuordnungsobjekt erstellt werden soll. hFile muss gültig sein und kann nicht auf INVALID_HANDLE_VALUE festgelegt werden.

nMappingSize
Die Zuordnungsgröße. Wenn 0, entspricht die maximale Größe des Dateizuordnungsobjekts der aktuellen Größe der durch hFile identifizierten Datei.

nOffset
Der Dateioffset, bei dem die Zuordnung beginnen soll. Der Offsetwert muss ein Vielfaches der Granularität der Speicherzuweisung des Systems sein.

dwMappingProtection
Der für die Dateiansicht gewünschte Schutz, wenn die Datei zugeordnet wird. Siehe flProtect in CreateFileMapping im Windows SDK.

dwViewDesiredAccess
Gibt den Typ des Zugriffs auf die Dateiansicht und daher den Schutz der Seiten an, die der Datei zugeordnet sind. Siehe dwDesiredAccess in MapViewOfFileEx im Windows SDK.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Nachdem ein Dateizuordnungsobjekt erstellt wurde, darf die Größe der Datei die Größe des Dateizuordnungsobjekts nicht überschreiten. Wenn dies der Fall ist, stehen nicht alle Inhalte der Datei für die Freigabe zur Verfügung. Weitere Informationen finden Sie unter CreateFileMapping und MapViewOfFileEx im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CAtlFileMappingBase::CAtlFileMappingBase an.

CAtlFileMappingBase::MapSharedMem

Rufen Sie diese Methode auf, um ein Dateizuordnungsobjekt zu erstellen, das vollzugriff auf alle Prozesse zulässt.

HRESULT MapSharedMem(
    SIZE_T nMappingSize,
    LPCTSTR szName,
    BOOL* pbAlreadyExisted = NULL,
    LPSECURITY_ATTRIBUTES lpsa = NULL,
    DWORD dwMappingProtection = PAGE_READWRITE,
    DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS) throw();

Parameter

nMappingSize
Die Zuordnungsgröße. Wenn 0, entspricht die maximale Größe des Dateizuordnungsobjekts der aktuellen Größe des durch szName identifizierten Dateizuordnungsobjekts.

szName
Der Name des Zuordnungsobjekts.

pbAlreadyExisted
Verweist auf einen BOOL-Wert, der auf TRUE festgelegt ist, wenn das Zuordnungsobjekt bereits vorhanden ist.

lpsa
Der Zeiger auf eine SECURITY_ATTRIBUTES Struktur, die bestimmt, ob das zurückgegebene Handle von untergeordneten Prozessen geerbt werden kann. Siehe lpAttributes in CreateFileMapping im Windows SDK.

dwMappingProtection
Der für die Dateiansicht gewünschte Schutz, wenn die Datei zugeordnet wird. Siehe flProtect im CreateFileMapping Windows SDK.

dwViewDesiredAccess
Gibt den Typ des Zugriffs auf die Dateiansicht und daher den Schutz der Seiten an, die der Datei zugeordnet sind. Siehe dwDesiredAccess in MapViewOfFileEx im Windows SDK.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

MapShareMem ermöglicht ein vorhandenes Dateizuordnungsobjekt, das von CreateFileMapping erstellt wird, zwischen Prozessen gemeinsam zu verwenden.

CAtlFileMappingBase::OpenMapping

Rufen Sie diese Methode auf, um ein benanntes Dateizuordnungsobjekt für die angegebene Datei zu öffnen.

HRESULT OpenMapping(
    LPCTSTR szName,
    SIZE_T nMappingSize,
    ULONGLONG nOffset = 0,
    DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS) throw();

Parameter

szName
Der Name des Zuordnungsobjekts. Wenn ein geöffnetes Handle für ein Dateizuordnungsobjekt mit diesem Namen vorhanden ist und der Sicherheitsdeskriptor für das Zuordnungsobjekt nicht mit dem dwViewDesiredAccess-Parameter in Konflikt steht, ist der öffnende Vorgang erfolgreich.

nMappingSize
Die Zuordnungsgröße. Wenn 0, entspricht die maximale Größe des Dateizuordnungsobjekts der aktuellen Größe des durch szName identifizierten Dateizuordnungsobjekts.

nOffset
Der Dateioffset, bei dem die Zuordnung beginnen soll. Der Offsetwert muss ein Vielfaches der Granularität der Speicherzuweisung des Systems sein.

dwViewDesiredAccess
Gibt den Typ des Zugriffs auf die Dateiansicht und daher den Schutz der Seiten an, die der Datei zugeordnet sind. Siehe dwDesiredAccess in MapViewOfFileEx im Windows SDK.

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

In Debugbuilds tritt ein Assertionsfehler auf, wenn die Eingabeparameter ungültig sind.

CAtlFileMappingBase::operator =

Legt das aktuelle Dateizuordnungsobjekt auf ein anderes Dateizuordnungsobjekt fest.

CAtlFileMappingBase& operator=(CAtlFileMappingBase& orig);

Parameter

Orig
Das aktuelle Dateizuordnungsobjekt.

Rückgabewert

Gibt einen Verweis auf das aktuelle -Objekt zurück.

CAtlFileMappingBase::Unmap

Rufen Sie diese Methode auf, um die Zuordnung eines Dateizuordnungsobjekts aufzuheben.

HRESULT Unmap() throw();

Rückgabewert

S_OK bei Erfolg, ein HRESULT-Fehler bei einem Fehlschlag.

Hinweise

Weitere Details finden Sie unter UnmapViewOfFile im Windows SDK.

Siehe auch

CAtlFileMapping-Klasse
Klassenübersicht