Fungsi FltTagFile (fltkernel.h)

FltTagFile menetapkan tag reparse pada file atau direktori.

Sintaks

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

Parameter

[in] InitiatingInstance

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

[in] FileObject

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

[in] FileTag

Pilah ulang tag titik. Jika tag reparse yang ada sedang dimodifikasi, tag yang ditentukan dalam parameter ini harus cocok dengan tag titik reparse yang akan dimodifikasi.

[in, optional] Guid

GUID yang secara unik mengidentifikasi jenis titik pemisahan ulang. Jika FileTag bukan tag 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 pemisahan ulang yang akan dimodifikasi.

[in] DataBuffer

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

[in] DataBufferLength

Ukuran, dalam byte, dari buffer yang dirujuk Oleh DataBuffer .

Nilai kembali

FltTagFile mengembalikan STATUS_SUCCESS atau nilai NTSTATUS yang sesuai seperti salah satu hal berikut ini:

Menampilkan kode Deskripsi
STATUS_INSUFFICIENT_RESOURCES
FltTagFileEx mengalami kegagalan alokasi kumpulan. Ini adalah kode kesalahan.
STATUS_INVALID_DEVICE_REQUEST
Sistem file tidak mendukung titik pemilah ulang. Ini adalah kode kesalahan.
STATUS_INVALID_PARAMETER
FileTag bukan tag Microsoft, dan NULL ditentukan untuk Guid. Ini adalah kode kesalahan.
STATUS_IO_REPARSE_TAG_MISMATCH
Tag reparse yang ditentukan oleh pemanggil tidak cocok dengan tag titik reparse yang akan dimodifikasi. Ini adalah kode kesalahan.
STATUS_REPARSE_ATTRIBUTE_CONFLICT
GUID reparse yang ditentukan oleh pemanggil tidak cocok dengan GUID titik pemisahan ulang yang akan dimodifikasi. Ini adalah kode kesalahan.

Keterangan

Driver minifilter harus menggunakan FltTagFile alih-alih FSCTL_SET_REPARSE_POINT untuk mengatur titik pemilah ulang.

Tidak semua sistem file mendukung titik pemilah ulang. Sistem file NTFS mendukungnya; 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 pemisahan ulang yang ada, panggil FltUntagFile.

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

Persyaratan

Persyaratan Nilai
Target Platform Universal
Header fltkernel.h (termasuk Fltkernel.h)
Pustaka FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Lihat juga

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