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.