Compartilhar via


Função NtOpenResourceManager (wdm.h)

A rotina ZwOpenResourceManager retorna um identificador para um objeto do gerenciador de recursos existente.

Sintaxe

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

Parâmetros

[out] ResourceManagerHandle

Um ponteiro para uma variável alocada pelo chamador que recebe o identificador do gerenciador de recursos se a chamada para ZwOpenResourceManager for bem-sucedida.

[in] DesiredAccess

Um valor ACCESS_MASK que especifica o acesso solicitado pelo chamador ao objeto do gerenciador de recursos. Para obter mais informações sobre como especificar esse parâmetro, consulte o parâmetro DesiredAccess de ZwCreateResourceManager. Esse parâmetro não pode ser zero.

[in] TmHandle

Um identificador para um objeto do gerenciador de transações obtido por uma chamada anterior para ZwCreateTransactionManager ou ZwOpenTransactionManager.

[in] ResourceManagerGuid

Um ponteiro para o GUID que identifica o gerenciador de recursos a ser aberto.

[in, optional] ObjectAttributes

Um ponteiro para uma estrutura OBJECT_ATTRIBUTES que especifica os atributos do objeto. Use a rotina InitializeObjectAttributes para inicializar essa estrutura, mas especifique apenas os parâmetros InitializedAttributes e Attributes dessa rotina. Se o chamador não estiver em execução em um contexto de thread do sistema, ele deverá definir o sinalizador OBJ_KERNEL_HANDLE no parâmetro Attributes . Esse parâmetro é opcional e pode ser NULL.

Retornar valor

ZwOpenResourceManager retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, essa rotina pode retornar um dos seguintes valores:

Código de retorno Descrição
STATUS_OBJECT_TYPE_MISMATCH
O identificador especificado por TmHandle não é um identificador para um objeto de transação.
STATUS_INVALID_HANDLE
O identificador especificado por TmHandle é inválido.
STATUS_ACCESS_DENIED
O chamador não tem acesso apropriado ao objeto do gerenciador de transações especificado.
STATUS_INVALID_PARAMETER
O parâmetro DesiredAccess é zero ou o parâmetro ResourceManagerGuid é inválido.
STATUS_RESOURCEMANAGER_NOT_FOUND
Não foi possível encontrar o gerenciador de recursos especificado.
STATUS_TRANSACTIONMANAGER_NOT_ONLINE
O gerenciador de transações especificado não está online.
 

A rotina pode retornar outros valores NTSTATUS.

Comentários

Normalmente, um componente TPS chama ZwOpenResourceManager depois de receber um GUID de inscrição de outro componente TPS que anteriormente havia chamado ZwCreateResourceManager. A maioria dos designs de TPS não exige a chamada de ZwOpenResourceManager.

Um gerenciador de recursos que chama ZwOpenResourceManager deve eventualmente chamar ZwClose para fechar o identificador de objeto.

Para obter mais informações sobre ZwOpenResourceManager, consulte Objetos KTM.

NtOpenResourceManager e ZwOpenResourceManager são duas versões da mesma rotina dos Serviços do Sistema Nativo do Windows.

Para chamadas de drivers no modo kernel, as versões NtXxx e ZwXxx de uma rotina dos Serviços do Sistema Nativo do Windows podem se comportar de forma diferente na maneira como lidam e interpretam parâmetros de entrada. Para obter mais informações sobre a relação entre as versões NtXxx e ZwXxx de uma rotina, consulte Usando versões Nt e Zw das rotinas dos Serviços de Sistema Nativo.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows Vista e versões posteriores do sistema operacional.
Plataforma de Destino Universal
Cabeçalho wdm.h (inclua Wdm.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade de DDI HwStorPortProhibitedDIs, PowerIrpDDis

Confira também

InitializeObjectAttributes

OBJECT_ATTRIBUTES

Usando versões Nt e Zw das rotinas dos Serviços de Sistema Nativo

ZwClose

ZwCreateResourceManager

ZwCreateTransactionManager

ZwOpenTransactionManager