Compartilhar via


Função NtOpenTransaction (wdm.h)

A rotina de ZwOpenTransaction obtém um identificador para um objeto de transação existente.

Sintaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenTransaction(
  [out]          PHANDLE            TransactionHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in]           LPGUID             Uow,
  [in, optional] HANDLE             TmHandle
);

Parâmetros

[out] TransactionHandle

Um ponteiro para uma variável alocada por chamador que recebe um identificador para o objeto de transação se ZwOpenTransaction retorna STATUS_SUCCESS.

[in] DesiredAccess

Um valor ACCESS_MASK que especifica o acesso solicitado do chamador ao objeto de transação. Para obter informações sobre como especificar esse parâmetro, consulte o parâmetro DesiredAccess de ZwCreateTransaction.

[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 da 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 atributos. O parâmetro ObjectAttributes é opcional e pode ser NULL.

[in] Uow

Um ponteiro para um GUID que é o identificador de unidade de trabalho (UOW) de um objeto de transação. Esse GUID identifica o objeto de transação a ser aberto.

[in, optional] TmHandle

Um identificador para um objeto do gerenciador de transações . Se esse parâmetro não for NULL, o KTM pesquisa apenas objetos de transação que pertencem ao objeto do gerenciador de transações especificado. Se esse parâmetro for NULL, a KTM pesquisará todos os objetos de transação.

Valor de retorno

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

Código de retorno Descrição
STATUS_INVALID_PARAMETER
O parâmetro DesiredAccess ou Uow era zero.
STATUS_OBJECT_TYPE_MISMATCH
O identificador especificado não é um identificador para um objeto de transação.
STATUS_INVALID_HANDLE
Um identificador de objeto é inválido.
STATUS_TRANSACTION_NOT_FOUND
A KTM não conseguiu localizar o objeto de transação.
STATUS_ACCESS_DENIED
O valor do parâmetro DesiredAccess é inválido.
 

A rotina pode retornar outros valores NTSTATUS .

Observações

Normalmente, um gerenciador de recursos chama ZwOpenTransaction depois de receber uma UOW de transação de um cliente transacional que anteriormente havia chamado ZwCreateTransaction.

Para obter mais informações sobre ZwOpenTransaction, consulte Criando umdo Resource Manager.

NtOpenTransaction e ZwOpenTransaction são duas versões da mesma rotina do Windows Native System Services.

Para chamadas de drivers no modo kernel, as versões NtXxx e Zwxxx versões de uma rotina dos Serviços de 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 de serviços do sistema nativo.

Requisitos

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

Consulte também

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

usando versões Nt e Zw das rotinas de serviços do sistema nativo

ZwCommitTransaction

ZwCreateTransaction

ZwQueryInformationTransaction

ZwRollbackTransaction