Freigeben über


NtOpenTransaction-Funktion (wdm.h)

Die ZwOpenTransaction-Routine ruft ein Handle für ein vorhandenes Transaktionsobjekt ab.

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 zugeordnete Variable, die ein Handle für das Transaktionsobjekt empfängt, wenn ZwOpenTransaction STATUS_SUCCESS zurückgibt.

[in] DesiredAccess

Ein ACCESS_MASK Wert, der den vom Aufrufer angeforderten Zugriff auf das Transaktionsobjekt angibt. Informationen zum Angeben dieses Parameters finden Sie im 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 Parameter InitializedAttributes und Attributes dieser Routine an . Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss er das flag OBJ_KERNEL_HANDLE im Attributes-Parameter festlegen. Der Parameter ObjectAttributes ist optional und kann NULL sein.

[in] Uow

Ein Zeiger auf eine GUID, bei der es sich um den Bezeichner der Arbeitseinheit (UOW) eines Transaktionsobjekts handelt. 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 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 DesiredAccess-Parameters ist ungültig.
 

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

Hinweise

In der Regel ruft ein Ressourcen-Manager ZwOpenTransaction auf, nachdem er eine Transaktions-UOW von einem Transaktionsclient empfangen hat, der zuvor ZwCreateTransaction aufgerufen hatte.

Weitere Informationen zu ZwOpenTransaction finden Sie unter Erstellen einer Resource Manager.

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 verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienstroutinen.

Anforderungen

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

Weitere Informationen

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen

ZwCommitTransaction

ZwCreateTransaction

ZwQueryInformationTransaction

ZwRollbackTransaction