Fonction FltRollbackComplete (fltkernel.h)

La routine FltRollbackComplete reconnaît une notification TRANSACTION_NOTIFY_ROLLBACK.

Syntaxe

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

Paramètres

[in] Instance

Pointeur de instance opaque pour l’appelant.

[in] Transaction

Pointeur de transaction opaque pour la transaction.

[in, optional] TransactionContext

Pointeur vers le contexte de transaction du pilote minifiltre.

Valeur retournée

FltRollbackComplete retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :

Code de retour Description
STATUS_NOT_FOUND
Le pilote de minifiltre n’a pas défini de contexte sur la transaction. Il s’agit d’un code d’erreur.

Remarques

Un pilote de minifiltre inscrit dans une transaction peut recevoir une notification TRANSACTION_NOTIFY_ROLLBACK lorsque la transaction est en cours de restauration ou d’abandon. Pour envoyer la notification au pilote de minifiltre, le gestionnaire de filtres appelle la routine TransactionNotificationCallback du pilote minifiltre. Le pilote de minifiltre accepte cette notification de l’une des deux manières suivantes :

  • La routine TransactionNotificationCallback du pilote minifiltre effectue le traitement nécessaire et retourne STATUS_SUCCESS. Dans ce cas, le pilote minifilter n’appelle pas FltRollbackComplete.
  • La routine TransactionNotificationCallback du pilote minifiltre publie tout traitement nécessaire sur un thread worker et retourne STATUS_PENDING. Après avoir effectué le traitement de manière asynchrone, la routine de travail du pilote de minifiltre doit appeler FltRollbackComplete pour indiquer qu’elle a terminé ce traitement. Si la routine de travail du pilote minifiltre n’appelle pas FltRollbackComplete, l’opération de restauration ou d’annulation de transaction ne peut pas être effectuée par le gestionnaire de transactions du noyau.
Pour inscrire une routine TransactionNotificationCallback , un pilote de minifiltre stocke l’adresse d’une routine de type PFLT_TRANSACTION_NOTIFICATION_CALLBACK dans le membre TransactionNotificationCallback de la structure FLT_REGISTRATION que le pilote de minifiltre transmet comme paramètre Registration de FltRegisterFilter.

Pour vous inscrire dans une transaction, appelez FltEnlistInTransaction.

Pour allouer un nouveau contexte de transaction, appelez FltAllocateContext.

Pour récupérer un contexte de transaction, appelez FltGetTransactionContext.

Pour supprimer un contexte de transaction, appelez FltDeleteTransactionContext ou FltDeleteContext.

Pour définir un contexte de transaction, appelez FltSetTransactionContext.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Cette routine est disponible sur Windows Vista et versions ultérieures.
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque Fltmgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL

Voir aussi

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrePrepareComplete

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK