FsRtlCreateSectionForDataScan 함수(ntifs.h)
FsRtlCreateSectionForDataScan 루틴은 섹션 개체를 만듭니다. 이 루틴은 매우 주의해서 사용합니다. (다음 설명 섹션을 참조하세요.)
통사론
NTSTATUS FsRtlCreateSectionForDataScan(
[out] PHANDLE SectionHandle,
[out] PVOID *SectionObject,
[out, optional] PLARGE_INTEGER SectionFileSize,
[in] PFILE_OBJECT FileObject,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PLARGE_INTEGER MaximumSize,
[in] ULONG SectionPageProtection,
[in] ULONG AllocationAttributes,
[in] ULONG Flags
);
매개 변수
[out] SectionHandle
섹션 개체에 대한 불투명 핸들을 수신하는 호출자 할당 변수에 대한 포인터입니다.
[out] SectionObject
섹션 개체에 대한 불투명 포인터를 수신하는 호출자 할당 변수에 대한 포인터입니다.
[out, optional] SectionFileSize
섹션 개체를 만들 때 파일의 크기(바이트)를 수신하는 호출자 할당 변수에 대한 포인터입니다. 이 매개 변수는 선택 사항이며 NULL
[in] FileObject
열려 있는 파일의 파일 개체입니다. 섹션 개체는 지정된 파일에서 지원됩니다. 이 매개 변수는 필수이며 NULL
[in] DesiredAccess
섹션 개체에 대해 원하는 액세스를 다음 ACCESS_MASK 플래그 중 하나 이상으로 지정합니다.
desiredAccess 플래그 |
호출자가 다음을 할 수 있도록 허용 |
---|---|
SECTION_MAP_READ | 섹션의 보기를 읽습니다. |
SECTION_MAP_WRITE | 섹션의 보기를 작성합니다. |
SECTION_QUERY | 섹션 개체에서 섹션에 대한 정보를 쿼리합니다. 드라이버는 이 플래그를 설정해야 합니다. |
SECTION_ALL_ACCESS | 이전 플래그에서 정의한 모든 작업과 STANDARD_RIGHTS_REQUIRED 정의한 작업 (STANDARD_RIGHTS_REQUIRED 대한 자세한 내용은 ACCESS_MASK참조하세요. |
[in, optional] ObjectAttributes
개체 이름 및 기타 특성을 지정하는 OBJECT_ATTRIBUTES 구조체에 대한 포인터입니다.
InitializeObjectAttributes 매크로를 사용하여 이 구조를 초기화합니다.
[in, optional] MaximumSize
이 매개 변수는 나중에 사용하도록 예약되어 있습니다.
[in] SectionPageProtection
섹션의 각 페이지에 배치할 보호를 지정합니다. 다음 값 중 하나를 지정합니다. 이 매개 변수는 필수이며 0일 수 없습니다.
기 | 의미 |
---|---|
PAGE_READONLY | 커밋된 페이지 영역에 대한 읽기 전용 액세스를 사용하도록 설정합니다. 커밋된 지역에 쓰려고 시도하면 액세스 위반이 발생합니다. 시스템에서 읽기 전용 액세스와 실행 액세스를 구분하는 경우 커밋된 지역에서 코드를 실행하려고 하면 액세스 위반이 발생합니다. |
PAGE_READWRITE | 커밋된 페이지 영역에 대한 읽기 및 쓰기 액세스를 모두 사용하도록 설정합니다. |
[in] AllocationAttributes
SEC_XXX 플래그의 비트 마스크는 섹션의 할당 특성을 결정합니다. 다음 값 중 하나 이상을 지정합니다. 이 매개 변수는 필수이며 0일 수 없습니다.
기 | 의미 |
---|---|
SEC_COMMIT | 섹션의 모든 페이지에 대해 메모리 또는 디스크의 페이징 파일에 실제 스토리지를 할당합니다. 기본 설정입니다. 이 플래그는 필수이며 생략할 수 없습니다. |
SEC_FILE | FileObject 매개 변수로 지정된 파일은 매핑된 파일입니다. |
[in] Flags
이 매개 변수는 나중에 사용하도록 예약되어 있습니다.
반환 값
FsRtlCreateSectionForDataScan STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.
반환 코드 | 묘사 |
---|---|
|
FileObject 매개 변수로 지정된 파일의 크기는 0입니다. 오류 코드입니다. |
|
FileObject 매개 변수로 지정된 파일이 잠겨 있습니다. 오류 코드입니다. |
|
FsRtlCreateSectionForDataScan에서 풀 할당 오류가 발생했습니다. 오류 코드입니다. |
|
FileObject 매개 변수로 지정된 파일은 섹션을 지원하지 않습니다. 오류 코드입니다. |
|
SectionPageProtection 매개 변수에 지정된 값이 잘못되었습니다. 오류 코드입니다. |
|
호출자가 AllocationAttributes 매개 변수에 잘못된 값을 지정했습니다. 오류 코드입니다. |
|
호출자에게 DesiredAccess 매개 변수에 지정된 액세스 권한이 있는 섹션 개체를 만드는 데 필요한 권한이 없습니다. 오류 코드입니다. |
발언
매핑된 섹션 및 메모리 뷰를 만드는 방법에 대한 자세한 내용은 섹션 개체 및 뷰참조하세요. 또한 Microsoft Windows SDK에서 CreateFileMapping 루틴에 대한 설명서를 참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 SP4(서비스 팩 4)에 대한 업데이트 롤업 Windows XP SP2(서비스 팩 2)에 대한 필터 관리자 롤업입니다. |
지원되는 최소 서버 | Microsoft Windows Server 2003 SP1 |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL |
<= APC_LEVEL |
참고 항목
ZwCreateSection