Condividi tramite


Funzione NtOpenTransaction (wdm.h)

La routine ZwOpenTransaction ottiene un handle per un oggetto transazione esistente.

Sintassi

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

Parametri

[out] TransactionHandle

Puntatore a una variabile allocata dal chiamante che riceve un handle per l'oggetto transazione se ZwOpenTransaction restituisce STATUS_SUCCESS.

[in] DesiredAccess

Valore ACCESS_MASK che specifica l'accesso richiesto dal chiamante all'oggetto transazione. Per informazioni su come specificare questo parametro, vedere il parametro DesiredAccess di ZwCreateTransaction.

[in, optional] ObjectAttributes

Puntatore a una struttura OBJECT_ATTRIBUTES che specifica gli attributi dell'oggetto. Utilizzare la routine InitializeObjectAttributes per inizializzare questa struttura, ma specificare solo i parametri InitializedAttributes e Attributes della routine. Se il chiamante non è in esecuzione in un contesto di thread di sistema, deve impostare il flag OBJ_KERNEL_HANDLE nel parametro Attributes . Il parametro ObjectAttributes è facoltativo e può essere NULL.

[in] Uow

Puntatore a un GUID che è l'identificatore dell'unità di lavoro (UOW) di un oggetto transazione. Questo GUID identifica l'oggetto transazione da aprire.

[in, optional] TmHandle

Handle per un oggetto di gestione transazioni. Se questo parametro non è NULL, KTM cerca solo gli oggetti transazione che appartengono all'oggetto di gestione transazioni specificato. Se questo parametro è NULL, KTM esegue la ricerca in tutti gli oggetti transazione.

Valore restituito

ZwCreateTransaction restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questa routine potrebbe restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
Il parametro DesiredAccess o Uow è zero.
STATUS_OBJECT_TYPE_MISMATCH
L'handle specificato non è un handle per un oggetto transazione.
STATUS_INVALID_HANDLE
Un handle di oggetto non è valido.
STATUS_TRANSACTION_NOT_FOUND
KTM non è riuscito a trovare l'oggetto transazione.
STATUS_ACCESS_DENIED
Il valore del parametro DesiredAccess non è valido.
 

La routine potrebbe restituire altri valori NTSTATUS.

Commenti

In genere, un gestore di risorse chiama ZwOpenTransaction dopo che riceve una transazione UOW da un client transazionale che in precedenza aveva chiamato ZwCreateTransaction.

Per altre informazioni su ZwOpenTransaction, vedere Creazione di un Resource Manager.

NtOpenTransaction e ZwOpenTransaction sono due versioni della stessa routine di Servizi di sistema nativi di Windows.

Per le chiamate da driver in modalità kernel, le versioni NtXxx e ZwXxx di una routine di Servizi di sistema nativi di Windows possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines .For more information about the Nt Xxx and Zw versions of the Native System Services Routines.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive del sistema operativo.
Piattaforma di destinazione Universale
Intestazione wdm.h (include Wdm.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Vedi anche

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

Uso delle versioni Nt e Zw delle routine native di Servizi di sistema

ZwCommitTransaction

ZwCreateTransaction

ZwQueryInformationTransaction

ZwRollbackTransaction