Fonction FltPrepareComplete (fltkernel.h)
La routine FltPrepareComplete reconnaît une notification TRANSACTION_NOTIFY_PREPARE.
Syntaxe
NTSTATUS FLTAPI FltPrepareComplete(
[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
FltPrepareComplete 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_PREPARE lorsque la transaction entre dans la phase de préparation de la validation. 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 FltPrepareComplete.
- 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 minifiltre doit appeler FltPrepareComplete pour indiquer qu’elle a terminé ce traitement. Si la routine de travail du pilote minifiltre n’appelle pas FltPrepareComplete, l’opération de préparation de transaction ne peut pas être effectuée par le gestionnaire de transactions du noyau.
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 | La routine FltPrepareComplete 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 | <= APC_LEVEL |