FsRtlChangeBackingFileObject 함수(ntifs.h)

FsRtlChangeBackingFileObject 루틴은 현재 파일 개체를 새 파일 개체로 바꿉니다.

구문

NTSTATUS FsRtlChangeBackingFileObject(
  PFILE_OBJECT              CurrentFileObject,
  PFILE_OBJECT              NewFileObject,
  FSRTL_CHANGE_BACKING_TYPE ChangeBackingType,
  ULONG                     Flags
);

매개 변수

CurrentFileObject

[in, optional] 현재 파일 개체입니다. CurrentFileObjectNULL이면 운영 체제의 현재 파일 개체가 NewFileObject로 설정됩니다. NULL이 아닌 경우 OS의 현재 지원 파일 개체가 이 값과 같은 경우에만 백업 파일 개체가 NewFileObject 로 변경됩니다. 이 파일 개체가 스트림에 속하지 않으면 작업이 실패합니다.

NewFileObject

[in] OS가 내부적으로 참조하고 저장할 새 파일 개체입니다.

ChangeBackingType

[in]NewFileObject를 참조하도록 변경해야 하는 내부 구조를 나타내는 FSRTL_CHANGE_BACKING_TYPE 열거형 값입니다.

Flags

[in] 나중에 사용할 수 있습니다.

반환 값

FsRtlChangeBackingFileObject 루틴은 작업이 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 FsRtlChangeBackingFileObject 가 적절한 오류 코드를 반환합니다. 다음 표에는 FsRtlChangeBackingFileObject 에서 반환할 수 있는 오류 코드가 포함되어 있습니다.

반환 코드 설명
STATUS_INVALID_PARAMETER_2 NewFileObject에서 지정하는 파일 개체가 CurrentFileObject와 동일한 스트림을 나타내지 않으므로 변경 작업이 실패했습니다.
STATUS_INVALID_PARAMETER_3 호출자가 ChangeBackingType에서 잘못된 백업 형식을 지정했기 때문에 변경 작업이 실패했습니다.
STATUS_INVALID_PARAMETER_4 호출자가 Flags에서 잘못된 값을 지정했기 때문에 변경 작업이 실패 했습니다.
STATUS_NOT_SUPPORTED 호출자가 파일 개체의 후속 교환을 허용하지 않는 방식으로 파일 개체를 얻었기 때문에 변경 작업이 실패했습니다. 예를 들어 호출자가 CcGetFileObjectFromSectionPtrs를 호출하여 파일 개체를 가져온 경우 파일 개체를 교환하는 것은 안전하지 않습니다.

설명

FsRtlChangeBackingFileObject 루틴은 다음 중 하나에 대한 파일 개체를 변경합니다.

  • 스트림에 대한 메모리 관리자의 이미지 제어 영역 중 하나

  • 스트림에 대한 메모리 관리자의 데이터 제어 영역

  • 스트림에 대한 캐시 관리자의 공유 캐시 맵

FsRtlChangeBackingFileObject 루틴은 동기식이 아닙니다. 파일 개체 변경 요청을 처리하고 즉시 반환합니다. 캐시 관리자와 메모리 관리자는 파일 개체의 변경 사항을 동기화하고 이전 파일 개체와 연결된 모든 불완전한 작업이 완료될 때까지 이전 파일 개체를 해제하지 않습니다. FsRtlChangeBackingFileObject에서 STATUS_SUCCESS 반환 상태 운영 체제가 파일 개체를 이미 변경했음을 의미하지는 않습니다.

그러나 FsRtlChangeBackingFileObject 가 성공적으로 실행되면 운영 체제는 이후의 모든 작업을 새 파일 개체와 연결합니다.

둘 이상의 지원 형식에 대한 파일 개체를 변경하려면 호출자가 FsRtlChangeBackingFileObject를 여러 번 호출해야 하며 각 백업 형식이 변경됩니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 FsRtlChangeBackingFileObject 루틴은 Windows Vista부터 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 ntifs.h(Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 PowerIrpDDis(wdm)

추가 정보

FSRTL_CHANGE_BACKING_TYPE