Função ZwOpenTransaction (wdm.h)

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

Sintaxe

NTSYSCALLAPI NTSTATUS ZwOpenTransaction(
  [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 pelo chamador que receberá um identificador para o objeto de transação se ZwOpenTransaction retornar STATUS_SUCCESS.

[in] DesiredAccess

Um valor ACCESS_MASK que especifica o acesso solicitado pelo 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 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 . O parâmetro ObjectAttributes é opcional e pode ser NULL.

[in] Uow

Um ponteiro para um GUID que é o identificador UOW (unidade de trabalho) 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 pesquisará apenas objetos de transação que pertencem ao objeto do gerenciador de transações especificado. Se esse parâmetro for NULL, o KTM pesquisa todos os objetos de transação.

Retornar valor

ZwCreateTransaction 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_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
O KTM não pôde localizar o objeto de transação.
STATUS_ACCESS_DENIED
O valor do parâmetro DesiredAccess é inválido.
 

A rotina pode retornar outros valores NTSTATUS.

Comentários

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

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

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

Para chamadas de drivers de modo kernel, as versões NtXxx e ZwXxx de uma rotina do Windows Native System Services 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 Using Nt and Zw Versions of the Native System Services Routines.

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 (include Wdm.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Confira 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