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


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

Программа ZwRecoverEnlistment инициирует операцию восстановления для транзакции, связанной с указанным перечислением.

Синтаксис

__kernel_entry NTSYSCALLAPI NTSTATUS NtRecoverEnlistment(
  [in]           HANDLE EnlistmentHandle,
  [in, optional] PVOID  EnlistmentKey
);

Параметры

[in] EnlistmentHandle

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

[in, optional] EnlistmentKey

Указатель на значение ключа перечисления, указанное ранее в качестве параметра EnlistmentKey, на ZwCreateEnlistment. Этот параметр является необязательным и может быть null, если диспетчер ресурсов не предоставил ключ перечисления при вызове ZwCreateEnlistment.

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

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

Возвращаемый код Описание
STATUS_OBJECT_TYPE_MISMATCH
Указанный дескриптор не является дескриптором объекта перечисления.
STATUS_INVALID_HANDLE
Дескриптор объекта недопустим.
STATUS_TRANSACTION_REQUEST_NOT_VALID
Транзакция или его перечисление не находится в правильном состоянии.
STATUS_PENDING
KTM добавила уведомление о фиксации, откате или с сомнением в очередь уведомлений диспетчера ресурсов, а диспетчер ресурсов не использует подпрограмму обратного вызова ResourceManagerNot ification.
STATUS_ACCESS_DENIED
Вызывающий объект не имеет соответствующего доступа к объекту перечисления.
 

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

Замечания

После вызова диспетчера ресурсов ZwRecoverEnlistmentKTM предоставляет TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK или TRANSACTION_NOTIFY_INDOUBT уведомления для зачисления. Поэтому если диспетчер ресурсов не использует подпрограмму обратного вызова ResourceManagerNotification, он должен немедленно вызывать ZwGetNotificationResourceManager, если ZwRecoverEnlistment возвращает STATUS_SUCCESS или STATUS_PENDING.

Дополнительные сведения о ZwRecoverEnlistmentсм. в разделе Обработка операций восстановления.

NtRecoverEnlistment и ZwRecoverEnlistment являются двумя версиями одной подпрограммы windows Native System Services.

Для вызовов драйверов в режиме ядра NtXxx и ZwXxx версии подпрограммы Windows Native System Services могут вести себя по-разному в том, как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между NtXxx и ZwXxx версиями подпрограммы см. в разделе Using Nt and Zw Versions of the Native System Services Routines.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно в Windows Vista и более поздних версиях операционной системы.
целевая платформа Всеобщий
заголовка wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
правил соответствия DDI HwStorPortProhibitedDDIs, PowerIrpDDis

См. также

ResourceManagerNotification

TmRecoverEnlistment

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

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment