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의 CreateFileMapping 및 MapViewOfFileEx 를 참조하세요.
예시
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을 참조하세요.