Freigeben über


NtOpenTransactionManager-Funktion (wdm.h)

Die ZwOpenTransactionManager Routine ruft ein Handle für ein vorhandenes Transaktions-Manager-Objekt ab.

Syntax

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenTransactionManager(
  [out]          PHANDLE            TmHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in, optional] PUNICODE_STRING    LogFileName,
  [in, optional] LPGUID             TmIdentity,
  [in, optional] ULONG              OpenOptions
);

Parameter

[out] TmHandle

Ein Zeiger auf eine vom Aufrufer zugewiesene Variable, die ein Handle für das Transaktions-Manager-Objekt empfängt, wenn ZwOpenTransactionManager STATUS_SUCCESS zurückgibt.

[in] DesiredAccess

Ein ACCESS_MASK Wert, der den angeforderten Zugriff des Aufrufers auf das Transaktions-Manager-Objekt angibt. Informationen zum Angeben dieses Parameters finden Sie im DesiredAccess Parameter von ZwCreateTransactionManager.

[in, optional] ObjectAttributes

Ein Zeiger auf eine OBJECT_ATTRIBUTES Struktur, die den Objektnamen und andere Attribute angibt. Verwenden Sie die InitializeObjectAttributes Routine, um diese Struktur zu initialisieren. Wenn der Aufrufer nicht in einem Systemthreadkontext ausgeführt wird, muss das attribut OBJ_KERNEL_HANDLE festgelegt werden, wenn er InitializeObjectAttributesaufruft. Dieser Parameter ist optional und kann NULL-werden.

[in, optional] LogFileName

Ein Zeiger auf eine UNICODE_STRING Struktur, die den Pfad und Dateinamen des Protokolldateidatenstroms enthält,, die beim Erstellen des Transaktions-Manager-Objekts erstellt wurde. Weitere Informationen finden Sie im LogFileName Parameter von ZwCreateTransactionManager. Dieser Parameter ist optional und kann NULL-werden.

[in, optional] TmIdentity

Ein Zeiger auf eine GUID, die das Transaktions-Manager-Objekt identifiziert. Dieser Parameter ist optional und kann NULL-werden.

[in, optional] OpenOptions

Dieser Parameter wird nicht verwendet und muss null sein.

Rückgabewert

ZwOpenTransactionManager 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 Wert eines Eingabeparameters ist ungültig.
STATUS_INSUFFICIENT_RESOURCES
KTM konnte Systemressourcen (in der Regel Speicher) nicht zuordnen.
STATUS_OBJECT_NAME_INVALID
Der Objektname, den der parameter ObjectAttributes angibt, ist ungültig.
STATUS_LOG_CORRUPTION_DETECTED
KTM hat beim Erstellen oder Öffnen der Protokolldatei einen Fehler festgestellt.
STATUS_ACCESS_DENIED
Der Wert des parameters DesiredAccess ist ungültig.
 

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

Bemerkungen

Der Aufrufer kann identifizieren, welches Transaktions-Manager-Objekt geöffnet werden soll, indem eine der folgenden drei Techniken verwendet wird:

  • Verwenden Sie den LogFileName Parameter, um den Pfad und Dateinamen eines Protokolldateidatenstroms anzugeben, der beim Erstellen des Transaktions-Manager-Objekts erstellt wurde.
  • Verwenden Sie den parameter TmIdentity, um die GUID anzugeben, die das Transaktions-Manager-Objekt identifiziert.
  • Verwenden Sie den ObjectAttributes Parameter, um eine OBJECT_ATTRIBUTES Struktur anzugeben, die den Objektnamen enthält, den der Aufrufer zuvor im ZwCreateTransactionManager Routine angegeben hat.
Sie müssen nur einen der oben aufgeführten Parameter (einen Objektnamen, einen Protokolldateinamen oder eine GUID) angeben und die anderen beiden Parameter auf NULL-festlegen.

Ihre TPS-Komponente muss ZwRecoverTransactionManager aufrufen, nachdem sie ZwOpenTransactionManageraufgerufen hat.

Eine TPS-Komponente, die ZwOpenTransactionManager aufruft muss schließlich ZwClose- aufrufen, um das Objekthandle zu schließen.

Weitere Informationen zur Verwendung ZwOpenTransactionManagerfinden Sie unter Transaction Manager Objects und Creating a Resource Manager.

NtOpenTransactionManager und ZwOpenTransactionManager 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

InitializeObjectAttributes-

OBJECT_ATTRIBUTES

UNICODE_STRING

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

ZwClose

ZwCreateTransactionManager

ZwQueryInformationTransactionManager-