Bagikan melalui


Kelas CAtlFileMappingBase

Kelas ini mewakili file yang dipetakan memori.

Penting

Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.

Sintaks

class CAtlFileMappingBase

Anggota

Konstruktor Publik

Nama Deskripsi
CAtlFileMappingBase::CAtlFileMappingBase Konstruktor.
CAtlFileMappingBase::~CAtlFileMappingBase Destruktor.

Metode Publik

Nama Deskripsi
CAtlFileMappingBase::CopyFrom Panggil metode ini untuk menyalin dari objek pemetaan file.
CAtlFileMappingBase::GetData Panggil metode ini untuk mendapatkan data dari objek pemetaan file.
CAtlFileMappingBase::GetHandle Panggil metode ini untuk mengembalikan handel file.
CAtlFileMappingBase::GetMappingSize Panggil metode ini untuk mendapatkan ukuran pemetaan dari objek pemetaan file.
CAtlFileMappingBase::MapFile Panggil metode ini untuk membuat objek pemetaan file.
CAtlFileMappingBase::MapSharedMem Panggil metode ini untuk membuat objek pemetaan file yang mengizinkan akses penuh ke semua proses.
CAtlFileMappingBase::OpenMapping Panggil metode ini untuk mengembalikan handel ke objek pemetaan file.
CAtlFileMappingBase::Unmap Panggil metode ini untuk membatalkan peta objek pemetaan file.

Operator Publik

Nama Deskripsi
CAtlFileMappingBase::operator = Mengatur objek pemetaan file saat ini ke objek pemetaan file lain.

Keterangan

Pemetaan file adalah asosiasi konten file dengan sebagian ruang alamat virtual proses. Kelas ini menyediakan metode untuk membuat objek pemetaan file yang mengizinkan program mengakses dan berbagi data dengan mudah.

Untuk informasi selengkapnya, lihat Pemetaan File di Windows SDK.

Persyaratan

Header: atlfile.h

CAtlFileMappingBase::CAtlFileMappingBase

Konstruktor.

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

Parameter

orig
Objek pemetaan file asli untuk disalin untuk membuat objek baru.

Keterangan

Membuat objek pemetaan file baru, secara opsional menggunakan objek yang sudah ada. Masih perlu memanggil CAtlFileMappingBase::MapFile untuk membuka atau membuat objek pemetaan file untuk file tertentu.

Contoh

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

Destruktor.

~CAtlFileMappingBase() throw();

Keterangan

Membebaskan sumber daya apa pun yang dialokasikan oleh kelas dan memanggil metode CAtlFileMappingBase::Unmap .

CAtlFileMappingBase::CopyFrom

Panggil metode ini untuk menyalin dari objek pemetaan file.

HRESULT CopyFrom(CAtlFileMappingBase& orig) throw();

Parameter

orig
Objek pemetaan file asli untuk disalin.

Tampilkan Nilai

Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.

CAtlFileMappingBase::GetData

Panggil metode ini untuk mendapatkan data dari objek pemetaan file.

void* GetData() const throw();

Tampilkan Nilai

Mengembalikan penunjuk ke data.

CAtlFileMappingBase::GetHandle

Panggil metode ini untuk mengembalikan handel ke objek pemetaan file.

HANDLE GetHandle() throw ();

Tampilkan Nilai

Mengembalikan handel ke objek pemetaan file.

CAtlFileMappingBase::GetMappingSize

Panggil metode ini untuk mendapatkan ukuran pemetaan dari objek pemetaan file.

SIZE_T GetMappingSize() throw();

Tampilkan Nilai

Mengembalikan ukuran pemetaan.

Contoh

Lihat contoh untuk CAtlFileMappingBase::CAtlFileMappingBase.

CAtlFileMappingBase::MapFile

Panggil metode ini untuk membuka atau membuat objek pemetaan file untuk file yang ditentukan.

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

Parameter

hFile
Tangani ke file tempat untuk membuat objek pemetaan. hFile harus valid dan tidak dapat diatur ke INVALID_HANDLE_VALUE.

nMappingSize
Ukuran pemetaan. Jika 0, ukuran maksimum objek pemetaan file sama dengan ukuran file saat ini yang diidentifikasi oleh hFile.

nOffset
Offset file tempat pemetaan akan dimulai. Nilai offset harus kelipatan granularitas alokasi memori sistem.

dwMappingProtection
Perlindungan yang diinginkan untuk tampilan file ketika file dipetakan. Lihat flProtect di CreateFileMapping di Windows SDK.

dwViewDesiredAccess
Menentukan jenis akses ke tampilan file dan, oleh karena itu, perlindungan halaman yang dipetakan oleh file. Lihat dwDesiredAccess di MapViewOfFileEx di Windows SDK.

Tampilkan Nilai

Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.

Keterangan

Setelah objek pemetaan file dibuat, ukuran file tidak boleh melebihi ukuran objek pemetaan file; jika ya, tidak semua konten file akan tersedia untuk dibagikan. Untuk detail selengkapnya, lihat CreateFileMapping dan MapViewOfFileEx di Windows SDK.

Contoh

Lihat contoh untuk CAtlFileMappingBase::CAtlFileMappingBase.

CAtlFileMappingBase::MapSharedMem

Panggil metode ini untuk membuat objek pemetaan file yang mengizinkan akses penuh ke semua proses.

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
Ukuran pemetaan. Jika 0, ukuran maksimum objek pemetaan file sama dengan ukuran objek pemetaan file saat ini yang diidentifikasi oleh szName.

szName
Nama objek pemetaan.

pbAlreadyExisted
Menunjuk ke nilai BOOL yang diatur ke TRUE jika objek pemetaan sudah ada.

lpsa
Penunjuk ke SECURITY_ATTRIBUTES struktur yang menentukan apakah handel yang dikembalikan dapat diwariskan oleh proses anak. Lihat lpAttributes di CreateFileMapping di Windows SDK.

dwMappingProtection
Perlindungan yang diinginkan untuk tampilan file, ketika file dipetakan. Lihat flProtect di CreateFileMapping Windows SDK.

dwViewDesiredAccess
Menentukan jenis akses ke tampilan file dan, oleh karena itu, perlindungan halaman yang dipetakan oleh file. Lihat dwDesiredAccess di MapViewOfFileEx di Windows SDK.

Tampilkan Nilai

Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.

Keterangan

MapShareMem memungkinkan objek pemetaan file yang ada, yang dibuat oleh CreateFileMapping, untuk dibagikan di antara proses.

CAtlFileMappingBase::OpenMapping

Panggil metode ini untuk membuka objek pemetaan file bernama untuk file yang ditentukan.

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

Parameter

szName
Nama objek pemetaan. Jika ada handel terbuka ke objek pemetaan file dengan nama ini dan deskriptor keamanan pada objek pemetaan tidak bertentangan dengan parameter dwViewDesiredAccess , operasi terbuka berhasil.

nMappingSize
Ukuran pemetaan. Jika 0, ukuran maksimum objek pemetaan file sama dengan ukuran objek pemetaan file saat ini yang diidentifikasi oleh szName.

nOffset
Offset file tempat pemetaan akan dimulai. Nilai offset harus kelipatan granularitas alokasi memori sistem.

dwViewDesiredAccess
Menentukan jenis akses ke tampilan file dan, oleh karena itu, perlindungan halaman yang dipetakan oleh file. Lihat dwDesiredAccess di MapViewOfFileEx di Windows SDK.

Tampilkan Nilai

Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.

Keterangan

Dalam build debug, kesalahan pernyataan akan terjadi jika parameter input tidak valid.

CAtlFileMappingBase::operator =

Mengatur objek pemetaan file saat ini ke objek pemetaan file lain.

CAtlFileMappingBase& operator=(CAtlFileMappingBase& orig);

Parameter

orig
Objek pemetaan file saat ini.

Tampilkan Nilai

Mengembalikan referensi ke objek saat ini.

CAtlFileMappingBase::Unmap

Panggil metode ini untuk membatalkan peta objek pemetaan file.

HRESULT Unmap() throw();

Tampilkan Nilai

Mengembalikan S_OK saat berhasil, atau kesalahan HRESULT saat gagal.

Keterangan

Lihat UnmapViewOfFile di Windows SDK untuk detail selengkapnya.

Baca juga

Kelas CAtlFileMapping
Gambaran Umum Kelas