Функция 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, если операция выполнена успешно. В противном случае эта подпрограмма может возвращать одно из следующих значений:
Код возврата | Описание |
---|---|
|
Указанный дескриптор не является дескриптором для объекта зачисления. |
|
Недопустимый дескриптор объекта. |
|
Транзакция или ее зачисление находится в неправильном состоянии. |
|
KTM добавил уведомление о фиксации, откате или сомнительном состоянии в очередь уведомлений диспетчера ресурсов, и диспетчер ресурсов не использует подпрограмму обратного вызова ResourceManagerNotification . |
|
Вызывающий объект не имеет соответствующего доступа к объекту зачисления. |
Подпрограмма может возвращать другие значения NTSTATUS.
Комментарии
Когда диспетчер ресурсов вызывает ZwRecoverEnlistment, KTM отправляет уведомление 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 могут вести себя по-разному, так как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между версиями процедуры NtXxx и ZwXxx см. в разделе Использование версий Nt и Zw для процедур собственных системных служб.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционной системы. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Правила соответствия DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
См. также раздел
Использование версий Nt и Zw собственных процедур системных служб