Fonction FltCommitFinalizeComplete (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 un instance d’un pilote de minifiltre. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.
[in] Transaction
Pointeur opaque vers la transaction dans laquelle le pilote minifiltre est actuellement inscrit. Ce paramètre est obligatoire et ne peut pas avoir la valeur NULL.
[in, optional] TransactionContext
Pointeur vers le contexte du pilote de minifiltre pour la transaction. Ce paramètre est facultatif et peut être NULL.
Valeur retournée
FltCommitFinalizeComplete retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple :
Code de retour | Description |
---|---|
|
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_COMMIT_FINALIZE 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). Pour un pilote de minifiltre antivirus qui effectue des analyses en dehors des transactions, vous pouvez utiliser cette valeur de notification pour déterminer quand le pilote doit commencer l’analyse des fichiers.
Pour envoyer la notification TRANSACTION_NOTIFY_COMMIT_FINALIZE 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 tout traitement requis et retourne STATUS_SUCCESS. (Dans ce cas, le pilote minifilter n’appelle pas FltCommitFinalizeComplete.)
- La routine TransactionNotificationCallback du pilote minifiltre publie tout traitement requis dans un thread worker et retourne STATUS_PENDING. Après avoir effectué le traitement de manière asynchrone, la routine de thread de travail du pilote minifiltre doit appeler FltCommitFinalizeComplete pour indiquer qu’elle a terminé ce traitement. Si la routine de thread de travail du pilote minifiltre 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 transaction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista Service Pack 1 (SP1) et versions ultérieures. |
Plateforme cible | Universal |
En-tête | fltkernel.h (inclure Fltkernel.h) |
Bibliothèque | Fltmgr.lib |
IRQL | <= APC_LEVEL |