CreateFileMapping 분석
HANDLE CreateFileMapping(HANDLE hFile,
LPSECURITY_ATTRIBUTES lpAttributes,
DWORD flProtect,
DWORD dwMaximumSizeHigh,
DWORD dwMaximumSizeLow,
LPCTSTR lpName);
매개 변수
hFile:
[in] 매핑할 파일의 핸들은CreateFile 함수에서 반환됩니다.파일을 여는 액세스 권한은 flProtect에서 지정한 보호 속성과 호환되어야 합니다.파일을 독점적으로 여는 것을 추천합니다. 비록 이것은 반드시 필요한 것은 아니지만.hFile이 INVALID인 경우HANDLE_VALUE, 호출 프로세스는 매개 변수 dwMaximumSizeHigh와 매개 변수 dwMaximumSizeLow를 통해 매핑되는 크기를 지정해야 합니다.이 경우 함수 CreateFileMapping은 디스크의 이름이 지정된 파일 대신 시스템 페이지에서 지원하는 크기의 파일 매핑 대상을 만듭니다.파일 맵 대상은 복사본을 공유하고 계승할 수 있습니다.파일 맵 대상의 페이지의 초기 내용은 0입니다.
lpAttributes
[in] SECURITYATTRIBUTES 구조의 바늘은 이 함수가 되돌아오는 핸들이 프로세스에 계승될 수 있는지 여부를 가리킨다.lpattributes가 NULL이면 핸들을 상속할 수 없습니다. (lpattributes는 보통 NULL입니다.)SECURITY_ATTRIBUTES 구조의 lpSecurityDescriptor 구성원이 새 파일 매핑 대상에 대한 보안 설명을 지정했습니다.lpattributes가 NULL이면 파일 매핑 객체에 대한 기본 보안 설명이 제공됩니다.
flProtect
[in] 파일이 비추면 보기의 보호 속성입니다.이 매개변수는 다음 중 하나일 수 있습니다.
보호 속성
속뜻
PAGE_READONLY
파일에서 객체를 매핑할 때 파일의 데이터를 읽을 수 있습니다.GENERIC 이(가) CreateFile 함수에 전달되어야 합니다.READ에서 사용
PAGE_READWRITE
파일을 매핑할 때 파일의 데이터를 읽거나 파일에 쓸 수 있습니다.CreateFile 함수에서 GENERIC 를 전달해야 합니다.READ 및 GENERICWRITE 사용
PAGE_WRITECOPY
파일에서 객체를 매핑할 때 파일의 데이터를 읽을 수 있습니다.데이터를 쓸 때 페이지의 개인 복사본을 만들 것입니다. (쓸 때 복사 메커니즘을 사용합니다.)GENERIC 이(가) CreateFile 함수에 전달되어야 합니다.READ 또는 GENERIC READ or GENERIC WRITE에서 사용
PAGE_EXECUTE_READ
파일 맵 대상에 대한 맵을 완성할 때 파일의 데이터를 읽을 수도 있고 코드를 실행할 수도 있습니다.CreateFile을 호출할 때 GENERICREAD 및 GENERICEXECUTE
PAGE_EXECUTE_READWRITE
파일 맵 대상에 대한 맵을 완성할 때 파일의 데이터를 읽고 파일에 쓸 수 있으며 코드를 실행할 수 있습니다.CreateFile을 호출할 때 GENERICREAD、GENERIC_WRITE 및 GENERICEXECUTE
응용 프로그램은 다음 단락의 속성을flProtect나 조작부호와 함께 사용하도록 지정할 수 있습니다. '단락' 은 메모리 맵의 또 다른 이름일 뿐입니다.메모리 맵 데이터 파일을 만들 때, 이 로고 중 하나를 설정할 수 없습니다.CreateFileMapping 함수는 이러한 플래그를 무시합니다.
세그먼트 보호 속성
속뜻
SEC_COMMIT
기본값입니다.메모리나 페이지 파일 또는 디스크의 파일에서 섹션의 모든 페이지에 물리 메모리를 분배한다.맵 데이터 파일을 사용할 때 이 속성을 사용할 수 없습니다
SEC_IMAGE
이 속성은 매핑된 파일이 마이그레이션 실행 가능(PE) 파일 이미지임을 알려줍니다.시스템이 이 파일을 프로세스의 주소 공간에 비추었을 때, 파일 이미지의 각 페이지에 어떤 보호 속성을 부여할지 확인하기 위해 파일의 내용을 보아야 한다
SEC_NOCACHE
파일의 메모리 맵 페이지를 알림 캐시에 넣지 않았음을 알려 줍니다.따라서 이 파일에 데이터를 쓸 때 시스템은 디스크의 파일 데이터를 더욱 자주 업데이트해야 한다.이 로고와 PAGENOCACHE 보호 속성과 마찬가지로 장치 드라이버 개발자가 사용할 수 있으며 응용 프로그램은 일반적으로 사용하지 않습니다
SEC_RESERVE
섹션의 모든 주소 공간 보존하기;맵 데이터 파일을 사용할 때 이 속성을 사용할 수 없습니다
dwMaximumSizeHigh
[in] 파일 매핑 대상size(64비트)의 높이 32비트;Windows에서 지원하는 최대 파일 크기는 64비트 정수로 표시할 수 있기 때문에 32비트 값을 두 개 사용해야 합니다. 4GB 이하의 파일은 dwMaximumSizeHigh가 0입니다.
dwMaximumSizeLow
[in] 파일 매핑 대상size(64비트)의 32비트 낮음;이 매개 변수와 dwMaximumSizeHigh가 모두 0이면, 파일 맵 대상의 최대 크기는 hFile에서 지정한 파일의 크기입니다.크기가 0인 파일을 매핑하려는 시도가 실패하고 오류 코드인 ERROR 를 반환합니다.FILE_INVALID.프로그램은 파일 크기가 0인지 확인하고 크기가 0인 파일을 비추는 것을 거부해야 합니다.
lpName
[in] 매핑 객체를 가리키는 0으로 끝나는 문자열.lpName이 존재하고 이름이 붙은 파일 맵 대상과 일치하면 함수는flProtect가 지정한 접근 권한을 요청합니다.lpName이 NULL이면 이름이 없는 매핑 객체가 작성됩니다.lpName이 존재하고 이름이 지정된 이벤트, 신호량, 상호 배타적 객체, 대기 타이머 또는 작업 객체와 일치하면 함수가 실패하고 GetLastError 함수가 ERROR 로 반환됩니다.INVALID_HANDLE.이런 원인은 이 내부 핵 대상들이 같은 명명 공간을 공유하기 때문이다.
반환값
함수 호출이 성공하면 파일 맵 대상의 핸들을 되돌려줍니다.객체가 함수를 호출하기 전에 이미 존재하는 경우 함수는 이미 존재하는 객체 핸들을 반환합니다(size는 이미 존재하는 객체 size 기준). GetLastError는 ERRORALREADY_EXISTS. 함수가 실패하면 NULL을 반환합니다.GetLastError를 호출하여 오류 코드를 가져올 수 있습니다.
주의
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
CreateFileMapping 분석비록 이것은 반드시 필요한 것은 아니지만.hFile이 INVALID인 경우HANDLE_VALUE, 호출 프로세스는 매개 변수 dwMaximumSizeHigh와 매개 변수 dwMaximumSizeLow를 통해 매핑되는...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.