Функция 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, если операция выполнена успешно. В противном случае эта подпрограмма может вернуть одно из следующих значений:
Код возврата | Описание |
---|---|
|
Дескриптор, который указывает TmHandle , не является дескриптором объекта транзакции. |
|
Дескриптор, который указывает TmHandle , недопустим. |
|
Вызывающий объект не имеет соответствующего доступа к указанному объекту диспетчера транзакций. |
|
Параметр DesiredAccess равен нулю или недопустимый параметр ResourceManagerGuid . |
|
Не удалось найти указанный диспетчер ресурсов. |
|
Указанный диспетчер транзакций не подключен к сети. |
Подпрограмма может возвращать другие значения 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) |