Freigeben über


NtOpenTransaction-Funktion (wdm.h)

Die ZwOpenTransaction Routine ruft ein Handle für ein vorhandenes Transaktionsobjektab.

Syntax

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

Parameter

[out] TransactionHandle

Ein Zeiger auf eine vom Aufrufer zugewiesene Variable, die ein Handle für das Transaktionsobjekt empfängt, wenn ZwOpenTransaction STATUS_SUCCESS zurückgibt.

[in] DesiredAccess

Ein ACCESS_MASK Wert, der den angeforderten Zugriff des Aufrufers auf das Transaktionsobjekt angibt. Informationen zum Angeben dieses Parameters finden Sie im parameter DesiredAccess parameter von ZwCreateTransaction.

[in, optional] ObjectAttributes

Ein Zeiger auf eine OBJECT_ATTRIBUTES Struktur, die die Attribute des Objekts angibt. Verwenden Sie die InitializeObjectAttributes Routine, um diese Struktur zu initialisieren, aber geben Sie nur die InitializedAttributes und Attributes Parameter an. Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss das OBJ_KERNEL_HANDLE Flag im parameter Attributes festgelegt werden. Der parameter ObjectAttributes ist optional und kann NULL-werden.

[in] Uow

Ein Zeiger auf eine GUID, die die Arbeitseinheit (UOW) eines Transaktionsobjekts. Diese GUID identifiziert das zu öffnende Transaktionsobjekt.

[in, optional] TmHandle

Ein Handle für ein Transaktions-Manager-Objekt. Wenn dieser Parameter nicht NULL-ist, sucht KTM nur nach Transaktionsobjekten, die zum angegebenen Transaktions-Manager-Objekt gehören. Wenn dieser Parameter NULL-ist, durchsucht KTM alle Transaktionsobjekte.

Rückgabewert

ZwCreateTransaction gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist. Andernfalls gibt diese Routine möglicherweise einen der folgenden Werte zurück:

Rückgabecode Beschreibung
STATUS_INVALID_PARAMETER
Der parameter DesiredAccess oder Uow parameter war null.
STATUS_OBJECT_TYPE_MISMATCH
Das angegebene Handle ist kein Handle für ein Transaktionsobjekt.
STATUS_INVALID_HANDLE
Ein Objekthandle ist ungültig.
STATUS_TRANSACTION_NOT_FOUND
KTM konnte das Transaktionsobjekt nicht finden.
STATUS_ACCESS_DENIED
Der Wert des parameters DesiredAccess ist ungültig.
 

Die Routine gibt möglicherweise andere NTSTATUS-Wertezurück.

Bemerkungen

In der Regel ruft ein Ressourcenmanager ZwOpenTransaction- auf, nachdem eine Transaktion UOW von einem Transaktionsclient empfangen wurde, der zuvor ZwCreateTransactionaufgerufen hatte.

Weitere Informationen zu ZwOpenTransaction-finden Sie unter Erstellen eines Ressourcen-Managers.

NtOpenTransaction- und ZwOpenTransaction- sind zwei Versionen derselben Windows Native System Services-Routine.

Bei Aufrufen von Kernelmodustreibern können sich die NtXxx und ZwXxx- Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter behandeln und interpretieren. Weitere Informationen zur Beziehung zwischen den NtXxx und ZwXxx- Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar in Windows Vista und höheren Betriebssystemversionen.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs, PowerIrpDDis

Siehe auch

ACCESS_MASK

InitializeObjectAttributes-

OBJECT_ATTRIBUTES

Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienste-Routinen

ZwCommitTransaction-

ZwCreateTransaction-

ZwQueryInformationTransaction-

ZwRollbackTransaction-