Partager via


PFLT_TRANSACTION_NOTIFICATION_CALLBACK fonction de rappel (fltkernel.h)

Un pilote minifilter peut inscrire une routine de type PFLT_TRANSACTION_NOTIFICATION_CALLBACK en tant que routine TransactionNotificationCallback .

Syntaxe

PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;

NTSTATUS PfltTransactionNotificationCallback(
  [in] PCFLT_RELATED_OBJECTS FltObjects,
  [in] PFLT_CONTEXT TransactionContext,
  [in] ULONG NotificationMask
)
{...}

Paramètres

[in] FltObjects

Pointeur vers une structure FLT_RELATED_OBJECTS qui contient des pointeurs opaques pour les objets liés à l’opération en cours.

[in] TransactionContext

Pointeur vers le contexte de transaction du pilote minifilter.

[in] NotificationMask

Spécifie le type de notifications que le gestionnaire de filtres envoie au pilote minifilter, comme l’une des valeurs suivantes.

Valeur Signification
TRANSACTION_NOTIFY_COMMIT Cette notification est envoyée lorsque la transaction est en cours de validation.
TRANSACTION_NOTIFY_COMMIT_FINALIZE Pour Windows Vista SP1 et versions ultérieures, cette notification est envoyée lorsque la transaction est entièrement validée (c’est-à-dire lorsque tous les gestionnaires de ressources associés à la transaction, tels que TxF, l’ont validée).
TRANSACTION_NOTIFY_PREPARE Cette notification est envoyée lorsque la transaction entre dans la phase de préparation à la validation.
TRANSACTION_NOTIFY_PREPREPARE Cette notification est envoyée lorsque la transaction entre dans la phase de préparation préalable à la validation.
TRANSACTION_NOTIFY_ROLLBACK Cette notification est envoyée lorsque la transaction est restaurée ou abandonnée.

Valeur retournée

La routine PFLT_TRANSACTION_NOTIFICATION_CALLBACK retourne l’une des valeurs NTSTATUS suivantes :

Code de retour Description
STATUS_SUCCESS
Le renvoi de cette valeur status indique que le pilote minifilter a terminé la transaction. Il s’agit d’un code de réussite.
STATUS_PENDING
Le renvoi de cette valeur status indique que le pilote minifilter n’est pas encore terminé avec la transaction. Il s’agit d’un code de réussite.

Remarques

Lorsqu’un pilote minifilter s’inscrit lui-même en appelant FltRegisterFilter à partir de sa routine DriverEntry , il peut inscrire une routine de type PFLT_TRANSACTION_NOTIFICATION_CALLBACK en tant que routine TransactionNotificationCallback du minifilter.

Pour inscrire la routine TransactionNotificationCallback , le pilote minifilter stocke l’adresse d’une routine de type PFLT_TRANSACTION_NOTIFICATION_CALLBACK dans le membre TransactionNotificationCallback de la structure FLT_REGISTRATION que le pilote minifilter transmet comme paramètre Registration de FltRegisterFilter.

Le gestionnaire de filtres appelle cette routine pour informer le pilote minifilter de la status d’une transaction dans laquelle le pilote minifilter est inscrit.

Si le pilote minifilter retourne STATUS_PENDING de cette routine de rappel, il doit appeler l’une des routines suivantes pour indiquer qu’il a terminé de traiter la notification :

FltCommitComplete

FltPrepareComplete

FltPrePrepareComplete

FltRollbackComplete

Configuration requise

Condition requise Valeur
Client minimal pris en charge La routine PFLT_TRANSACTION_NOTIFICATION_CALLBACK est disponible sur Windows Vista et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
En-tête fltkernel.h (inclure Fltkernel.h)
IRQL PASSIVE_LEVEL

Voir aussi

FLT_REGISTRATION

FLT_RELATED_OBJECTS

FltCommitComplete

FltPrePrepareComplete

FltPrepareComplete

FltRegisterFilter

FltRollbackComplete