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 all'oggetto 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.

Osservazioni

Per altre informazioni sui contesti, vedere Informazioni sui contesti del minifiltro.

Poiché i contesti vengono conteggiati, in genere non è necessario che un driver minifiltro chiami 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 sull'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 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 il prima 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.

Fabbisogno

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

Vedere anche

FLT_CONTEXT_REGISTRATION

FltAllocateContext

FltDeleteContext

FltGetFileContext

FltReleaseContext

FltSetFileContext

FltSupportsFileContexts

FltSupportsFileContextsEx