다음을 통해 공유


MmDoesFileHaveUserWritableReferences 함수(ntifs.h)

MmDoesFileHaveUserWritableReferences 함수는 파일 개체에 대한 쓰기 가능한 참조 수를 반환합니다.

구문

ULONG MmDoesFileHaveUserWritableReferences(
  [in] PSECTION_OBJECT_POINTERS SectionPointer
);

매개 변수

[in] SectionPointer

파일 개체의 섹션 개체 포인터를 포함하는 SECTION_OBJECT_POINTERS 구조체에 대한 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

반환 값

MmDoesFileHaveUserWritableReferencesSectionPointer 매개 변수와 연결된 파일 개체에 대한 쓰기 가능한 참조 수를 반환합니다.

설명

MmDoesFileHaveUserWritableReferencesSectionPointer 매개 변수와 연결된 파일 개체에 대한 쓰기 가능한 참조 수를 반환합니다. 이 반환 값은 다음 숫자의 합계입니다.

  • 연결된 파일 개체에 대한 쓰기 가능한 파일 핸들 수입니다.

  • 연결된 파일 개체의 쓰기 가능한 섹션 수입니다.

  • 연결된 파일 개체의 쓰기 가능한 뷰 수입니다.

  • 연결된 파일 개체의 매핑 지역인 미해결 MDL의 수입니다.

트랜잭션 파일 시스템의 경우 이 함수를 사용하여 지정된 트랜잭션이 변경할 수 있는 파일 개체를 참조하는지 확인할 수 있습니다. 그렇다면 원자성을 보장할 수 없으므로 트랜잭션을 롤백해야 합니다.

MmDoesFileHaveUserWritableReferences를 호출하기 전에 트랜잭션 파일 시스템은 쓰기 액세스를 지정하는 파일 개체 만들기를 검사 가로채야 합니다. 특히 트랜잭션을 시작하기 전에 트랜잭션 파일 시스템은 트랜잭션에 지정된 파일에 대해 현재 쓰기 가능한 파일 개체가 없는지 확인해야 합니다. 트랜잭션이 진행되는 동안 트랜잭션 파일 시스템은 트랜잭션된 파일에 대한 쓰기 액세스 권한이 있는 파일 개체를 만드는 요청에 실패해야 합니다.

참고

이 함수를 사용하여 파일 개체에 대한 모든 파일 핸들 및 섹션 핸들이 닫힌 경우에도 파일 개체에 대한 쓰기 가능한 뷰가 있는지 검색할 수 있습니다.

트랜잭션에 대한 자세한 내용은 커널 트랜잭션 관리자를 참조하세요.

파일 개체에 대한 자세한 내용은 FILE_OBJECT 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
대상 플랫폼 유니버설
헤더 ntifs.h(Fltkernel.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport)