Функция 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, если операция выполнена успешно. В противном случае эта подпрограмма может возвращать одно из следующих значений:
Код возврата | Описание |
---|---|
|
Недопустимое значение входного параметра. |
|
KTM не удалось выделить системные ресурсы (обычно это память). |
|
Недопустимое имя объекта, указанное в параметре ObjectAttributes . |
|
KTM обнаружил ошибку при создании или открытии файла журнала. |
|
Недопустимое значение параметра DesiredAccess . |
Подпрограмма может возвращать другие значения NTSTATUS.
Комментарии
Вызывающий объект может определить, какой объект диспетчера транзакций следует открыть, используя один из следующих трех методов:
- Используйте параметр LogFileName , чтобы указать путь и имя файла потока файлов журнала, созданного при создании объекта диспетчера транзакций.
- Используйте параметр TmIdentity , чтобы указать GUID, идентифицирующий объект диспетчера транзакций.
- Используйте параметр ObjectAttributes для предоставления структуры OBJECT_ATTRIBUTES , содержащей имя объекта, которое вызывающий объект ранее указал для подпрограммы ZwCreateTransactionManager .
Компонент 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 |
См. также раздел
Использование версий Nt и Zw собственных процедур системных служб