Udostępnij za pośrednictwem


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.

Zobacz też

Klasa CAtlFileMapping
Omówienie klasy