Condividi tramite


Funzione FltDeleteFileContext (fltkernel.h)

La routine FltDeleteFileContext recupera ed elimina un contesto di file impostato da un determinato driver minifilter per un determinato file.

Sintassi

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

Parametri

[in] Instance

Puntatore dell'istanza opaca per il chiamante. Questo parametro è obbligatorio e non può essere NULL.

[in] FileObject

Puntatore a oggetti file per il file. Questo parametro è obbligatorio e non può essere NULL.

[out] OldContext

Puntatore a una variabile allocata dal chiamante che riceve l'indirizzo del contesto eliminato. Se non viene trovato alcun contesto corrispondente, questa variabile riceve NULL_CONTEXT. Questo parametro è facoltativo e può essere NULL. Per altre informazioni su questo parametro, vedere la sezione Osservazioni seguente.

Valore restituito

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

Codice restituito Descrizione
STATUS_NOT_FOUND Non è stato trovato alcun contesto corrispondente. Si tratta di un codice di errore.
STATUS_NOT_SUPPORTED I contesti di file non sono supportati per questo file. Si tratta di un codice di errore.

Commenti

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

Poiché i contesti vengono conteggiati dai riferimenti, non è in genere necessario per un driver minifilter chiamare una routine come FltDeleteFileContext o FltDeleteContext per eliminare in modo esplicito un contesto.

Un driver minifilter chiama FltDeleteFileContext per recuperare ed eliminare un contesto di file impostato in precedenza per un file chiamando FltSetFileContext.

Se il parametro OldContext è NULL nell'input e viene trovato un contesto di file corrispondente, FltDeleteFileContext rilascia il riferimento aggiunto dalla chiamata precedente del driver minifilter a FltSetFileContext. Il contesto eliminato viene in genere liberato immediatamente, a meno che non vi sia un riferimento in sospeso, ad esempio perché il contesto è ancora in uso da un altro thread.

Se il parametro OldContext non è NULL e viene trovato e restituito un contesto di file corrispondente, il chiamante è responsabile del rilascio del riferimento aggiunto da FltSetFileContext. Per rilasciare questo riferimento, il driver minifilter deve chiamare FltReleaseContext nel contesto di file eliminato appena possibile dopo aver eseguito la pulizia necessaria.

Per allocare un nuovo contesto, chiamare FltAllocateContext.

Per determinare se i contesti di file sono supportati per un determinato file, chiamare FltSupportsFileContexts o FltSupportsFileContextsEx.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista e versioni successive
Piattaforma di destinazione Universale
Intestazione fltkernel.h (include Fltkernel.h)
Libreria FltMgr.lib
IRQL <= APC_LEVEL

Vedi anche

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx