Функция ZwOpenTransaction (wdm.h)
Подпрограмма ZwOpenTransaction получает дескриптор существующего объекта транзакции.
Синтаксис
NTSYSCALLAPI NTSTATUS ZwOpenTransaction(
[out] PHANDLE TransactionHandle,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in] LPGUID Uow,
[in, optional] HANDLE TmHandle
);
Параметры
[out] TransactionHandle
Указатель на переменную, выделенную вызывающим объектом, которая получает дескриптор объекта транзакции, если ZwOpenTransaction возвращает STATUS_SUCCESS.
[in] DesiredAccess
Значение ACCESS_MASK , указывающее запрошенный доступ вызывающего объекта к объекту транзакции. Сведения о том, как указать этот параметр, см. в разделе Параметр DesiredAccessобъекта ZwCreateTransaction.
[in, optional] ObjectAttributes
Указатель на структуру OBJECT_ATTRIBUTES , указывающую атрибуты объекта. Используйте подпрограмму InitializeObjectAttributes для инициализации этой структуры, но укажите только параметры InitializedAttributes и Attributes этой подпрограммы . Если вызывающий объект не выполняется в контексте системного потока, он должен задать флаг OBJ_KERNEL_HANDLE в параметре Attributes . Параметр ObjectAttributes является необязательным и может иметь значение NULL.
[in] Uow
Указатель на GUID, который является идентификатором единицы работы объекта транзакции (UOW). Этот GUID идентифицирует объект транзакции для открытия.
[in, optional] TmHandle
Дескриптор объекта диспетчера транзакций. Если этот параметр не имеет значение NULL, KTM выполняет поиск только объектов транзакций, принадлежащих указанному объекту диспетчера транзакций. Если этот параметр имеет значение NULL, KTM выполняет поиск по всем объектам транзакций.
Возвращаемое значение
При успешном выполнении операции ZwCreateTransaction возвращает STATUS_SUCCESS. В противном случае эта подпрограмма может вернуть одно из следующих значений:
Код возврата | Описание |
---|---|
|
Параметр DesiredAccess или Uow равен нулю. |
|
Указанный дескриптор не является дескриптором объекта транзакции. |
|
Недопустимый дескриптор объекта. |
|
KTM не удалось найти объект транзакции. |
|
Недопустимое значение параметра DesiredAccess . |
Подпрограмма может возвращать другие значения NTSTATUS.
Комментарии
Как правило, диспетчер ресурсов вызывает ZwOpenTransaction после получения UOW транзакции от транзакционного клиента, который ранее назывался ZwCreateTransaction.
Дополнительные сведения о ZwOpenTransaction см. в разделе Создание Resource Manager.
NtOpenTransaction и ZwOpenTransaction — это две версии одной и той же подпрограммы системных служб 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(storport), PowerIrpDDis(wdm) |