Objets d’inscription

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, il 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 la Microsoft Windows SDK.

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

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

Les gestionnaires de ressources ferment leurs descripteurs aux objets d’inscription en appelant ZwClose. Si le dernier handle est fermé avant la validation de l’objet transaction associé, KTM envoie TRANSACTION_NOTIFY_ROLLBACK notifications à tous les gestionnaires de ressources qui ont un enrôlement pour la transaction.

Le système d’exploitation supprime l’objet une fois le dernier handle fermé et KTM a libéré toutes ses références à l’objet.