Partager via


structure FSRTL_PER_FILEOBJECT_CONTEXT (ntifs.h)

Le système d’exploitation utilise la structure de FSRTL_PER_FILEOBJECT_CONTEXT opaque pour suivre les structures d’informations contextuelles définies par le pilote 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 fichier-objet associées au même objet de fichier. FsRtlInsertPerFileObjectContext insère ce membre dans la liste de toutes les structures de contexte par objet fichier pour l’objet de fichier.

OwnerId

Pointeur vers une variable allouée par un pilote de filtre qui identifie de façon unique le filtre propriétaire de la structure de contexte par fichier-objet. 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 le pilote de filtre qui peut être utilisée pour distinguer les structures de contexte par fichier-objet 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 qui est à la fois significative et pratique, telle que l’adresse de l’objet de 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 de FSRTL_PER_FILEOBJECT_CONTEXT opaque pour conserver des informations de contexte pour un objet de fichier. Cette structure peut être utilisée as-is ou incorporée dans une structure de contexte d’objet par fichier définie par pilote.

Chaque objet de fichier peut avoir une liste de structure de contexte par fichier-objet associée. Chaque membre de cette liste (c’est-à-dire une structure de contexte par objet par fichier) 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 fichier-objet pour le même objet de fichier.

Chaque structure de contexte d’objet de filtre définie par fichier doit inclure une structure de FSRTL_PER_FILEOBJECT_CONTEXT initialisée. La structure FSRTL_PER_FILEOBJECT_CONTEXT peut être allouée à partir d’un pool paginé ou non page 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’objet par fichier définie par filtre (contenant une structure de FSRTL_PER_FILEOBJECT_CONTEXT initialisée) dans la liste de toutes les structures de contexte d’un objet de 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 de 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 minifilter du système de fichiers ne doivent pas utiliser les fonctions suivantes :

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

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

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
d’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