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

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

Синтаксис

NTSYSCALLAPI NTSTATUS ZwRollforwardTransactionManager(
  [in]           HANDLE         TransactionManagerHandle,
  [in, optional] PLARGE_INTEGER TmVirtualClock
);

Параметры

[in] TransactionManagerHandle

Дескриптор объекта диспетчера транзакций , полученный при предыдущем вызове ZwCreateTransactionManager или ZwOpenTransactionManager. Дескриптор должен иметь TRANSACTIONMANAGER_RECOVER доступ к объекту .

[in, optional] TmVirtualClock

Указатель на значение виртуальных часов. Этот параметр является необязательным и может иметь значение NULL. Дополнительные сведения об этом параметре см. в следующем разделе Примечаний.

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

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

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

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

Комментарии

Подпрограмма ZwRollforwardTransactionManager восстанавливает все зарегистрированные действия, которые KTM находит в файле журнала диспетчера транзакций, вплоть до значения виртуальных часов, которое предоставляет параметр TmVirtualClock .

Компонент может постепенно перемещаться по файлу журнала, вызывая ZwRollforwardTransactionManager повторно и устанавливая для параметра VirtualClock более высокое значение перед каждым вызовом.

Если параметр TmVirtualClock имеет значение NULL, вызов ZwRollforwardTransactionManager эквивалентен вызову ZwRecoverTransactionManager.

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

NtRollforwardTransactionManager и ZwRollforwardTransactionManager — это две версии одной и той же подпрограммы системных служб Windows Native. Подпрограмма NtRollforwardTransactionManager в ядре Windows недоступна напрямую для драйверов режима ядра. Однако драйверы режима ядра могут получить доступ к этой подпрограмме косвенно, вызвав подпрограмму ZwRollforwardTransactionManager .

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

Требования

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

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

TmRecoverTransactionManager

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

ZwCreateTransactionManager

ZwOpenTransactionManager

ZwRecoverTransactionManager