Objetos de inscrição

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.

O KTM fornece um conjunto de rotinas de objeto de inscrição 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.

O 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 do TPS podem chamar ZwOpenEnlistment para abrir identificadores adicionais para um objeto de inscrição. Mas a maioria dos designs de TPS não exige identificadores abertos adicionais.

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

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