Freigeben über


NtRecoverEnlistment-Funktion (wdm.h)

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

Syntax

__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 ZwOpenEnlistment abgerufen wurde. Das Handle muss ENLISTMENT_RECOVER Zugriff auf das Objekt haben.

[in, optional] EnlistmentKey

Ein Zeiger auf den Enlistment-Schlüsselwert, den der Ressourcen-Manager zuvor als EnlistmentKey-Parameter auf ZwCreateEnlistment angegeben hat. Dieser Parameter ist optional und kann NULL sein, wenn der Ressourcen-Manager beim Aufrufen von ZwCreateEnlistment keinen Auflistungsschlü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 Einlistungsobjekt.
STATUS_INVALID_HANDLE
Das Objekthandle ist ungültig.
STATUS_TRANSACTION_REQUEST_NOT_VALID
Die Transaktion oder ihre Einlistung befindet sich nicht im richtigen Zustand.
STATUS_PENDING
KTM hat der Benachrichtigungswarteschlange des Ressourcenmanagers eine Commit-, Rollback- oder Zweifelsbenachrichtigung hinzugefügt, und der Ressourcen-Manager verwendet keine ResourceManagerNotification-Rückrufroutine .
STATUS_ACCESS_DENIED
Der Aufrufer hat keinen entsprechenden Zugriff auf das Einlistungsobjekt.
 

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

Hinweise

Nachdem ein Ressourcenmanager ZwRecoverEnlistment aufgerufen hat, sendet KTM entweder eine TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK oder TRANSACTION_NOTIFY_INDOUBT Benachrichtigung für die Aufnahme. Daher muss der Ressourcen-Manager, sofern er keine ResourceManagerNotification-Rückrufroutine verwendet, sofort ZwGetNotificationResourceManager aufrufen, wenn ZwRecoverEnlistment STATUS_SUCCESS oder STATUS_PENDING zurückgibt.

Weitere Informationen zu ZwRecoverEnlistment finden Sie unter Behandeln von Wiederherstellungsvorgängen.

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, da 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 Systemdienstroutinen.

Anforderungen

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

Weitere Informationen

ResourceManagerNotification

TmRecoverEnlistment

Verwenden von Nt- und Zw-Versionen der Systemdienstroutinen

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment