FltCommitFinalizeComplete, fonction (fltkernel.h)
La routine FltCommitFinalizeComplete reconnaît une notification TRANSACTION_NOTIFY_COMMIT_FINALIZE.
Syntaxe
NTSTATUS FLTAPI FltCommitFinalizeComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
Paramètres
[in] Instance
Pointeur opaque vers une instance d’un pilote minifilter. Ce paramètre est obligatoire et ne peut pas être NULL.
[in] Transaction
Pointeur opaque vers la transaction dans laquelle le pilote minifilter est actuellement inscrit. Ce paramètre est obligatoire et ne peut pas être NULL.
[in, optional] TransactionContext
Pointeur vers le contexte du pilote minifilter pour la transaction. Ce paramètre est facultatif et peut être NULL.
Valeur de retour
FltCommitFinalizeComplete retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :
Retourner le code | Description |
---|---|
|
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 TRANSACTION_NOTIFY_COMMIT_FINALIZE lorsque la transaction est entièrement validée (autrement dit, lorsque tous les gestionnaires de ressources associés à la transaction, tels que TxF, ont validé). Pour un pilote antivirus minifilter qui effectue des analyses en dehors des transactions, vous pouvez utiliser cette valeur de notification pour déterminer quand le pilote doit commencer à analyser les fichiers.
Pour envoyer la notification TRANSACTION_NOTIFY_COMMIT_FINALIZE au pilote minifilter, le gestionnaire de filtre appelle la routine TransactionNotificationCallback du pilote minifilter. Le pilote minifilter reconnaît cette notification de l’une des deux manières suivantes :
- La routine transactionNotificationCallback du pilote minifilter effectue tout traitement requis et retourne STATUS_SUCCESS. (Dans ce cas, le pilote minifilter n’appelle pas FltCommitFinalizeComplete.)
- Le transactionNotificationCallback du pilote minifilter publie routine tout traitement requis vers un thread de travail et retourne STATUS_PENDING. Après avoir effectué le traitement de façon asynchrone, la routine de thread de travail du pilote minifilter doit appeler FltCommitFinalizeComplete pour indiquer qu’elle a terminé ce traitement. Si la routine de thread de travail du pilote minifilter n’appelle pas FltCommitFinalizeComplete, certaines ressources système seront divulguées.
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.
Pour plus d’informations, consultez notifications de transactions.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Disponible dans Windows Vista Service Pack 1 (SP1) et versions ultérieures. |
plateforme cible | Universel |
d’en-tête | fltkernel.h (include Fltkernel.h) |
bibliothèque | Fltmgr.lib |
IRQL | <= APC_LEVEL |