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


Функция NtCommitEnlistment (wdm.h)

Подпрограмма ZwCommitEnlistment инициирует операцию фиксации для транзакции указанного зачисления.

Синтаксис

__kernel_entry NTSYSCALLAPI NTSTATUS NtCommitEnlistment(
  [in]           HANDLE         EnlistmentHandle,
  [in, optional] PLARGE_INTEGER TmVirtualClock
);

Параметры

[in] EnlistmentHandle

Дескриптор объекта зачисления , который был получен при предыдущем вызове ZwCreateEnlistment или ZwOpenEnlistment. Объект должен представлять высшее зачисление , а дескриптор должен иметь ENLISTMENT_SUPERIOR_RIGHTS доступ к объекту.

[in, optional] TmVirtualClock

Указатель на значение виртуальных часов. Этот параметр является необязательным и может иметь значение NULL.

Возвращаемое значение

ZwCommitEnlistment возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае эта подпрограмма может вернуть одно из следующих значений:

Код возврата Описание
STATUS_OBJECT_TYPE_MISMATCH
Указанный дескриптор не является дескриптором объекта зачисления.
STATUS_INVALID_HANDLE
Недопустимый дескриптор объекта.
STATUS_ACCESS_DENIED
Вызывающий объект не имеет соответствующего доступа к объекту зачисления.
STATUS_ENLISTMENT_NOT_SUPERIOR
Вызывающий объект не является превосходным диспетчером транзакций для зачисления.
STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED
Вызывающий объект не зарегистрировался для получения уведомлений TRANSACTION_NOTIFY_COMMIT_COMPLETE.
STATUS_TRANSACTION_REQUEST_NOT_VALID
Транзакция зачисления не находится в состоянии, позволяющем ее зафиксировать.
STATUS_TRANSACTION_NOT_ACTIVE
Операция фиксации для этой транзакции уже запущена.
STATUS_TRANSACTION_ALREADY_ABORTED
Транзакция не может быть зафиксирована, так как она была выполнена откатом.
 

Подпрограмма может возвращать другие значения NTSTATUS.

Комментарии

Вызов ZwCommitEnlistment может выполняться только вышестоящими диспетчерами транзакций.

Вызывающие ZwCommitEnlistment должны зарегистрироваться для получения уведомлений TRANSACTION_NOTIFY_COMMIT_COMPLETE.

Подпрограмма ZwCommitEnlistment позволяет KTM отправлять уведомления TRANSACTION_NOTIFY_COMMIT всем менеджерам ресурсов, которые включились в транзакцию.

Дополнительные сведения о ZwCommitEnlistment см. в разделах Создание диспетчера транзакций уровня Superior и Обработка операций фиксации.

Для вызовов из драйверов режима ядра версии NtXxx и ZwXxx подпрограммы Собственные системные службы Windows могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями подпрограмм NtXxx и ZwXxx см. в разделе Использование версий NT и Zw подпрограмм собственных системных служб.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Vista и более поздних версиях операционной системы.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Правила соответствия DDI HwStorPortProhibitedDIs, PowerIrpDDis

См. также раздел

TmCommitEnlistment

Использование версий nt и Zw собственных системных служб

ZwCreateEnlistment

ZwOpenEnlistment