Funzione FltCommitComplete (fltkernel.h)
La routine FltCommitComplete riconosce una notifica di TRANSACTION_NOTIFY_COMMIT.
Sintassi
NTSTATUS FLTAPI FltCommitComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
Parametri
[in] Instance
Puntatore istanza opaca per il chiamante.
[in] Transaction
Puntatore delle transazioni opaco per la transazione.
[in, optional] TransactionContext
Puntatore al contesto del driver minifilter per la transazione. Questo parametro è facoltativo e può essere NULL.
Valore restituito
FltCommitComplete restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio quanto segue:
Codice restituito | Descrizione |
---|---|
|
Il driver minifilter non ha impostato un contesto sulla transazione. Si tratta di un codice di errore. |
Commenti
Questa routine è disponibile in Windows Vista e versioni successive.
Un driver minifilter incluso in una transazione può ricevere una notifica di TRANSACTION_NOTIFY_COMMIT quando la transazione è in fase di commit. Per inviare la notifica al driver minifilter, il gestore 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 FltCommitComplete.
- La routine TransactionNotificationCallback del driver minifilter pubblica qualsiasi elaborazione necessaria per un thread di lavoro e restituisce STATUS_PENDING. Dopo aver eseguito l'elaborazione in modo asincrono, la routine di lavoro del driver minifilter deve chiamare FltCommitComplete per indicare che è stata completata l'elaborazione. Se la routine di lavoro del driver minifilter non chiama FltCommitComplete, l'operazione di commit delle transazioni non può essere completata dalla gestione transazioni kernel.
Per eseguire l'inserimento 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.
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Universale |
Intestazione | fltkernel.h (includere Fltkernel.h) |
Libreria | Fltmgr.lib |
IRQL | PASSIVE_LEVEL |