Auf Englisch lesen

Freigeben über


NtRecoverEnlistment-Funktion (wdm.h)

Die ZwRecoverEnlistment- Routine initiiert einen Wiederherstellungsvorgang für die Transaktion, die einer angegebenen Liste zugeordnet ist.

Syntax

C++
__kernel_entry NTSYSCALLAPI NTSTATUS NtRecoverEnlistment(
  [in]           HANDLE EnlistmentHandle,
  [in, optional] PVOID  EnlistmentKey
);

Parameter

[in] EnlistmentHandle

Ein Handle für ein Enlistment-Objekt, das durch einen vorherigen Aufruf von ZwCreateEnlistment oder ZwOpenEnlistmentabgerufen wurde. Das Handle muss über ENLISTMENT_RECOVER Zugriff auf das Objekt verfügen.

[in, optional] EnlistmentKey

Ein Zeiger auf den Wert des Listenschlüssels, den der Ressourcen-Manager zuvor als EnlistmentKey-Parameter angegeben hat, um ZwCreateEnlistment-. Dieser Parameter ist optional und kann NULL- werden, wenn der Ressourcenmanager beim Aufruf ZwCreateEnlistmentkeinen Listenschlüssel bereitgestellt hat.

Rückgabewert

ZwRecoverEnlistment 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_OBJECT_TYPE_MISMATCH
Das angegebene Handle ist kein Handle für ein Enlistment-Objekt.
STATUS_INVALID_HANDLE
Das Objekthandle ist ungültig.
STATUS_TRANSACTION_REQUEST_NOT_VALID
Die Transaktion oder deren Auflistung befindet sich nicht im richtigen Zustand.
STATUS_PENDING
KTM hat eine Commit-, Rollback- oder Zweifelsbenachrichtigung zur Benachrichtigungswarteschlange des Ressourcenmanagers hinzugefügt, und der Ressourcenmanager verwendet keine ResourceManagerNotification Rückrufroutine.
STATUS_ACCESS_DENIED
Der Aufrufer hat keinen geeigneten Zugriff auf das Enlistment-Objekt.
 

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

Bemerkungen

Nachdem ein Ressourcenmanager ZwRecoverEnlistmentaufruft, liefert KTM entweder eine TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK oder TRANSACTION_NOTIFY_INDOUBT Benachrichtigung für die Einlistung. Wenn der Ressourcenmanager daher eine ResourceManagerNotification Rückrufroutine verwendet, muss er sofort ZwGetNotificationResourceManager aufrufen, wenn ZwRecoverEnlistment STATUS_SUCCESS oder STATUS_PENDING zurückgibt.

Weitere Informationen zu ZwRecoverEnlistmentfinden Sie unter Handling Recovery Operations.

NtRecoverEnlistment und ZwRecoverEnlistment 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, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs, PowerIrpDDis

Siehe auch

ResourceManagerNotification-

TmRecoverEnlistment-

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

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment