Condividi tramite


Funzione FltDeleteStreamContext (fltkernel.h)

FltDeleteStreamContext rimuove un contesto impostato per un determinato istanza del driver minifilter per un determinato flusso e contrassegna il contesto per l'eliminazione.

Sintassi

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

Parametri

[in] Instance

Puntatore istanza opaca per l'istanza del driver minifilter il cui contesto deve essere rimosso dall'elenco di contesti collegati al flusso di file.

[in] FileObject

Puntatore a un oggetto file per il flusso di file.

[out] OldContext

Puntatore a una variabile allocata del chiamante che riceve l'indirizzo del contesto eliminato. Questo parametro è facoltativo e può essere NULL. Se OldContext non è NULL e non punta a NULL_CONTEXT, il chiamante è responsabile della chiamata a FltReleaseContext per rilasciare questo contesto quando non è più necessario.

Valore restituito

FltDeleteStreamContext restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_FLT_DELETING_OBJECT L'istanza specificata viene distrutta. Si tratta di un codice di errore.
STATUS_NOT_FOUND Non è stato trovato alcun contesto corrispondente. Si tratta di un codice di errore.
STATUS_NOT_SUPPORTED Il file system non supporta contesti per flusso per questo flusso di file. Si tratta di un codice di errore.

Commenti

Per altre informazioni sui contesti, vedere Informazioni sui contesti minifilter.

Poiché i contesti vengono conteggiati con riferimento, in genere non è necessario che un driver minifilter chiami una routine come FltDeleteStreamContext per eliminare in modo esplicito un contesto.

Un driver minifilter chiama FltDeleteStreamContext per rimuovere un contesto da un flusso di file e contrassegnare il contesto per l'eliminazione. Il contesto viene in genere liberato immediatamente a meno che non vi sia un riferimento in sospeso su di esso (ad esempio, perché il contesto è ancora in uso da un altro thread).

Per allocare un nuovo contesto, chiamare FltAllocateContext.

Per ottenere un contesto di flusso, chiamare FltGetStreamContext.

Per impostare un contesto di flusso, chiamare FltSetStreamContext.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (includere Fltkernel.h)
Libreria FltMgr.lib
IRQL <= APC_LEVEL

Vedi anche

FltAllocateContext

FltDeleteContext

FltGetStreamContext

FltReleaseContext

FltSetStreamContext