Klasa CAtlFileMappingBase
Ta klasa reprezentuje plik mapowany na pamięć.
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
class CAtlFileMappingBase
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CAtlFileMappingBase::CAtlFileMappingBase | Konstruktor. |
CAtlFileMappingBase::~CAtlFileMappingBase | Destruktora. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CAtlFileMappingBase::CopyFrom | Wywołaj tę metodę, aby skopiować z obiektu mapowania plików. |
CAtlFileMappingBase::GetData | Wywołaj tę metodę, aby pobrać dane z obiektu mapowania plików. |
CAtlFileMappingBase::GetHandle | Wywołaj tę metodę, aby zwrócić dojście do pliku. |
CAtlFileMappingBase::GetMappingSize | Wywołaj tę metodę, aby pobrać rozmiar mapowania z obiektu mapowania plików. |
CAtlFileMappingBase::MapFile | Wywołaj tę metodę, aby utworzyć obiekt mapowania plików. |
CAtlFileMappingBase::MapSharedMem | Wywołaj tę metodę, aby utworzyć obiekt mapowania plików, który zezwala na pełny dostęp do wszystkich procesów. |
CAtlFileMappingBase::OpenMapping | Wywołaj tę metodę, aby zwrócić uchwyt do obiektu mapowania plików. |
CAtlFileMappingBase::Unmap | Wywołaj tę metodę, aby cofnąć mapowanie obiektu mapowania plików. |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CAtlFileMappingBase::operator = | Ustawia bieżący obiekt mapowania plików na inny obiekt mapowania plików. |
Uwagi
Mapowanie plików to skojarzenie zawartości pliku z częścią wirtualnej przestrzeni adresowej procesu. Ta klasa udostępnia metody tworzenia obiektów mapowania plików, które umożliwiają programom łatwe uzyskiwanie dostępu do danych i ich udostępnianie.
Aby uzyskać więcej informacji, zobacz Mapowanie plików w zestawie Windows SDK.
Wymagania
Nagłówek: atlfile.h
CAtlFileMappingBase::CAtlFileMappingBase
Konstruktor.
CAtlFileMappingBase(CAtlFileMappingBase& orig);
CAtlFileMappingBase() throw();
Parametry
Orig
Oryginalny obiekt mapowania plików do skopiowania w celu utworzenia nowego obiektu.
Uwagi
Tworzy nowy obiekt mapowania plików, opcjonalnie przy użyciu istniejącego obiektu. Nadal należy wywołać metodę CAtlFileMappingBase::MapFile , aby otworzyć lub utworzyć obiekt mapowania plików dla określonego pliku.
Przykład
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
Destruktora.
~CAtlFileMappingBase() throw();
Uwagi
Zwalnia wszystkie zasoby przydzielone przez klasę i wywołuje metodę CAtlFileMappingBase::Unmap .
CAtlFileMappingBase::CopyFrom
Wywołaj tę metodę, aby skopiować z obiektu mapowania plików.
HRESULT CopyFrom(CAtlFileMappingBase& orig) throw();
Parametry
Orig
Oryginalny obiekt mapowania plików do skopiowania.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
CAtlFileMappingBase::GetData
Wywołaj tę metodę, aby pobrać dane z obiektu mapowania plików.
void* GetData() const throw();
Wartość zwracana
Zwraca wskaźnik do danych.
CAtlFileMappingBase::GetHandle
Wywołaj tę metodę, aby zwrócić uchwyt do obiektu mapowania plików.
HANDLE GetHandle() throw ();
Wartość zwracana
Zwraca uchwyt do obiektu mapowania plików.
CAtlFileMappingBase::GetMappingSize
Wywołaj tę metodę, aby pobrać rozmiar mapowania z obiektu mapowania plików.
SIZE_T GetMappingSize() throw();
Wartość zwracana
Zwraca rozmiar mapowania.
Przykład
Zobacz przykład CAtlFileMappingBase::CAtlFileMappingBase.
CAtlFileMappingBase::MapFile
Wywołaj tę metodę, aby otworzyć lub utworzyć obiekt mapowania plików dla określonego pliku.
HRESULT MapFile(
HANDLE hFile,
SIZE_T nMappingSize = 0,
ULONGLONG nOffset = 0,
DWORD dwMappingProtection = PAGE_READONLY,
DWORD dwViewDesiredAccess = FILE_MAP_READ) throw();
Parametry
hFile
Dojście do pliku, z którego ma zostać utworzony obiekt mapowania. Plik hFile musi być prawidłowy i nie można go ustawić na wartość INVALID_HANDLE_VALUE.
nMappingSize
Rozmiar mapowania. Jeśli 0, maksymalny rozmiar obiektu mapowania plików jest równy bieżącemu rozmiarowi pliku zidentyfikowanego przez hFile.
nOffset
Przesunięcie pliku, w którym należy rozpocząć mapowanie. Wartość przesunięcia musi być wielokrotną szczegółowością alokacji pamięci systemu.
dwMappingProtection
Ochrona wymagana dla widoku pliku, gdy plik jest mapowany. Zobacz flProtect w artykule CreateFileMapping w zestawie Windows SDK.
dwViewDesiredAccess
Określa typ dostępu do widoku pliku i w związku z tym ochronę stron mapowanych przez plik. Zobacz dwDesiredAccess w mapViewOfFileEx w zestawie Windows SDK.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Po utworzeniu obiektu mapowania plików rozmiar pliku nie może przekraczać rozmiaru obiektu mapowania plików; Jeśli tak się stanie, nie wszystkie treści pliku będą dostępne do udostępniania. Aby uzyskać więcej informacji, zobacz CreateFileMapping i MapViewOfFileEx w zestawie Windows SDK.
Przykład
Zobacz przykład CAtlFileMappingBase::CAtlFileMappingBase.
CAtlFileMappingBase::MapSharedMem
Wywołaj tę metodę, aby utworzyć obiekt mapowania plików, który zezwala na pełny dostęp do wszystkich procesów.
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();
Parametry
nMappingSize
Rozmiar mapowania. Jeśli 0, maksymalny rozmiar obiektu mapowania plików jest równy bieżącemu rozmiarowi obiektu mapowania plików zidentyfikowanego przez szName.
szName
Nazwa obiektu mapowania.
pbAlreadyExisted
Wskazuje wartość BOOL ustawioną na WARTOŚĆ TRUE, jeśli obiekt mapowania już istniał.
lpsa
Wskaźnik do SECURITY_ATTRIBUTES
struktury, która określa, czy zwracany uchwyt może być dziedziczony przez procesy podrzędne. Zobacz lpAttributes w artykule CreateFileMapping w zestawie Windows SDK.
dwMappingProtection
Ochrona wymagana dla widoku pliku, gdy plik jest mapowany. Zobacz flProtect w CreateFileMapping
zestawie Windows SDK.
dwViewDesiredAccess
Określa typ dostępu do widoku pliku i w związku z tym ochronę stron mapowanych przez plik. Zobacz dwDesiredAccess w mapViewOfFileEx w zestawie Windows SDK.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
MapShareMem
umożliwia współużytkowanie istniejącego obiektu mapowania plików utworzonego przez metodę CreateFileMapping.
CAtlFileMappingBase::OpenMapping
Wywołaj tę metodę, aby otworzyć nazwany obiekt mapowania plików dla określonego pliku.
HRESULT OpenMapping(
LPCTSTR szName,
SIZE_T nMappingSize,
ULONGLONG nOffset = 0,
DWORD dwViewDesiredAccess = FILE_MAP_ALL_ACCESS) throw();
Parametry
szName
Nazwa obiektu mapowania. Jeśli istnieje otwarte dojście do obiektu mapowania plików o tej nazwie, a deskryptor zabezpieczeń w obiekcie mapowania nie powoduje konfliktu z parametrem dwViewDesiredAccess , operacja otwierania zakończy się pomyślnie.
nMappingSize
Rozmiar mapowania. Jeśli 0, maksymalny rozmiar obiektu mapowania plików jest równy bieżącemu rozmiarowi obiektu mapowania plików zidentyfikowanego przez szName.
nOffset
Przesunięcie pliku, w którym należy rozpocząć mapowanie. Wartość przesunięcia musi być wielokrotną szczegółowością alokacji pamięci systemu.
dwViewDesiredAccess
Określa typ dostępu do widoku pliku i w związku z tym ochronę stron mapowanych przez plik. Zobacz dwDesiredAccess w mapViewOfFileEx w zestawie Windows SDK.
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
W kompilacjach debugowania wystąpi błąd asercji, jeśli parametry wejściowe są nieprawidłowe.
CAtlFileMappingBase::operator =
Ustawia bieżący obiekt mapowania plików na inny obiekt mapowania plików.
CAtlFileMappingBase& operator=(CAtlFileMappingBase& orig);
Parametry
Orig
Bieżący obiekt mapowania plików.
Wartość zwracana
Zwraca odwołanie do bieżącego obiektu.
CAtlFileMappingBase::Unmap
Wywołaj tę metodę, aby cofnąć mapowanie obiektu mapowania plików.
HRESULT Unmap() throw();
Wartość zwracana
Zwraca S_OK powodzenia lub błąd HRESULT w przypadku niepowodzenia.
Uwagi
Aby uzyskać więcej informacji, zobacz UnmapViewOfFile w zestawie Windows SDK.