Partager via


Objets d'enrôlement

Un objet d’inscription représente l’inscription d’un gestionnaire de ressources à une transaction. Avant qu’un gestionnaire de ressources puisse recevoir des notifications sur les événements d’une transaction, le gestionnaire de ressources doit appeler ZwCreateEnlistment pour créer une inscription à la transaction.

KTM fournit un ensemble de routines d’objets d’inscription que les gestionnaires de ressources en mode noyau peuvent appeler. KTM fournit également un ensemble similaire de routines en mode utilisateur que les applications en mode utilisateur peuvent appeler. Pour plus d’informations sur les routines en mode utilisateur, consultez le Kit de développement logiciel (SDK) Microsoft Windows.

KTM crée un objet d’inscription lorsqu’un gestionnaire de ressources appelle ZwCreateEnlistment pour s’inscrire dans une transaction reçue par le gestionnaire de ressources (généralement à partir d’un client transactionnel).

Les composants TPS peuvent appeler ZwOpenEnlistment pour ouvrir des handles supplémentaires à un objet d’inscription. Toutefois, la plupart des conceptions TPS ne nécessitent pas de poignées ouvertes supplémentaires.

Les gestionnaires de ressources ferment leurs handles pour inscrire des objets en appelant ZwClose. Si le dernier handle est fermé avant la validation de l’objet transactionnel associé, KTM envoie TRANSACTION_NOTIFY_ROLLBACK notifications à tous les gestionnaires de ressources qui ont une inscription pour la transaction.

Le système d’exploitation supprime l’objet après la fermeture du dernier handle et KTM a publié toutes ses références à l’objet.