다음을 통해 공유


FltTagFile 함수(fltkernel.h)

FltTagFile 은 파일 또는 디렉터리에 재분석 태그를 설정합니다.

구문

NTSTATUS FLTAPI FltTagFile(
  [in]           PFLT_INSTANCE InitiatingInstance,
  [in]           PFILE_OBJECT  FileObject,
  [in]           ULONG         FileTag,
  [in, optional] GUID          *Guid,
  [in]           PVOID         DataBuffer,
  [in]           USHORT        DataBufferLength
);

매개 변수

[in] InitiatingInstance

이 I/O 요청을 시작한 미니필터 드라이버 instance 대한 불투명 instance 포인터입니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

[in] FileObject

재분석 지점을 설정할 파일 또는 디렉터리에 대한 파일 개체에 대한 포인터입니다. FILE_WRITE_DATA 액세스를 위해 파일 개체를 열어야 합니다. 이 매개 변수는 필수이며 NULL일 수 없습니다.

[in] FileTag

점 태그를 다시 분석합니다. 기존 재분석 태그를 수정하는 경우 이 매개 변수에 지정된 태그는 수정할 재분석 지점의 태그와 일치해야 합니다.

[in, optional] Guid

재분석 지점의 유형을 고유하게 식별하는 GUID입니다. FileTag가 Microsoft 태그가 아닌 경우 이 매개 변수가 필요하며 NULL일 수 없습니다. 기존 재분석 태그를 수정하는 경우 이 매개 변수에 지정된 GUID가 수정할 재분석 지점의 GUID와 일치해야 합니다.

[in] DataBuffer

재분석 지점에 대한 사용자 정의 데이터가 포함된 버퍼에 대한 포인터입니다.

[in] DataBufferLength

DataBuffer가 가리키는 버퍼의 크기(바이트)입니다.

반환 값

FltTagFile 은 STATUS_SUCCESS 또는 다음 중 하나와 같은 적절한 NTSTATUS 값을 반환합니다.

반환 코드 설명
STATUS_INSUFFICIENT_RESOURCES
FltTagFileEx 에서 풀 할당 오류가 발생했습니다. 오류 코드입니다.
STATUS_INVALID_DEVICE_REQUEST
파일 시스템은 재분석 지점을 지원하지 않습니다. 오류 코드입니다.
STATUS_INVALID_PARAMETER
FileTag는 Microsoft 태그가 아니며 GuidNULL이 지정되었습니다. 오류 코드입니다.
STATUS_IO_REPARSE_TAG_MISMATCH
호출자가 지정한 재분석 태그가 수정할 재분석 지점의 태그와 일치하지 않습니다. 오류 코드입니다.
STATUS_REPARSE_ATTRIBUTE_CONFLICT
호출자가 지정한 재분석 GUID가 수정할 재분석 지점의 GUID와 일치하지 않습니다. 오류 코드입니다.

설명

미니필터 드라이버는 재분석 지점을 설정하려면 FSCTL_SET_REPARSE_POINT 대신 FltTagFile을 사용해야 합니다.

모든 파일 시스템에서 재분석 지점을 지원하는 것은 아닙니다. NTFS 파일 시스템에서 지원합니다. FAT 파일 시스템은 그렇지 않습니다. 미니필터 드라이버는 FltQueryVolumeInformation을 호출하고, FsInformation 매개 변수에 FileFsAttributeInformation을 지정하고 , 반환된 FILE_FS_ATTRIBUTE_INFORMATION 구조에서 FILE_SUPPORTS_REPARSE_POINTS 비트 플래그를 검사하여 파일 시스템이 재분석 지점을 지원하는지 여부를 확인할 수 있습니다.

기존 재분석 지점을 제거하려면 FltUntagFile을 호출합니다.

재분석 지점에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 fltkernel.h(Fltkernel.h 포함)
라이브러리 FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

추가 정보

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFileEx

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER