Condividi tramite


Funzione FltRollbackComplete (fltkernel.h)

La routine FltRollbackComplete riconosce una notifica di TRANSACTION_NOTIFY_ROLLBACK.

Sintassi

NTSTATUS FLTAPI FltRollbackComplete(
  [in]           PFLT_INSTANCE Instance,
  [in]           PKTRANSACTION Transaction,
  [in, optional] PFLT_CONTEXT  TransactionContext
);

Parametri

[in] Instance

Puntatore dell'istanza opaca per il chiamante.

[in] Transaction

Puntatore di transazione opaco per la transazione.

[in, optional] TransactionContext

Puntatore al contesto di transazione del driver minifilter.

Valore restituito

FltRollbackComplete restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio:

Codice restituito Descrizione
STATUS_NOT_FOUND
Il driver minifilter non ha impostato un contesto nella transazione. Si tratta di un codice di errore.

Osservazioni

Un driver minifiltro inserito in una transazione può ricevere una notifica TRANSACTION_NOTIFY_ROLLBACK quando la transazione è in fase di rollback o interruzione. Per inviare la notifica al driver minifilter, il gestore filtri chiama la routine TransactionNotificationCall back del driver minifilter. Il driver minifiltro riconosce questa notifica in uno dei due modi seguenti:

  • La routine TransactionNotificationCall back del driver minifilter esegue qualsiasi elaborazione necessaria e restituisce STATUS_SUCCESS. In questo caso, il driver minifiltro non chiama FltRollbackComplete.
  • Il driver minifilter TransactionNotificationCallback routine invia qualsiasi elaborazione necessaria a 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 FltRollbackComplete per indicare che l'elaborazione è stata completata. Se la routine di lavoro del driver minifilter non chiama FltRollbackComplete, il rollback o l'operazione di interruzione della transazione non può essere completata dal gestore transazioni del kernel.
Per registrare una routine TransactionNotificationCallback, un driver minifiltro archivia l'indirizzo di una routine di tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK nel TransactionNotificationCallback membro della struttura FLT_REGISTRATION che il driver minifilter passa come parametro Registration di FltRegisterFilter.

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.

Fabbisogno

Requisito Valore
client minimo supportato Questa routine è disponibile in Windows Vista e versioni successive.
piattaforma di destinazione Universale
intestazione fltkernel.h (include Fltkernel.h)
libreria Fltmgr.lib
dll Fltmgr.sys
IRQL PASSIVE_LEVEL

Vedere anche

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrePrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK