Condividi tramite


Funzione FltDeleteContext (fltkernel.h)

FltDeleteContext contrassegna un contesto specificato per l'eliminazione.

Sintassi

VOID FLTAPI FltDeleteContext(
  [in] PFLT_CONTEXT Context
);

Parametri

[in] Context

Puntatore al contesto da eliminare. Questo parametro è obbligatorio e non può essere NULL.

Valore restituito

No.

Osservazioni

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

Poiché i contesti sono a cui si fa riferimento, non è in genere necessario per un driver minifilter chiamare una routine, ad esempio FltDeleteContext, per eliminare in modo esplicito un contesto.

FltDeleteContext contrassegna un contesto per l'eliminazione. Il contesto viene in genere liberato non appena viene rilasciato il riferimento corrente, 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).

È consigliabile considerare gli elementi seguenti quando si usa FltDeleteContext:

  • Quando un driver minifilter chiama FltDeleteContext, il driver minifilter deve già avere un riferimento al contesto. Tuttavia, quando il driver minifilter chiama FltDeleteStreamHandleContext, FltDeleteStreamContext, FltDeleteInstanceContext e così via, il driver minifilter non richiede un riferimento al contesto. Dopo che il driver minifilter chiama FltDeleteContext, tale riferimento al contesto è ancora valido. Il driver minifilter deve chiamare la routine FltReleaseContext per rilasciare il riferimento al contesto.

  • FltDeleteContext rimuove il contesto dalle strutture di gestione filtri interne. Quindi, altre chiamate a funzioni che ottengono contesti, ad esempio FltGetContexts e FltGetInstanceContext, non possono individuare tale contesto. Tuttavia, la memoria del contesto non viene rilasciata finché il conteggio dei riferimenti per il contesto passa a 0.

È anche possibile eliminare i contesti chiamando la routine di eliminazione appropriata dalla tabella seguente.

Tipo di contesto routine Delete-Context
FLT_FILE_CONTEXT FltDeleteFileContext (Solo Windows Vista e versioni successive).
FLT_INSTANCE_CONTEXT FltDeleteInstanceContext
FLT_SECTION_CONTEXT FltCloseSectionForDataScan (solo Windows 8 e versioni successive).
FLT_STREAM_CONTEXT FltDeleteStreamContext
FLT_STREAMHANDLE_CONTEXT FltDeleteStreamHandleContext
FLT_TRANSACTION_CONTEXT FltDeleteTransactionContext (Solo Windows Vista e versioni successive).
FLT_VOLUME_CONTEXT FltDeleteVolumeContext

Per allocare un nuovo contesto, chiamare FltAllocateContext.

Per incrementare il conteggio dei riferimenti in un contesto, chiamare FltReferenceContext.

Per decrerere il conteggio dei riferimenti in un contesto, chiamare FltReleaseContext.

Un contesto di sezione, FLT_SECTION_CONTEXT tipo, non deve essere eliminato usando FltDeleteContext. Usare invece FltReleaseContext per deallocare un contesto di sezione.

Requisiti

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

Vedi anche

FltAllocateContext

FltCloseSectionForDataScan

FltDeleteFileContext

FltDeleteInstanceContext

FltDeleteStreamContext

FltDeleteStreamHandleContext

FltDeleteTransactionContext

FltDeleteVolumeContext

FltReferenceContext

FltReleaseContext