ZwPrePrepareEnlistment-Funktion (wdm.h)

Die ZwPrePrepareEnlistment-Routine initiiert den Vorbereitungsvorgang für die Transaktion einer angegebenen Registrierung.

Syntax

NTSYSCALLAPI NTSTATUS ZwPrePrepareEnlistment(
  [in]           HANDLE         EnlistmentHandle,
  [in, optional] PLARGE_INTEGER TmVirtualClock
);

Parameter

[in] EnlistmentHandle

Ein Handle für ein Eintragsobjekt , das durch einen vorherigen Aufruf von ZwCreateEnlistment oder ZwOpenEnlistment abgerufen wurde. Das -Objekt muss eine übergeordnete Eintragsliste darstellen, und das Handle muss über ENLISTMENT_SUPERIOR_RIGHTS Zugriff auf das Objekt verfügen.

[in, optional] TmVirtualClock

Ein Zeiger auf einen virtuellen Uhrwert. Dieser Parameter ist optional und kann NULL sein.

Rückgabewert

ZwPrePrepareEnlistment 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_ENLISTMENT_NOT_SUPERIOR
Der Aufrufer ist kein überlegener Transaktions-Manager für die Einlistung.
STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED
Der Anrufer hat sich nicht registriert, um TRANSACTION_NOTIFY_PREPREPARE_COMPLETE Benachrichtigungen zu erhalten.
STATUS_OBJECT_TYPE_MISMATCH
Das angegebene Handle ist kein Handle für ein Eintragsobjekt.
STATUS_INVALID_HANDLE
Das Objekthandle ist ungültig.
STATUS_ACCESS_DENIED
Der Aufrufer hat keinen geeigneten Zugriff auf das Eintragsobjekt.
STATUS_TRANSACTION_REQUEST_NOT_VALID
Die Transaktion der Einlistung befindet sich nicht in einem Zustand, der es ihr ermöglicht, in die Vorbereitungsphase einzusteigen.
 

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

Hinweise

Nur überlegene Transaktionsmanager können ZwPrePrepareEnlistment aufrufen.

Anrufer von ZwPrePrepareEnlistment müssen sich registrieren, um TRANSACTION_NOTIFY_PREPREPARE_COMPLETE Benachrichtigungen zu erhalten.

Die ZwPrePrepareEnlistment-Routine bewirkt, dass KTM TRANSACTION_NOTIFY_PREPREPARE Benachrichtigungen an alle Ressourcenmanager sendet, die sich in der Transaktion eingetragen haben.

Weitere Informationen zu ZwPrePrepareEnlistment finden Sie unter Erstellen eines überlegenen Transaktions-Managers und Behandeln von Commitvorgängen.

NtPrepareEnlistment und ZwPrepareEnlistment 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(storport), PowerIrpDDis(wdm)

Weitere Informationen

TmPrePrepareEnlistment

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen

ZwCreateEnlistment

ZwOpenEnlistment