Função NtOpenTransaction (wdm.h)
A rotina 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 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 |
---|---|
|
O parâmetro DesiredAccess ou Uow era zero. |
|
O identificador especificado não é um identificador para um objeto de transação. |
|
Um identificador de objeto é inválido. |
|
O KTM não pôde localizar o objeto de transação. |
|
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, PowerIrpDDis |
Confira também
Usando versões Nt e Zw das rotinas de serviços do sistema nativo