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 |