Fonction FltDeleteStreamHandleContext (fltkernel.h)

FltDeleteStreamHandleContext supprime un contexte qu’un pilote minifilter donné instance a défini pour un handle de flux donné et marque le contexte de suppression.

Syntaxe

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

Paramètres

[in] Instance

Opaque instance pointeur pour le pilote minifilter instance dont le contexte doit être supprimé de la liste des contextes attachés au handle de flux.

[in] FileObject

Pointeur vers un objet fichier pour le flux de fichier.

[out] OldContext

Pointeur vers une variable allouée par l’appelant qui reçoit l’adresse du contexte supprimé. Ce paramètre est facultatif et peut être NULL. Si OldContext n’a pas la valeur NULL et ne pointe pas vers NULL_CONTEXT, l’appelant est chargé d’appeler FltReleaseContext pour libérer ce contexte lorsqu’il n’est plus nécessaire.

Valeur retournée

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

Code de retour Description
STATUS_FLT_DELETING_OBJECT L’instance spécifiée est en cours de déclassée. Il s’agit d’un code d’erreur.
STATUS_NOT_FOUND Aucun contexte correspondant n’a été trouvé. Il s’agit d’un code d’erreur.
STATUS_NOT_SUPPORTED Le système de fichiers ne prend pas en charge les contextes par flux pour ce handle de flux de fichiers. 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 FltDeleteStreamHandleContext pour supprimer explicitement un contexte.

Un pilote de minifiltre appelle FltDeleteStreamHandleContext pour supprimer un contexte d’un handle de flux et marquer le contexte de suppression. Le contexte est généralement libéré immédiatement, sauf s’il y a une référence en attente sur celui-ci (par exemple, parce que le contexte est toujours utilisé par un autre thread).

Pour allouer un nouveau contexte, appelez FltAllocateContext.

Pour obtenir un contexte de flux, appelez FltGetStreamHandleContext.

Pour définir un contexte de flux, appelez FltSetStreamHandleContext.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Voir aussi

FltAllocateContext

FltDeleteContext

FltGetStreamHandleContext

FltReleaseContext

FltSetStreamHandleContext