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 caller-zugeordnete Variable, die ein Handle an 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 in einem Systemthreadkontext nicht ausgeführt wird, muss es das OBJ_KERNEL_HANDLE Attribut festlegen, wenn initializeObjectAttributes aufgerufen wird. Dieser Parameter ist optional und kann NULL sein.

[in, optional] LogFileName

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

[in, optional] TmIdentity

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

[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 keine Systemressourcen (in der Regel Arbeitsspeicher) 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 gefunden.
STATUS_ACCESS_DENIED
Der Wert des Parameters DesiredAccess ist ungültig.
 

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

Bemerkungen

Der Aufrufer kann ermitteln, 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 TmIdentity-Parameter , 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 der 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 ZwOpenTransactionManager aufgerufen hat.

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

Weitere Informationen zur Verwendung von ZwOpenTransactionManager finden Sie unter Transaction Manager Objects and Creating a Resource Manager.

NtOpenTransactionManager und ZwOpenTransactionManager sind zwei Versionen derselben Windows Native System Services-Routine.

Für Aufrufe 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- undZwXxx-Versionen einer Routine finden Sie unter Using Nt and Zw Versions of the Native System Services Routines.

Requirements (Anforderungen)

   
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista- und späteren 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

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

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

ZwClose

ZwCreateTransactionManager

ZwQueryInformationTransactionManager