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 a istanze opache 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 punto reparse 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 punto reparse da modificare.
[in] DataBuffer
Puntatore a un buffer che contiene i 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 |
---|---|
|
FltTagFileEx rilevato un errore di allocazione del pool. Si tratta di un codice di errore. |
|
Il file system non supporta i reparse points. Si tratta di un codice di errore. |
|
FileTag non è un tag Microsoft e NULL è stato specificato per Guid. Si tratta di un codice di errore. |
|
Il tag reparse specificato dal chiamante non corrisponde al tag del punto reparse da modificare. Si tratta di un codice di errore. |
|
Il GUID reparse specificato dal chiamante non corrisponde al GUID del punto reparse da modificare. Si tratta di un codice di errore. |
Osservazioni
I driver minifiltro devono usare FltTagFile invece di 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 minifiltro possono determinare se un file system supporta i reparse points chiamando FltQueryVolumeInformation, specificando FileFsAttributeInformation per il parametro FsInformation e esaminando il flag di bit FILE_SUPPORTS_REPARSE_POINTS nella struttura FILE_FS_ATTRIBUTE_INFORMATION restituita.
Per rimuovere un punto reparse esistente, chiamare FltUntagFile.
Per altre informazioni sui reparse points, vedere la documentazione di Microsoft Windows SDK.
Fabbisogno
Requisito | Valore |
---|---|
piattaforma di destinazione | Universale |
intestazione | fltkernel.h (include Fltkernel.h) |
libreria | FltMgr.lib |
dll | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |