Fungsi FltTagFileEx (fltkernel.h)

FltTagFileEx menetapkan titik pemilah ulang pada file atau direktori.

Sintaks

NTSTATUS FLTAPI FltTagFileEx(
  PFLT_INSTANCE InitiatingInstance,
  PFILE_OBJECT  FileObject,
  ULONG         FileTag,
  GUID          *Guid,
  PVOID         DataBuffer,
  USHORT        DataBufferLength,
  ULONG         ExistingFileTag,
  GUID          *ExistingGuid,
  ULONG         Flags
);

Parameter

InitiatingInstance

Pointer buram ke instans driver minifilter yang memulai permintaan I/O ini. Parameter ini diperlukan dan tidak boleh NULL.

FileObject

Arahkan ke objek file untuk file atau direktori tempat mengatur titik reparse. Objek file harus dibuka untuk akses FILE_WRITE_DATA. Parameter ini diperlukan dan tidak boleh NULL.

FileTag

Tag titik pemilah ulang. Bisa menjadi salah satu nilai IO_REPARSE_TAG_XXX yang ditentukan dalam ntifs.h.

Guid

GUID yang secara unik mengidentifikasi titik pemilah ulang. Jika FileTag adalah tag non-Microsoft, parameter ini diperlukan dan tidak boleh NULL. Jika tag reparse yang ada sedang dimodifikasi, GUID yang ditentukan dalam parameter ini harus cocok dengan GUID dari titik reparse yang akan dimodifikasi.

DataBuffer

Penunjuk ke buffer yang berisi data yang ditentukan pengguna untuk titik pemilah ulang.

DataBufferLength

Ukuran, dalam byte, dari buffer tempat DataBuffer menunjuk.

ExistingFileTag

Tag yang ada pada file jika tag harus diganti. Parameter ini harus diatur ke nol untuk mengatur tag reparse pada file yang belum memilikinya.

ExistingGuid

GUID yang secara unik mengidentifikasi titik reparse yang ada. Jika ExistingFileTag adalah tag non-Microsoft dan bukan nol, parameter ini tidak boleh NULL.

Flags

Menentukan bendera REPARSE_DATA_BUFFER_EX_XXX yang ditentukan dalam ntifs.h.

Nilai kembali

Fungsi ini mengembalikan STATUS_SUCCESS atau nilai NTSTATUS yang sesuai seperti berikut ini:

Kode Pengembalian Deskripsi
STATUS_IO_REPARSE_TAG_MISMATCH Nilai tag yang ditentukan dalam ExistingFileTag tidak cocok dengan nilai tag yang ada.
STATUS_REPARSE_ATTRIBUTE_CONFLICT Untuk titik reparse yang ada dengan tag non-Microsoft, ExistingFileTag cocok dengan nilai tag yang ada, tetapi Guid tidak cocok dengan Guid yang ada.

Keterangan

Driver minifilter harus menggunakan FltTagFileEx alih-alih FSCTL_SET_REPARSE_POINT_EX untuk mengatur titik pemilah ulang.

Tidak semua sistem file mendukung titik reparse; misalnya, sistem file NTFS dan ReFS mendukungnya, tetapi sistem file FAT tidak. Driver minifilter dapat menentukan apakah sistem file mendukung titik pemisahan ulang dengan memanggil FltQueryVolumeInformation, menentukan FileFsAttributeInformation untuk parameter FsInformation , dan memeriksa bendera bit FILE_SUPPORTS_REPARSE_POINTS dalam struktur FILE_FS_ATTRIBUTE_INFORMATION yang dikembalikan.

Untuk menghapus titik pemilah ulang yang ada, panggil FltUntagFile.

Untuk informasi selengkapnya tentang titik pemilah ulang, lihat dokumentasi Microsoft Windows SDK.

Persyaratan

Persyaratan Nilai
Header fltkernel.h

Lihat juga

FILE_FS_ATTRIBUTE_INFORMATION

FLT_TAG_DATA_BUFFER

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

FltFsControlFile

FltQueryVolumeInformation

FltTagFile

FltUntagFile

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER