Функция NtOpenResourceManager (wdm.h)
Подпрограмма ZwOpenResourceManager возвращает дескриптор существующему объекту Resource Manager.
Синтаксис
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenResourceManager(
[out] PHANDLE ResourceManagerHandle,
[in] ACCESS_MASK DesiredAccess,
[in] HANDLE TmHandle,
[in] LPGUID ResourceManagerGuid,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes
);
Параметры
[out] ResourceManagerHandle
Указатель на переменную, выделенную вызывающим объектом, которая получает дескриптор диспетчера ресурсов в случае успешного вызова 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 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 собственных процедур системных служб