Condividi tramite


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

Vedi anche

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