FltEnlistInTransaction, fonction (fltkernel.h)
Le FltEnlistInTransaction routine inscrit un pilote minifilter dans une transaction donnée.
NTSTATUS FLTAPI FltEnlistInTransaction(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in] PFLT_CONTEXT TransactionContext,
[in] NOTIFICATION_MASK NotificationMask
);
[in] Instance
Pointeur d’instance opaque pour l’appelant. Ce paramètre est obligatoire et ne peut pas être NULL.
[in] Transaction
Pointeur de transaction opaque pour la transaction.
[in] TransactionContext
Pointeur vers le contexte de transaction du pilote minifilter. Ce paramètre est obligatoire et ne peut pas être NULL.
[in] NotificationMask
Spécifie le type de notifications que le gestionnaire de filtres doit envoyer au pilote minifilter, en tant qu’une ou plusieurs des valeurs répertoriées dans le tableau suivant. Ce paramètre est obligatoire et ne peut pas être égal à zéro.
Valeur | Signification |
---|---|
TRANSACTION_NOTIFY_COMMIT | Cette notification est envoyée lorsque la transaction est validée. |
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 (autrement dit, lorsque tous les gestionnaires de ressources associés à la transaction, tels que TxF, ont validé). |
TRANSACTION_NOTIFY_PREPARE | Cette notification est envoyée lorsque la transaction a entré la phase de préparation à la validation. |
TRANSACTION_NOTIFY_PREPREPARE | Cette notification est envoyée lorsque la transaction a entré 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. |
FLT_MAX_TRANSACTION_NOTIFICATIONS | TRANSACTION_NOTIFY_COMMIT | TRANSACTION_NOTIFY_PREPARE | TRANSACTION_NOTIFY_PREPREPARE | TRANSACTION_NOTIFY_ROLLBACK |
FltEnlistInTransaction retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, par exemple l’une des valeurs suivantes :
Retourner le code | Description |
---|---|
|
L’appelant est déjà inscrit dans la transaction. Il s’agit d’un code d’erreur. |
|
L’instance spécifiée dans le paramètre Instance est détruite. Il s’agit d’un code d’erreur. |
|
FltEnlistInTransaction rencontré une erreur d’allocation de pool. Il s’agit d’un code d’erreur. |
|
L’appelant n’a pas inscrit de routine TransactionNotificationCallback. Il s’agit d’un code d’erreur. |
|
L’appelant a spécifié une valeur non valide pour le paramètre NotificationMask. Il s’agit d’un code d’erreur. |
Un pilote minifilter appelle FltEnlistInTransaction pour s’inscrire dans une transaction. Avant d’appeler FltEnlistInTransaction, le pilote minifilter doit avoir inscrit une routine TransactionNotificationCallback. Sinon, l’appel à FltEnlistInTransaction échoue.
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 restaurer ou abandonner une transaction, appelez FltRollbackEnlistment.
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.
Exigence | Valeur |
---|---|
client minimum pris en charge | Cette routine est disponible sur Windows Vista et les versions ultérieures de Windows. |
plateforme cible | Universel |
d’en-tête | fltkernel.h (include Fltkernel.h) |
bibliothèque | FltMgr.lib |
DLL | FltMgr.sys |
IRQL | <= APC_LEVEL |