Funzione FltTagFileEx (fltkernel.h)
FltTagFileEx imposta un punto reparse in un file o in una directory.
Sintassi
NTSTATUS FLTAPI FltTagFileEx(
PFLT_INSTANCE InitiatingInstance,
PFILE_OBJECT FileObject,
ULONG FileTag,
GUID *Guid,
PVOID DataBuffer,
USHORT DataBufferLength,
ULONG ExistingFileTag,
GUID *ExistingGuid,
ULONG Flags
);
Parametri
InitiatingInstance
Puntatore opaco all'istanza del driver minifilter che ha avviato questa richiesta di I/O. Questo parametro è obbligatorio e non può essere NULL.
FileObject
Puntatore all'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.
FileTag
Tag del punto di ripristino. Può essere uno dei valori IO_REPARSE_TAG_XXX definiti in ntifs.h.
Guid
GUID che identifica in modo univoco il punto di correzione. Se FileTag è un tag non 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.
DataBuffer
Puntatore a un buffer che contiene dati definiti dall'utente per il reparse point.
DataBufferLength
Dimensioni, in byte, del buffer a cui punta DataBuffer .
ExistingFileTag
Tag esistente nel file se il tag deve essere sostituito. Questo parametro deve essere impostato su zero per impostare un tag reparse in un file che non ne ha già uno.
ExistingGuid
GUID che identifica in modo univoco un reparse point esistente. Se ExistingFileTag è un tag non Microsoft e non è zero, questo parametro non deve essere NULL.
Flags
Specifica i flag REPARSE_DATA_BUFFER_EX_XXX definiti in ntifs.h.
Valore restituito
Questa funzione restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio:
Codice restituito | Descrizione |
---|---|
STATUS_IO_REPARSE_TAG_MISMATCH | Il valore del tag specificato in ExistingFileTag non corrisponde a quello del valore del tag esistente. |
STATUS_REPARSE_ATTRIBUTE_CONFLICT | Per un reparse point esistente con un tag non Microsoft, ExistingFileTag corrisponde al valore del tag esistente, ma il Guid non corrisponde al GUID esistente. |
Commenti
I driver minifilter devono usare FltTagFileEx anziché FSCTL_SET_REPARSE_POINT_EX per impostare un reparse point.
Non tutti i file system supportano reparse points; Ad esempio, i file system NTFS e ReFS li supportano, ma il file system FAT non lo supporta. I driver minifilter possono determinare se un file system supporta i reparse point 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 |
---|---|
Intestazione | fltkernel.h |