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 |
---|---|
|
FltTagFileEx ha rilevato un errore di allocazione del pool. Si tratta di un codice di errore. |
|
Il file system non supporta reparse points. Si tratta di un codice di errore. |
|
FileTag non è un tag Microsoft ed è stato specificato NULL per Guid. Si tratta di un codice di errore. |
|
Il tag reparse specificato dal chiamante non corrisponde al tag del reparse point da modificare. Si tratta di un codice di errore. |
|
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 |