Partager via


Fonction FltDeleteFileContext (fltkernel.h)

La routine FltDeleteFileContext récupère et supprime un contexte de fichier qu’un pilote minifilter donné a défini pour un fichier donné.

Syntaxe

NTSTATUS FLTAPI FltDeleteFileContext(
  [in]  PFLT_INSTANCE Instance,
  [in]  PFILE_OBJECT  FileObject,
  [out] PFLT_CONTEXT  *OldContext
);

Paramètres

[in] Instance

Pointeur instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.

[in] FileObject

Pointeur d’objet file pour le fichier. Ce paramètre est obligatoire et ne peut pas être NULL.

[out] OldContext

Pointeur vers une variable allouée par l’appelant qui reçoit l’adresse du contexte supprimé. Si aucun contexte correspondant n’est trouvé, cette variable reçoit NULL_CONTEXT. Ce paramètre est facultatif et peut être NULL. Pour plus d’informations sur ce paramètre, consultez la section Remarques suivante.

Valeur retournée

FltDeleteFileContext retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_NOT_FOUND Aucun contexte correspondant n’a été trouvé. Il s’agit d’un code d’erreur.
STATUS_NOT_SUPPORTED Les contextes de fichier ne sont pas pris en charge pour ce fichier. Il s’agit d’un code d’erreur.

Remarques

Pour plus d’informations sur les contextes, consultez À propos des contextes de minifiltre.

Étant donné que les contextes sont comptés en référence, il n’est généralement pas nécessaire qu’un pilote minifilter appelle une routine telle que FltDeleteFileContext ou FltDeleteContext pour supprimer explicitement un contexte.

Un pilote minifilter appelle FltDeleteFileContext pour récupérer et supprimer un contexte de fichier qu’il a précédemment défini pour un fichier en appelant FltSetFileContext.

Si le paramètre OldContext a la valeur NULL lors de l’entrée et qu’un contexte de fichier correspondant est trouvé, FltDeleteFileContext libère la référence qui a été ajoutée par l’appel précédent du pilote minifilter à FltSetFileContext. Le contexte supprimé est généralement libéré immédiatement, sauf s’il y a une référence en suspens (par exemple, parce que le contexte est toujours utilisé par un autre thread).

Si le paramètre OldContext n’est pas NULL et qu’un contexte de fichier correspondant est trouvé et retourné, l’appelant est chargé de libérer la référence qui a été ajoutée par FltSetFileContext. Pour libérer cette référence, le pilote minifilter doit appeler FltReleaseContext sur le contexte de fichier supprimé dès que possible après avoir effectué tout nettoyage nécessaire.

Pour allouer un nouveau contexte, appelez FltAllocateContext.

Pour déterminer si les contextes de fichier sont pris en charge pour un fichier donné, appelez FltSupportsFileContexts ou FltSupportsFileContextsEx.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista et versions ultérieures
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
IRQL <= APC_LEVEL

Voir aussi

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx