Compartilhar via


Objetos de alistamento

Um objeto de inscrição representa a inscrição de um gerenciador de recursos para uma transação. Antes que um gerenciador de recursos possa receber notificações sobre os eventos de uma transação, o gerenciador de recursos deve chamar ZwCreateEnlistment para criar uma inscrição para a transação.

A KTM fornece um conjunto de rotinas de objeto de alistamento que os gerenciadores de recursos do modo kernel podem chamar. O KTM também fornece um conjunto semelhante de rotinas de modo de usuário que os aplicativos de modo de usuário podem chamar. Para obter mais informações sobre as rotinas de modo de usuário, consulte o SDK do Microsoft Windows.

A KTM cria um objeto de inscrição quando um gerenciador de recursos chama ZwCreateEnlistment para se inscrever em uma transação que o gerenciador de recursos recebeu (normalmente de um cliente transacional).

Os componentes TPS podem chamar ZwOpenEnlistment para abrir identificadores adicionais para um objeto de inscrição. Mas a maioria dos projetos de TPS não exige identificadores abertos adicionais.

Os gerenciadores de recursos fecham seus identificadores para objetos de alistamento chamando ZwClose. Se o último identificador for fechado antes que o objeto de transação associado tenha sido confirmado, a KTM enviará notificações TRANSACTION_NOTIFY_ROLLBACK a todos os gerenciadores de recursos que têm um alistamento para a transação.

O sistema operacional exclui o objeto depois que o último identificador é fechado e a KTM libera todas as suas referências ao objeto.