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


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

Подпрограмма ZwOpenTransactionManager получает дескриптор существующего объекта диспетчера транзакций.

Синтаксис

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenTransactionManager(
  [out]          PHANDLE            TmHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in, optional] PUNICODE_STRING    LogFileName,
  [in, optional] LPGUID             TmIdentity,
  [in, optional] ULONG              OpenOptions
);

Параметры

[out] TmHandle

Указатель на переменную, выделенную вызывающим объектом, которая получает дескриптор объекта диспетчера транзакций , если ZwOpenTransactionManager возвращает STATUS_SUCCESS.

[in] DesiredAccess

Значение ACCESS_MASK , указывающее запрошенный доступ вызывающего объекта к объекту диспетчера транзакций. Сведения о том, как указать этот параметр, см. в разделе Параметр DesiredAccessобъекта ZwCreateTransactionManager.

[in, optional] ObjectAttributes

Указатель на структуру OBJECT_ATTRIBUTES , указывающую имя объекта и другие атрибуты. Используйте подпрограмму InitializeObjectAttributes для инициализации этой структуры. Если вызывающий объект не выполняется в контексте системного потока, он должен задать атрибут OBJ_KERNEL_HANDLE при вызове InitializeObjectAttributes. Этот параметр является необязательным и может иметь значение NULL.

[in, optional] LogFileName

Указатель на структуру UNICODE_STRING , содержащую путь и имя файла потока файлов журнала , созданного при создании объекта диспетчера транзакций. Дополнительные сведения см. в разделе Параметр LogFileNameдля ZwCreateTransactionManager. Этот параметр является необязательным и может иметь значение NULL.

[in, optional] TmIdentity

Указатель на GUID, идентифицирующий объект диспетчера транзакций. Этот параметр является необязательным и может иметь значение NULL.

[in, optional] OpenOptions

Этот параметр не используется и должен быть равен нулю.

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

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

Код возврата Описание
STATUS_INVALID_PARAMETER
Недопустимое значение входного параметра.
STATUS_INSUFFICIENT_RESOURCES
KTM не удалось выделить системные ресурсы (обычно это память).
STATUS_OBJECT_NAME_INVALID
Недопустимое имя объекта, указанное в параметре ObjectAttributes .
STATUS_LOG_CORRUPTION_DETECTED
KTM обнаружил ошибку при создании или открытии файла журнала.
STATUS_ACCESS_DENIED
Недопустимое значение параметра DesiredAccess .
 

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

Комментарии

Вызывающий объект может определить, какой объект диспетчера транзакций следует открыть, используя один из следующих трех методов:

  • Используйте параметр LogFileName , чтобы указать путь и имя файла потока файлов журнала, созданного при создании объекта диспетчера транзакций.
  • Используйте параметр TmIdentity , чтобы указать GUID, идентифицирующий объект диспетчера транзакций.
  • Используйте параметр ObjectAttributes для предоставления структуры OBJECT_ATTRIBUTES , содержащей имя объекта, которое вызывающий объект ранее указал для подпрограммы ZwCreateTransactionManager .
Необходимо указать только один из перечисленных выше параметров (имя объекта, имя файла журнала или GUID) и задать для двух других параметров значение NULL.

Компонент TPS должен вызвать ZwRecoverTransactionManager после вызова ZwOpenTransactionManager.

Компонент TPS, вызывающий ZwOpenTransactionManager , должен в конечном итоге вызвать ZwClose , чтобы закрыть дескриптор объекта.

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

NtOpenTransactionManager и ZwOpenTransactionManager — это две версии одной и той же подпрограммы windows Native System Services.

Для вызовов из драйверов режима ядра версии 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

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

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

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

ZwClose

ZwCreateTransactionManager

ZwQueryInformationTransactionManager