Partager via


structure FSRTL_PER_FILE_CONTEXT (ntifs.h)

Un pilote de filtre de système de fichiers hérité peut utiliser une structure FSRTL_PER_FILE_CONTEXT pour associer des informations de contexte spécifiques au pilote à un fichier ouvert.

Syntaxe

typedef struct _FSRTL_PER_FILE_CONTEXT {
  LIST_ENTRY     Links;
  PVOID          OwnerId;
  PVOID          InstanceId;
  PFREE_FUNCTION FreeCallback;
} FSRTL_PER_FILE_CONTEXT, *PFSRTL_PER_FILE_CONTEXT;

Membres

Links

Lien pour cette structure dans la liste de toutes les structures de contexte par fichier associées au même fichier. FsRtlInsertPerFileContext insère ce membre dans la liste de toutes les structures de contexte par fichier pour un fichier.

OwnerId

Pointeur vers une mémoire tampon allouée par un pilote de filtre qui identifie de manière unique le propriétaire de la structure de contexte par fichier. Le format de cette variable est spécifique au pilote de filtre. Les pilotes de filtre doivent définir ce membre sur une valeur non NULL .

InstanceId

Pointeur vers une mémoire tampon allouée par un pilote de filtre qui peut être utilisé pour distinguer les structures de contexte par fichier créées par le même pilote de filtre. Le format de cette variable est spécifique au pilote de filtre. Les pilotes de filtre peuvent définir ce membre sur NULL.

FreeCallback

Pointeur vers une routine de rappel qui libère la structure de contexte par fichier. Les pilotes de filtre doivent définir ce membre sur une valeur non NULL .

Remarques

Pour associer des informations de contexte à un fichier, un pilote de filtre hérité alloue d’abord une structure de FSRTL_PER_FILE_CONTEXT et l’initialise à l’aide de FsRtlInsertPerFileContext. Le pilote utilise ensuite FsRtlInsertPerFileContext pour associer cet objet FSRTL_PER_FILE_CONTEXT au fichier. Lorsque le système supprime l’objet de contexte de fichier pour un fichier, il appelle FsRtlTeardownPerFileContexts , qui appelle la routine FreeCallback spécifiée dans l’objet FSRTL_PER_FILE_CONTEXT . Ce rappel doit libérer l’objet de contexte spécifique au pilote.

Les enregistreurs de filtres doivent choisir une valeur OwnerID à la fois significative et pratique, telle que l’adresse d’un objet de pilote ou d’un objet d’appareil.

Les rédacteurs de filtres doivent choisir une valeur InstanceID à la fois significative et pratique, telle que l’adresse de l’objet de contexte de fichier pour le fichier. Utilisez la macro FsRtlGetPerFileContextPointer pour récupérer cette adresse à partir d’un objet de fichier.

La structure FSRTL_PER_FILE_CONTEXT peut être utilisée telle qu’elle est ou incorporée dans une structure de contexte par fichier définie par pilote.

La structure FSRTL_PER_FILE_CONTEXT peut être allouée à partir d’un pool paginé ou non paginé.

La macro FsRtlInitPerFileContext initialise une structure FSRTL_PER_FILE_CONTEXT .

Paramètres

FileContext

FSRTL_PER_FILE_CONTEXT

Objet FSRTL_PER_FILE_CONTEXT à initialiser.

OwnerId

PVOID

Pointeur vers une variable allouée par un pilote de filtre qui identifie de manière unique le propriétaire de la structure de contexte par fichier. Le format est spécifique au pilote de filtre. Ce paramètre doit avoir une valeur non NULL .

InstanceId

PVOID

Pointeur vers une variable allouée par un pilote de filtre qui identifie de manière unique le propriétaire de la structure de contexte par fichier. Le format est spécifique au pilote de filtre. Ce paramètre doit avoir une valeur non NULL .

FreeCallback

PFREE_FUNCTION

Pointeur vers une routine de rappel qui libère la structure de contexte par fichier.

Valeur retournée

VOID

Aucun.

Cette macro doit être utilisée avant d’appeler FsRtlInsertPerFileContext.

Les enregistreurs de filtres doivent choisir une valeur OwnerID à la fois significative et pratique, telle que l’adresse d’un objet de pilote ou d’un objet d’appareil.

Les enregistreurs de filtres doivent utiliser une valeur InstanceID à la fois significative et pratique, telle que l’adresse de l’objet de contexte de fichier pour le fichier. Utilisez la macro FsRtlGetPerFileContextPointer pour récupérer cette adresse à partir d’un objet de fichier.

Pour plus d’informations sur l’utilisation et la création d’objets de contexte, consultez Suivi Per-File contexte dans un pilote de filtre de système de fichiers hérité.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows Vista.
En-tête ntifs.h (inclure Fltkernel.h, Ntifs.h)

Voir aussi

FsRtlGetPerFileContextPointer

FsRtlInitPerFileContext

FsRtlInsertPerFileContext

FsRtlTeardownPerFileContexts

PFREE_FUNCTION

Suivi Per-File contexte dans un pilote de filtre de système de fichiers hérité