structure FSRTL_PER_STREAM_CONTEXT (ntifs.h)
La structure FSRTL_PER_STREAM_CONTEXT contient des informations de contexte qu’un pilote de filtre de système de fichiers gère sur un flux de fichiers.
Syntaxe
typedef struct _FSRTL_PER_STREAM_CONTEXT {
LIST_ENTRY Links;
PVOID OwnerId;
PVOID InstanceId;
PFREE_FUNCTION FreeCallback;
} FSRTL_PER_STREAM_CONTEXT, *PFSRTL_PER_STREAM_CONTEXT;
Membres
Links
Lien pour cette structure dans la liste de toutes les structures de contexte par flux associées au même flux de fichiers. FsRtlInsertPerStreamContext insère ce membre dans la liste de toutes les structures de contexte par flux pour un flux de fichiers. Pour obtenir un pointeur vers la tête de la liste à partir d’un objet de fichier, utilisez le FsRtlGetPerStreamContextPointer macro, puis convertissez le résultat en pointeur PFSRTL_ADVANCED_FCB_HEADER. Le pointeur de liste est le membre FilterContexts dans la structure d’en-tête du bloc de contrôle de fichier avancé (FCB) pour le flux de fichiers.
OwnerId
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 flux. 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 d’un objet de pilote ou d’un objet de périphérique. Les pilotes de filtre doivent définir ce membre sur une valeur NULL non
InstanceId
Pointeur vers une variable allouée par un pilote de filtre qui peut être utilisée pour distinguer les structures de contexte par flux 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 de contexte de flux pour le flux de fichiers. (Pour obtenir cette adresse à partir d’un objet de fichier, utilisez la macro FsRtlGetPerStreamContextPointer.)
Ce membre est facultatif et peut être NULL.
FreeCallback
Pointeur vers une routine de rappel qui libère la structure de contexte par flux. Cette routine et ses paramètres sont définis comme suit :
VOID
(*PFREE_FUNCTION) (
IN PVOID Buffer
);
Tampon
Pointeur vers la structure FSRTL_PER_STREAM_CONTEXT à libérer.
Remarques
Les pilotes de filtre de système de fichiers peuvent utiliser une structure FSRTL_PER_STREAM_CONTEXT pour conserver des informations de contexte pour un flux de fichiers. Cette structure peut être utilisée comme étant ou incorporée dans une structure de contexte par flux définie par pilote.
Lorsqu’un système de fichiers supprime l’objet de contexte de flux d’un flux de fichiers, il doit appeler FsRtlTeardownPerStreamContexts, qui appelle à son tour les routines FreeCallback de toutes les structures de contexte par flux associées au flux de fichiers.
La macro FsRtlSupportsPerStreamContexts détermine si un système de fichiers prend en charge les contextes par flux pour un flux de fichiers donné.
BOOLEAN FsRtlSupportsPerStreamContexts(
[in] PFILE_OBJECT FileObject
);
Paramètres
FileObject [in]
PFILE_OBJECT
Pointeur vers un objet de fichier pour le flux de fichiers.
Valeur de retour
BOOLEAN
La macro FsRtlSupportsPerStreamContexts retourne TRUE si le système de fichiers prend en charge les contextes par flux pour le flux de fichiers, FALSE sinon.
Les pilotes de filtre de système de fichiers appellent FsRtlSupportsPerStreamContexts pour déterminer si le système de fichiers sous-jacent prend en charge les contextes par flux pour le flux de fichiers représenté par un objet de fichier donné. Notez qu’un système de fichiers peut prendre en charge des contextes par flux pour certains types de fichiers, mais pas pour d’autres. Par exemple, NTFS et FAT ne prennent pas actuellement en charge les contextes par flux pour la pagination des fichiers.
Pour plus d’informations, consultez suivi Per-Stream contexte dans un pilote de filtre de système de fichiers hérité.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Cette structure est Windows XP |
d’en-tête | ntifs.h (include Ntifs.h) |
Voir aussi
FsRtlGetPerStreamContextPointer
FsRtlTeardownPerStreamContexts
Per-Stream contexte de suivi dans un pilote de filtre de système de fichiers hérité