Fonction FltTagFile (fltkernel.h)
FltTagFile définit une balise d’analyse sur un fichier ou un répertoire.
Syntaxe
NTSTATUS FLTAPI FltTagFile(
[in] PFLT_INSTANCE InitiatingInstance,
[in] PFILE_OBJECT FileObject,
[in] ULONG FileTag,
[in, optional] GUID *Guid,
[in] PVOID DataBuffer,
[in] USHORT DataBufferLength
);
Paramètres
[in] InitiatingInstance
Pointeur de instance opaque pour le pilote minifilter instance qui a lancé cette demande d’E/S. Ce paramètre est obligatoire et ne peut pas être NULL.
[in] FileObject
Pointeur vers un objet fichier pour le fichier ou le répertoire sur lequel définir un point d’analyse. L’objet file doit être ouvert pour un accès FILE_WRITE_DATA. Ce paramètre est obligatoire et ne peut pas être NULL.
[in] FileTag
Balise de point d’analyse. Si une balise d’analyse existante est en cours de modification, la balise spécifiée dans ce paramètre doit correspondre à la balise du point d’analyse à modifier.
[in, optional] Guid
GUID qui identifie de manière unique le type de point d’analyse. Si FileTag n’est pas une balise Microsoft, ce paramètre est obligatoire et ne peut pas être NULL. Si une balise d’analyse existante est en cours de modification, le GUID spécifié dans ce paramètre doit correspondre au GUID du point d’analyse à modifier.
[in] DataBuffer
Pointeur vers une mémoire tampon qui contient des données définies par l’utilisateur pour le point d’analyse.
[in] DataBufferLength
Taille, en octets, de la mémoire tampon vers laquelle Pointe DataBuffer .
Valeur retournée
FltTagFile retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, telle que l’une des valeurs suivantes :
Code de retour | Description |
---|---|
|
FltTagFileEx a rencontré un échec d’allocation de pool. Il s’agit d’un code d’erreur. |
|
Le système de fichiers ne prend pas en charge les points d’analyse. Il s’agit d’un code d’erreur. |
|
FileTag n’est pas une balise Microsoft, et NULL a été spécifié pour GUID. Il s’agit d’un code d’erreur. |
|
La balise d’analyse spécifiée par l’appelant ne correspondait pas à la balise du point d’analyse à modifier. Il s’agit d’un code d’erreur. |
|
Le GUID d’analyse spécifié par l’appelant ne correspondait pas au GUID du point d’analyse à modifier. Il s’agit d’un code d’erreur. |
Remarques
Les pilotes Minifilter doivent utiliser FltTagFile au lieu de FSCTL_SET_REPARSE_POINT pour définir un point d’analyse.
Tous les systèmes de fichiers ne prennent pas en charge les points d’analyse. Le système de fichiers NTFS les prend en charge ; le système de fichiers FAT ne le fait pas. Les pilotes Minifilter peuvent déterminer si un système de fichiers prend en charge les points d’analyse en appelant FltQueryVolumeInformation, en spécifiant FileFsAttributeInformation pour le paramètre FsInformation et en examinant l’indicateur de bits FILE_SUPPORTS_REPARSE_POINTS dans la structure FILE_FS_ATTRIBUTE_INFORMATION retournée.
Pour supprimer un point d’analyse existant, appelez FltUntagFile.
Pour plus d’informations sur les points d’analyse, consultez la documentation Microsoft Windows SDK.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | fltkernel.h (inclure Fltkernel.h) |
Bibliothèque | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |