Partager via


structure FSRTL_PER_FILEOBJECT_CONTEXT (ntifs.h)

Le système d’exploitation utilise la structure opaque FSRTL_PER_FILEOBJECT_CONTEXT pour effectuer le suivi des structures d’informations de contexte définies par filtre de système de fichiers pour un objet de fichier.

Syntaxe

typedef struct _FSRTL_PER_FILEOBJECT_CONTEXT {
  LIST_ENTRY Links;
  PVOID      OwnerId;
  PVOID      InstanceId;
} FSRTL_PER_FILEOBJECT_CONTEXT, *PFSRTL_PER_FILEOBJECT_CONTEXT;

Membres

Links

Lien pour cette structure dans la liste de toutes les structures de contexte par objet-fichier associées au même objet fichier. FsRtlInsertPerFileObjectContext insère ce membre dans la liste de toutes les structures de contexte par objet de fichier pour l’objet fichier.

OwnerId

Pointeur vers une variable allouée par le pilote de filtre qui identifie de manière unique le filtre propriétaire de la structure de contexte par objet de fichier. Le format de cette variable est spécifique au pilote de filtre. Les enregistreurs de filtres doivent choisir une valeur à la fois significative et pratique, telle que l’adresse de l’objet de périphérique ou de l’objet pilote du filtre. Notez que la valeur de ce membre ne peut pas être NULL.

InstanceId

Pointeur vers une variable allouée par un pilote de filtre qui peut être utilisée pour distinguer les structures de contexte par objet de fichier créées par le même pilote de filtre. Le format de cette variable est spécifique au pilote de filtre. Les enregistreurs de filtres doivent choisir une valeur à la fois significative et pratique, telle que l’adresse de l’objet fichier lui-même. Notez que la valeur de ce membre peut être NULL.

Remarques

Les pilotes de filtre de système de fichiers peuvent utiliser la structure opaque FSRTL_PER_FILEOBJECT_CONTEXT pour conserver les informations de contexte d’un objet de fichier. Cette structure peut être utilisée telle qu’elle est ou incorporée dans une structure de contexte par objet de fichier définie par pilote.

Chaque objet fichier peut avoir une liste de structure de contexte par objet fichier associé. Chaque membre de cette liste (c’est-à-dire une structure de contexte par objet de fichier particulière) appartient à un pilote de filtre. Du point de vue d’un pilote de filtre, chaque pilote de filtre peut associer plusieurs structures de contexte par objet-fichier pour le même objet de fichier.

Chaque structure de contexte par objet de fichier définie par filtre doit inclure une structure FSRTL_PER_FILEOBJECT_CONTEXT initialisée. La structure FSRTL_PER_FILEOBJECT_CONTEXT peut être allouée à partir d’un pool paginé ou non paginé et doit être initialisée à l’aide de la macro FsRtlInitPerFileObjectContext .

Pour insérer une structure FSRTL_PER_FILEOBJECT_CONTEXT ou une structure de contexte définie par filtre par fichier-objet (contenant une structure FSRTL_PER_FILEOBJECT_CONTEXT initialisée) dans la liste de toutes les structures de contexte pour un objet fichier, utilisez la fonction FsRtlInsertPerFileObjectContext .

Une fois qu’une structure de contexte FSRTL_PER_FILEOBJECT_CONTEXT ou par objet-fichier a été associée à un objet fichier, elle peut être récupérée en appelant FsRtlLookupPerFileObjectContext ou supprimée en appelant FsRtlRemovePerFileObjectContext (en fonction des valeurs de OwnerId et InstanceId).

Les pilotes de minifiltre du système de fichiers ne doivent pas utiliser les fonctions suivantes :

Au lieu de cela, les minifiltres peuvent utiliser les fonctions suivantes pour associer des informations de contexte à un objet fichier :

Les pilotes de minifiltre du système de fichiers ne doivent pas utiliser les fonctions FsRtlXxxPerFileObjectContext . Au lieu de cela, les minifiltres peuvent utiliser les fonctions FltXxxContext pour associer des informations de contexte à un objet fichier. Pour obtenir la liste complète, consultez la rubrique FSRTL_PER_FILEOBJECT_CONTEXT .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
En-tête ntifs.h (include Fltkernel.h, Ntifs.h)

Voir aussi

DEVICE_OBJECT

DRIVER_OBJECT

FILE_OBJECT

FltAllocateContext

FltDeleteContext

FltDeleteStreamHandleContext

FltGetStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext

FsRtlRemovePerFileObjectContext