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
Suivi Per-File contexte dans un pilote de filtre de système de fichiers hérité