MmDoesFileHaveUserWritableReferences 함수(ntifs.h)
MmDoesFileHaveUserWritableReferences 함수는 트랜잭션과 연결된 파일에 사용자 매핑된 섹션이 있는지 여부를 결정합니다.
통사론
ULONG MmDoesFileHaveUserWritableReferences(
[in] PSECTION_OBJECT_POINTERS SectionPointer
);
매개 변수
[in] SectionPointer
파일 개체의 섹션 개체 포인터를 포함하는 SECTION_OBJECT_POINTERS 구조체에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL 수 없습니다.
반환 값
MmDoesFileHaveUserWritableReferences 다음 값 중 하나를 반환합니다.
반환 값 | 의미 |
---|---|
0 | 파일 개체에 사용자 매핑 섹션이 없습니다. 트랜잭션을 계속 진행해도 안전합니다. |
1 | 파일 개체에는 사용자 매핑 섹션이 있습니다. 트랜잭션을 롤백해야 합니다. |
발언
트랜잭션 파일 시스템의 경우 이 함수를 사용하여 지정된 트랜잭션이 변경할 수 있는 파일 개체를 참조하는지 확인할 수 있습니다. 이 경우 원자성 보장할 수 없으므로 트랜잭션을 롤백해야 합니다.
MmDoesFileHaveUserWritableReferences호출하기 전에 트랜잭션 파일 시스템은 쓰기 액세스를 지정하는 파일 개체 만들기를 확인하고 가로채야 합니다. 특히 트랜잭션을 시작하기 전에 트랜잭션 파일 시스템은 트랜잭션에 지정된 파일에 대해 현재 존재하는 쓰기 가능한 파일 개체가 없는지 확인해야 합니다. 트랜잭션이 진행되는 동안 트랜잭션 파일 시스템은 트랜잭션 파일에 대한 쓰기 액세스 권한이 있는 파일 개체를 만드는 요청에 실패해야 합니다.
이 함수는 파일 개체에 대한 모든 파일 핸들 및 섹션 핸들이 닫힌 경우에도 파일 개체에 대한 쓰기 가능한 뷰가 있는지 감지하는 데 사용할 수 있습니다.
트랜잭션에 대한 자세한 내용은 커널 트랜잭션 관리자 참조하세요.
파일 개체에 대한 자세한 내용은 FILE_OBJECT참조하세요.
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
대상 플랫폼 | 보편적 |
헤더 | ntifs.h(Fltkernel.h, Ntifs.h 포함) |
라이브러리 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
DDI 규정 준수 규칙 | HwStorPortProhibitedDDIs(storport) |