Funzione FltCommitFinalizeComplete (fltkernel.h)
La routine FltCommitFinalizeComplete riconosce una notifica di TRANSACTION_NOTIFY_COMMIT_FINALIZE.
Sintassi
NTSTATUS FLTAPI FltCommitFinalizeComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
Parametri
[in] Instance
Puntatore opaco a un'istanza di un driver minifilter. Questo parametro è obbligatorio e non può essere NULL.
[in] Transaction
Puntatore opaco alla transazione in cui è attualmente incluso il driver minifilter. Questo parametro è obbligatorio e non può essere NULL.
[in, optional] TransactionContext
Puntatore al contesto del driver minifilter per la transazione. Questo parametro è facoltativo e può essere NULL.
Valore restituito
FltCommitFinalizeComplete restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio:
Codice restituito | Descrizione |
---|---|
|
Il driver minifilter non ha impostato un contesto sulla transazione. Si tratta di un codice di errore. |
Commenti
Un driver minifilter inserito in una transazione può ricevere una notifica di TRANSACTION_NOTIFY_COMMIT_FINALIZE quando viene eseguito il commit completo della transazione, ovvero quando tutti i gestori di risorse associati alla transazione, ad esempio TxF, hanno eseguito il commit. Per un driver antivirus minifilter che esegue analisi all'esterno delle transazioni, è possibile usare questo valore di notifica per determinare quando il driver deve iniziare l'analisi dei file.
Per inviare la notifica di TRANSACTION_NOTIFY_COMMIT_FINALIZE al driver minifilter, gestione filtri chiama la routine TransactionNotificationCallback del driver minifilter. Il driver minifilter riconosce questa notifica in uno dei due modi seguenti:
- La routine TransactionNotificationCallback del driver minifilter esegue qualsiasi elaborazione necessaria e restituisce STATUS_SUCCESS. In questo caso, il driver minifilter non chiama FltCommitFinalizeComplete.
- La routine TransactionNotificationCallback del driver minifilter inserisce tutte le elaborazioni necessarie in un thread di lavoro e restituisce STATUS_PENDING. Dopo aver eseguito l'elaborazione in modo asincrono, la routine del thread di lavoro del driver minifilter deve chiamare FltCommitFinalizeComplete per indicare che l'elaborazione è stata completata. Se la routine del thread di lavoro del driver minifilter non chiama FltCommitFinalizeComplete, alcune risorse di sistema verranno perse.
Per eseguire l'integrazione in una transazione, chiamare FltEnlistInTransaction.
Per allocare un nuovo contesto di transazione, chiamare FltAllocateContext.
Per recuperare un contesto di transazione, chiamare FltGetTransactionContext.
Per eliminare un contesto di transazione, chiamare FltDeleteTransactionContext o FltDeleteContext.
Per impostare un contesto di transazione, chiamare FltSetTransactionContext.
Per altre informazioni, vedere Notifiche delle transazioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Disponibile in Windows Vista Service Pack 1 (SP1) e versioni successive. |
Piattaforma di destinazione | Universale |
Intestazione | fltkernel.h (include Fltkernel.h) |
Libreria | Fltmgr.lib |
IRQL | <= APC_LEVEL |