Funzione FltTagFile (fltkernel.h)

FltTagFile imposta un tag reparse in un file o in una directory.

Sintassi

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

Parametri

[in] InitiatingInstance

Puntatore dell'istanza opaca per l'istanza del driver minifilter che ha avviato questa richiesta di I/O. Questo parametro è obbligatorio e non può essere NULL.

[in] FileObject

Puntatore a un oggetto file per il file o la directory in cui impostare un reparse point. L'oggetto file deve essere aperto per l'accesso FILE_WRITE_DATA. Questo parametro è obbligatorio e non può essere NULL.

[in] FileTag

Tag del punto di ripristino. Se viene modificato un tag reparse esistente, il tag specificato in questo parametro deve corrispondere al tag del reparse point da modificare.

[in, optional] Guid

GUID che identifica in modo univoco il tipo di reparse point. Se FileTag non è un tag Microsoft, questo parametro è obbligatorio e non può essere NULL. Se viene modificato un tag reparse esistente, il GUID specificato in questo parametro deve corrispondere al GUID del reparse point da modificare.

[in] DataBuffer

Puntatore a un buffer che contiene dati definiti dall'utente per il reparse point.

[in] DataBufferLength

Dimensioni, in byte, del buffer a cui punta DataBuffer .

Valore restituito

FltTagFile restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_INSUFFICIENT_RESOURCES
FltTagFileEx ha rilevato un errore di allocazione del pool. Si tratta di un codice di errore.
STATUS_INVALID_DEVICE_REQUEST
Il file system non supporta reparse points. Si tratta di un codice di errore.
STATUS_INVALID_PARAMETER
FileTag non è un tag Microsoft ed è stato specificato NULL per Guid. Si tratta di un codice di errore.
STATUS_IO_REPARSE_TAG_MISMATCH
Il tag reparse specificato dal chiamante non corrisponde al tag del reparse point da modificare. Si tratta di un codice di errore.
STATUS_REPARSE_ATTRIBUTE_CONFLICT
Il GUID reparse specificato dal chiamante non corrisponde al GUID del punto di correzione da modificare. Si tratta di un codice di errore.

Commenti

I driver minifilter devono usare FltTagFile anziché FSCTL_SET_REPARSE_POINT per impostare un reparse point.

Non tutti i file system supportano reparse points. Il file system NTFS li supporta; il file system FAT non lo fa. I driver minifilter possono determinare se un file system supporta reparse points chiamando FltQueryVolumeInformation, specificando FileFsAttributeInformation per il parametro FsInformation ed esaminando il flag di bit FILE_SUPPORTS_REPARSE_POINTS nella struttura FILE_FS_ATTRIBUTE_INFORMATION restituita.

Per rimuovere un reparse point esistente, chiamare FltUntagFile.

Per altre informazioni sui reparse points, vedere la documentazione di Microsoft Windows SDK.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (include Fltkernel.h)
Libreria FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Vedi anche

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