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

Подпрограмма ZwOpenResourceManager возвращает дескриптор существующему объекту Resource Manager.

Синтаксис

NTSYSCALLAPI NTSTATUS ZwOpenResourceManager(
  [out]          PHANDLE            ResourceManagerHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in]           HANDLE             TmHandle,
  [in]           LPGUID             ResourceManagerGuid,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes
);

Параметры

[out] ResourceManagerHandle

Указатель на переменную, выделенную вызывающим объектом, которая получает дескриптор resource manager в случае успешного вызова ZwOpenResourceManager .

[in] DesiredAccess

Значение ACCESS_MASK , указывающее запрошенный доступ вызывающей стороны к объекту Resource Manager. Дополнительные сведения о том, как указать этот параметр, см. в разделе Параметр DesiredAccessдля ZwCreateResourceManager. Этот параметр не может быть равен нулю.

[in] TmHandle

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

[in] ResourceManagerGuid

Указатель на GUID, который идентифицирует открываемого диспетчера ресурсов.

[in, optional] ObjectAttributes

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

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

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

Код возврата Описание
STATUS_OBJECT_TYPE_MISMATCH
Дескриптор, который указывает TmHandle , не является дескриптором объекта транзакции.
STATUS_INVALID_HANDLE
Дескриптор, который указывает TmHandle , недопустим.
STATUS_ACCESS_DENIED
Вызывающий объект не имеет соответствующего доступа к указанному объекту диспетчера транзакций.
STATUS_INVALID_PARAMETER
Параметр DesiredAccess равен нулю или недопустимый параметр ResourceManagerGuid .
STATUS_RESOURCEMANAGER_NOT_FOUND
Не удалось найти указанный диспетчер ресурсов.
STATUS_TRANSACTIONMANAGER_NOT_ONLINE
Указанный диспетчер транзакций не подключен к сети.
 

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

Комментарии

Как правило, компонент TPS вызывает ZwOpenResourceManager после получения GUID зачисления от другого компонента TPS, который ранее назывался ZwCreateResourceManager. Большинство проектов TPS не требуют вызова ZwOpenResourceManager.

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

Дополнительные сведения о ZwOpenResourceManager см. в разделе Объекты KTM.

NtOpenResourceManager и ZwOpenResourceManager — это две версии одной и той же подпрограммы системных служб 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)

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

InitializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwClose

ZwCreateResourceManager

ZwCreateTransactionManager

ZwOpenTransactionManager