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 값을 반환합니다.
반환 코드 | 설명 |
---|---|
|
FltTagFileEx 에서 풀 할당 오류가 발생했습니다. 오류 코드입니다. |
|
파일 시스템은 재분석 지점을 지원하지 않습니다. 오류 코드입니다. |
|
FileTag는 Microsoft 태그가 아니며 Guid에 NULL이 지정되었습니다. 오류 코드입니다. |
|
호출자가 지정한 재분석 태그가 수정할 재분석 지점의 태그와 일치하지 않습니다. 오류 코드입니다. |
|
호출자가 지정한 재분석 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 |