Функция NtPrePrepareEnlistment (wdm.h)
Подпрограмма ZwPrePrepareEnlistment инициирует операцию предварительной подготовки для транзакции указанного зачисления.
Синтаксис
__kernel_entry NTSYSCALLAPI NTSTATUS NtPrePrepareEnlistment(
[in] HANDLE EnlistmentHandle,
[in, optional] PLARGE_INTEGER TmVirtualClock
);
Параметры
[in] EnlistmentHandle
Дескриптор объекта зачисления , который был получен при предыдущем вызове ZwCreateEnlistment или ZwOpenEnlistment. Объект должен представлять высшее зачисление , а дескриптор должен иметь ENLISTMENT_SUPERIOR_RIGHTS доступ к объекту.
[in, optional] TmVirtualClock
Указатель на значение виртуальных часов. Этот параметр является необязательным и может иметь значение NULL.
Возвращаемое значение
ZwPrePrepareEnlistment возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае эта подпрограмма может вернуть одно из следующих значений:
Код возврата | Описание |
---|---|
|
Вызывающий объект не является превосходным диспетчером транзакций для зачисления. |
|
Вызывающий объект не зарегистрировался для получения уведомлений TRANSACTION_NOTIFY_PREPREPARE_COMPLETE. |
|
Указанный дескриптор не является дескриптором объекта зачисления. |
|
Недопустимый дескриптор объекта. |
|
Вызывающий объект не имеет соответствующего доступа к объекту зачисления. |
|
Транзакция зачисления не находится в состоянии, позволяющем ей перейти на этап подготовки. |
Подпрограмма может возвращать другие значения NTSTATUS.
Комментарии
Вызывать ZwPrePrepareEnlistment могут только диспетчеры транзакций более высокого звена.
Вызывающие ZwPrePrepareEnlistment должны зарегистрироваться для получения уведомлений TRANSACTION_NOTIFY_PREPREPARE_COMPLETE.
Подпрограмма ZwPrePrepareEnlistment заставляет KTM отправлять уведомления TRANSACTION_NOTIFY_PREPREPARE всем диспетчерам ресурсов, которые включились в транзакцию.
Дополнительные сведения о ZwPrePrepareEnlistment см. в разделах Создание превосходного диспетчера транзакций и Обработка операций фиксации.
NtPrepareEnlistment и ZwPrepareEnlistment — это две версии одной и той же подпрограммы системных служб Windows Native.
Для вызовов из драйверов режима ядра версии 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 |