Поделиться через


Объекты транзакций

Объекты транзакций представляют транзакции. Транзакционный клиент создает транзакцию, выполняет определенную работу, а также фиксирует или откатывает транзакцию.

KTM предоставляет набор подпрограмм объекта транзакций, которые могут вызывать транзакционные клиенты в режиме ядра. KTM также предоставляет аналогичный набор процедур пользовательского режима, которые могут вызывать приложения пользовательского режима. Дополнительные сведения о процедурах пользовательского режима см. в Microsoft Windows SDK.

KTM создает объект транзакции, когда клиент вызывает ZwCreateTransaction. Клиент может вызвать ZwCommitTransaction или ZwRollbackTransaction для фиксации или отката транзакции.

Компоненты TPS могут вызывать ZwOpenTransaction , чтобы открыть дополнительные дескрипторы для объекта транзакции.

Клиенты закрывают дескрипторы для объектов транзакций, вызывая ZwClose. Если последний дескриптор закрывается до фиксации объекта транзакции, KTM отправляет TRANSACTION_NOTIFY_ROLLBACK уведомления всем диспетчерам ресурсов, у которых есть зачисление для транзакции.

Операционная система удаляет объект после закрытия последнего дескриптора, а KTM освобождает все свои ссылки на объект.