Partager via


FsRtlRemovePerFileObjectContext, fonction (ntifs.h)

Pour un pilote de filtre de système de fichiers « hérité », la fonction FsRtlRemovePerFileObjectContext dissocie une structure d’informations de contexte par fichier à partir de la liste des contextes par objet-fichier précédemment associés à un objet de fichier.

Syntaxe

PFSRTL_PER_FILEOBJECT_CONTEXT FsRtlRemovePerFileObjectContext(
  [in]           PFILE_OBJECT FileObject,
  [in, optional] PVOID        OwnerId,
  [in, optional] PVOID        InstanceId
);

Paramètres

[in] FileObject

Pointeur vers un objet de fichier pour lequel supprimer des informations de contexte.

[in, optional] OwnerId

Pointeur vers une variable allouée par l’appelant qui identifie de manière 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.

[in, optional] InstanceId

Pointeur vers une variable allouée par l’appelant 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. Ce paramètre est facultatif et peut être NULL.

Valeur de retour

FsRtlRemovePerFileObjectContext dissocier et retourne un pointeur vers le premier contexte correspondant par objet-fichier trouvé. Si aucune correspondance n’est trouvée, FsRtlRemovePerFileObjectContext retourne NULL.

Remarques

Un pilote de filtre de système de fichiers « hérité » appelle FsRtlRemovePerFileObjectContext pour dissocier sa propre structure de contexte par fichier à partir de la liste des contextes par objet-fichier associés à l’objet fichier. Toutes ces structures de contexte doivent avoir été précédemment associées à l’objet de fichier en appelant FsRtlInsertPerFileObjectContext.

Si l’appel à FsRtlRemovePerFileObjectContext réussit, la première structure de contexte par fichier-objet correspondant OwnerId (et InstanceId, le cas échéant) est dissociée et un pointeur vers celui-ci retourné. Ce pointeur peut être utilisé par le pilote de filtre pour libérer la structure de contexte non liées.

RemarqueFsRtlRemovePerFileObjectContext dissocie uniquement la première structure de contexte d’objet par fichier correspondante trouvée. S’il existe d’autres contextes correspondants par objet fichier, le pilote de filtre doit appeler FsRtlRemovePerFileObjectContext autant de fois que nécessaire pour les dissocier.
 
Pour initialiser une structure de contexte par fichier-objet, utilisez la macro FsRtlInitPerFileObjectContext .

Pour associer une structure de contexte par fichier-objet initialisée à un objet de fichier, utilisez la fonction FsRtlInsertPerFileObjectContext.

Pour récupérer une structure de contexte par fichier-objet associée à un objet de fichier, utilisez la fonction FsRtlLookupPerFileObjectContext.

Remarque pilotes de filtre hérités doivent appeler la fonction FsRtlRemovePerFileObjectContext pour dissocier et libérer la structure des informations de contexte avant l’achèvement de IRP_MJ_CLOSE. Sinon, la mémoire allouée à cette structure de contexte sera divulguée.
 
En outre, les pilotes minifilter du système de fichiers ne doivent pas utiliser les fonctions FsRtlXxxPerFileObjectContext. Au lieu de cela, ils peuvent utiliser les fonctions fltXxxContext appropriées. Pour plus d’informations, consultez la rubrique FSRTL_PER_FILEOBJECT_CONTEXT.

Exigences

Exigence Valeur
client minimum pris en charge Windows Vista
plateforme cible Universel
d’en-tête ntifs.h (include Fltkernel.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

Voir aussi

FSRTL_PER_FILEOBJECT_CONTEXT

FsRtlInitPerFileObjectContext

FsRtlInsertPerFileObjectContext

FsRtlLookupPerFileObjectContext