다음을 통해 공유


CAtlFileMappingBase 클래스

이 클래스는 메모리 매핑된 파일을 나타냅니다.

Important

이 클래스와 해당 멤버는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다.

구문

class CAtlFileMappingBase

멤버

공용 생성자

속성 설명
CAtlFileMappingBase::CAtlFileMappingBase 생성자입니다.
CAtlFileMappingBase::~CAtlFileMappingBase 소멸자입니다.

공용 메서드

이름 설명
CAtlFileMappingBase::CopyFrom 파일 매핑 개체에서 복사하려면 이 메서드를 호출합니다.
CAtlFileMappingBase::GetData 이 메서드를 호출하여 파일 매핑 개체에서 데이터를 가져옵니다.
CAtlFileMappingBase::GetHandle 파일 핸들을 반환하려면 이 메서드를 호출합니다.
CAtlFileMappingBase::GetMappingSize 파일 매핑 개체에서 매핑 크기를 얻으려면 이 메서드를 호출합니다.
CAtlFileMappingBase::MapFile 파일 매핑 개체를 만들려면 이 메서드를 호출합니다.
CAtlFileMappingBase::MapSharedMem 이 메서드를 호출하여 모든 프로세스에 대한 모든 액세스를 허용하는 파일 매핑 개체를 만듭니다.
CAtlFileMappingBase::OpenMapping 이 메서드를 호출하여 파일 매핑 개체에 대한 핸들을 반환합니다.
CAtlFileMappingBase::Unmap 파일 매핑 개체의 매핑을 해제하려면 이 메서드를 호출합니다.

Public 연산자

속성 설명
CAtlFileMappingBase::operator = 현재 파일 매핑 개체를 다른 파일 매핑 개체로 설정합니다.

설명

파일 매핑은 프로세스의 가상 주소 공간 일부와 파일 내용의 연결입니다. 이 클래스는 프로그램에서 데이터에 쉽게 액세스하고 공유할 수 있도록 하는 파일 매핑 개체를 만드는 메서드를 제공합니다.

자세한 내용은 Windows SDK의 파일 매핑 을 참조하세요.

요구 사항

헤더: atlfile.h

CAtlFileMappingBase::CAtlFileMappingBase

생성자입니다.

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

매개 변수

오리지널
새 개체를 만들기 위해 복사할 원본 파일 매핑 개체입니다.

설명

필요에 따라 기존 개체를 사용하여 새 파일 매핑 개체를 만듭니다. CAtlFileMappingBase::MapFile을 호출하여 특정 파일에 대한 파일 매핑 개체를 열거나 만들어야 합니다.

예시

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

소멸자입니다.

~CAtlFileMappingBase() throw();

설명

클래스에서 할당한 모든 리소스를 해제하고 CAtlFileMappingBase::Unmap 메서드를 호출합니다.

CAtlFileMappingBase::CopyFrom

파일 매핑 개체에서 복사하려면 이 메서드를 호출합니다.

HRESULT CopyFrom(CAtlFileMappingBase& orig) throw();

매개 변수

오리지널
복사할 원본 파일 매핑 개체입니다.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

CAtlFileMappingBase::GetData

이 메서드를 호출하여 파일 매핑 개체에서 데이터를 가져옵니다.

void* GetData() const throw();

Return Value

데이터에 대한 포인터를 반환합니다.

CAtlFileMappingBase::GetHandle

이 메서드를 호출하여 파일 매핑 개체에 대한 핸들을 반환합니다.

HANDLE GetHandle() throw ();

Return Value

파일 매핑 개체에 대한 핸들을 반환합니다.

CAtlFileMappingBase::GetMappingSize

파일 매핑 개체에서 매핑 크기를 얻으려면 이 메서드를 호출합니다.

SIZE_T GetMappingSize() throw();

Return Value

매핑 크기를 반환합니다.

예시

CAtlFileMappingBase::CAtlFileMappingBase에 대한 예제를 참조하세요.

CAtlFileMappingBase::MapFile

이 메서드를 호출하여 지정된 파일에 대한 파일 매핑 개체를 열거나 만듭니다.

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

매개 변수

hFile
매핑 개체를 만들 파일에 대한 핸들입니다. hFile 은 유효해야 하며 INVALID_HANDLE_VALUE 설정할 수 없습니다.

nMappingSize
매핑 크기입니다. 0이면 파일 매핑 개체의 최대 크기가 hFile로 식별된 파일의 현재 크기와 같습니다.

nOffset
매핑을 시작할 파일 오프셋입니다. 오프셋 값은 시스템의 메모리 할당 세분성의 배수여야 합니다.

dwMappingProtection
파일이 매핑될 때 파일 보기에 필요한 보호입니다. Windows SDK의 CreateFileMapping에서 flProtect를 참조하세요.

dwViewDesiredAccess
파일 보기에 대한 액세스 형식을 지정하므로 파일에 의해 매핑된 페이지의 보호를 지정합니다. Windows SDK의 MapViewOfFileEx에서 dwDesiredAccess를 참조하세요.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

파일 매핑 개체를 만든 후에는 파일 크기가 파일 매핑 개체의 크기를 초과하지 않아야 합니다. 이 경우 파일의 모든 내용을 공유할 수 있는 것은 아닙니다. 자세한 내용은 Windows SDK의 CreateFileMappingMapViewOfFileEx 를 참조하세요.

예시

CAtlFileMappingBase::CAtlFileMappingBase에 대한 예제를 참조하세요.

CAtlFileMappingBase::MapSharedMem

이 메서드를 호출하여 모든 프로세스에 대한 모든 액세스를 허용하는 파일 매핑 개체를 만듭니다.

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();

매개 변수

nMappingSize
매핑 크기입니다. 0이면 파일 매핑 개체의 최대 크기가 szName으로 식별된 파일 매핑 개체의 현재 크기와 같습니다.

szName
매핑 개체의 이름입니다.

pbAlreadyExisted
매핑 개체가 이미 있는 경우 TRUE로 설정된 BOOL 값을 가리킵니다.

lpsa
반환된 핸들을 SECURITY_ATTRIBUTES 자식 프로세스에서 상속할 수 있는지 여부를 결정하는 구조체에 대한 포인터입니다. Windows SDK의 CreateFileMapping에서 lpAttributes를 참조하세요.

dwMappingProtection
파일이 매핑될 때 파일 보기에 필요한 보호입니다. Windows SDK에서 CreateFileMapping flProtect를 참조하세요.

dwViewDesiredAccess
파일 보기에 대한 액세스 형식을 지정하므로 파일에 의해 매핑된 페이지의 보호를 지정합니다. Windows SDK의 MapViewOfFileEx에서 dwDesiredAccess를 참조하세요.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

MapShareMem를 사용하면 CreateFileMapping에서 만든 기존 파일 매핑 개체를 프로세스 간에 공유할 수 있습니다.

CAtlFileMappingBase::OpenMapping

지정된 파일에 대한 명명된 파일 매핑 개체를 열려면 이 메서드를 호출합니다.

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

매개 변수

szName
매핑 개체의 이름입니다. 이 이름으로 파일 매핑 개체에 대한 열린 핸들이 있고 매핑 개체의 보안 설명자가 dwViewDesiredAccess 매개 변수와 충돌하지 않으면 열기 작업이 성공합니다.

nMappingSize
매핑 크기입니다. 0이면 파일 매핑 개체의 최대 크기가 szName으로 식별된 파일 매핑 개체의 현재 크기와 같습니다.

nOffset
매핑을 시작할 파일 오프셋입니다. 오프셋 값은 시스템의 메모리 할당 세분성의 배수여야 합니다.

dwViewDesiredAccess
파일 보기에 대한 액세스 형식을 지정하므로 파일에 의해 매핑된 페이지의 보호를 지정합니다. Windows SDK의 MapViewOfFileEx에서 dwDesiredAccess를 참조하세요.

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

디버그 빌드에서 입력 매개 변수가 잘못된 경우 어설션 오류가 발생합니다.

CAtlFileMappingBase::operator =

현재 파일 매핑 개체를 다른 파일 매핑 개체로 설정합니다.

CAtlFileMappingBase& operator=(CAtlFileMappingBase& orig);

매개 변수

오리지널
현재 파일 매핑 개체입니다.

Return Value

현재 개체에 대한 참조를 반환합니다.

CAtlFileMappingBase::Unmap

파일 매핑 개체의 매핑을 해제하려면 이 메서드를 호출합니다.

HRESULT Unmap() throw();

Return Value

성공 시 S_OK를 반환하거나 실패 시 HRESULT 오류를 반환합니다.

설명

자세한 내용은 Windows SDK의 UnmapViewOfFile을 참조하세요.

참고 항목

CAtlFileMapping 클래스
클래스 개요