Partager via


FltPrePrepareComplete, fonction (fltkernel.h)

La routine FltPrePrepareComplete reconnaît une notification TRANSACTION_NOTIFY_PREPREPARE.

Syntaxe

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

Paramètres

[in] Instance

Pointeur d’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 minifilter.

Valeur de retour

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

Retourner le code Description
STATUS_NOT_FOUND
Le pilote minifilter n’a pas défini de contexte sur la transaction. Il s’agit d’un code d’erreur.

Remarques

Un pilote minifilter inscrit dans une transaction peut recevoir une notification de TRANSACTION_NOTIFY_PREPREPARE lorsque la transaction entre dans la phase de préparation préalable à la validation. Pour envoyer la notification au pilote minifilter, le gestionnaire de filtre appelle le transactionNotificationCallback du pilote minifilter routine. Le pilote minifilter reconnaît cette notification de l’une des deux manières suivantes :

  • La routine TransactionNotificationCallback du pilote minifilter effectue tout traitement nécessaire et retourne STATUS_SUCCESS. Dans ce cas, le pilote minifilter n’appelle pas FltPrePrepareComplete.
  • Le pilote minifilter TransactionNotificationCallback la routine publie tout traitement nécessaire sur un thread de travail et retourne STATUS_PENDING. Après avoir effectué le traitement de façon asynchrone, la routine de travail du pilote minifilter doit appeler FltPrePrepareComplete pour indiquer qu’il a terminé ce traitement. Si la routine de travail du pilote minifilter n’appelle pas FltPrePrepareComplete, l’opération de pré-préparation de transaction ne peut pas être effectuée par le gestionnaire de transactions du noyau.
Pour inscrire une routine de TransactionNotificationCallback, un 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 passe en tant que 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.

Exigences

Exigence Valeur
client minimum pris en charge Cette routine est disponible sur Windows Vista et versions ultérieures.
plateforme cible Universel
d’en-tête fltkernel.h (include Fltkernel.h)
bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Voir aussi

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK