Partager via


Fonction FsRtlRemovePerFileContext (ntifs.h)

La routine FsRtlRemovePerFileContext retourne un pointeur vers un objet FSRTL_PER_FILE_CONTEXT associé à un fichier. FsRtlRemovePerFileContext supprime l’objet FSRTL_PER_FILE_CONTEXT de la liste qu’il occupe, ainsi que les informations de contexte spécifiques au pilote associées.

Syntaxe

PFSRTL_PER_FILE_CONTEXT FsRtlRemovePerFileContext(
  [in]           PVOID *PerFileContextPointer,
  [in, optional] PVOID OwnerId,
  [in, optional] PVOID InstanceId
);

Paramètres

[in] PerFileContextPointer

Pointeur vers un pointeur opaque utilisé par le package FSRTL (File System Runtime Library) pour suivre les contextes de fichiers. Pour obtenir ce pointeur à partir d’un objet de fichier, utilisez la macro FsRtlGetPerFileContextPointer .

[in, optional] 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 fichier. Ce paramètre est facultatif, mais doit être non NULL si InstanceId n’est pas NULL.

[in, optional] InstanceId

Pointeur vers une variable 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. Ce paramètre est facultatif.

Valeur renvoyée

Pointeur vers le premier FSRTL_PER_FILE_CONTEXT qui correspond à OwnerId et InstanceId, si spécifié. Si aucune correspondance n’est trouvée ou si le système ne prend pas en charge les informations de contexte par fichier, cette routine retourne NULL.

Remarques

FsRtlRemovePerFileContext supprime uniquement la première structure de contexte par fichier correspondante qu’il trouve. S’il existe d’autres contextes correspondants par fichier, le pilote de filtre doit appeler FsRtlRemovePerFileContext autant de fois que nécessaire pour les supprimer tous.

Le pilote de filtre du système de fichiers doit libérer la mémoire utilisée pour ces informations de contexte une fois le FSRTL_PER_FILE_CONTEXT supprimé.

Utilisez cette routine pour que vos pilotes suppriment les contextes uniquement lorsque le pilote doit ignorer les informations de contexte par fichier pendant que le fichier est toujours ouvert. Les contextes sont supprimés lorsqu’un fichier est fermé à l’aide de FsRtlTeardownPerFileContexts.

N’utilisez pas cette routine dans votre routine FreeCallback . Le système de fichiers supprime les contextes de la liste avant l’appel de cette routine.

N’utilisez pas cette routine à l’intérieur de votre gestionnaire de IRP_CLOSE. Vous ne serez pas averti lorsque le flux sera détruit.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Plateforme cible Universal
En-tête ntifs.h (include FltKernel.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=APC_LEVEL

Voir aussi

FSRTL_PER_FILE_CONTEXT

FsRtlGetPerFileContextPointer

FsRtlInsertPerFileContext

FsRtlLookupPerFileContext

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