Freigeben über


CreateEnlistment-Funktion (ktmw32.h)

Erstellt eine Enlistment, legt ihren Anfangsstatus fest und öffnet ein Handle für die Einlistung mit dem angegebenen Zugriff.

Syntax

HANDLE CreateEnlistment(
  [in, optional] LPSECURITY_ATTRIBUTES lpEnlistmentAttributes,
  [in]           HANDLE                ResourceManagerHandle,
  [in]           HANDLE                TransactionHandle,
  [in]           NOTIFICATION_MASK     NotificationMask,
  [in, optional] DWORD                 CreateOptions,
  [in, optional] PVOID                 EnlistmentKey
);

Parameter

[in, optional] lpEnlistmentAttributes

Ein Zeiger auf eine SECURITY_ATTRIBUTES-Struktur , die die Sicherheitsattribute für den Einlistungs-Manager enthält. Geben Sie NULL an, um die Standardattribute abzurufen.

[in] ResourceManagerHandle

Ein Handle für den Ressourcen-Manager (RM) für die Registrierung.

[in] TransactionHandle

Ein Handle für die Transaktion, in der sich der RM einreist.

[in] NotificationMask

Die Benachrichtigungen, die dieser RM für den TransactionHandle-Parameter anfordert. Eine Liste der gültigen Werte finden Sie unter NOTIFICATION_MASK.

[in, optional] CreateOptions

Alle optionalen Einlistungsanweisungen.

Wert Bedeutung
ENLISTMENT_SUPERIOR
1
Als überlegener Transaktionsmanager eintragen.

[in, optional] EnlistmentKey

Ein Zeiger auf eine benutzerdefinierte Struktur, die vom RM verwendet wird und zurückgegeben wird, wenn eine Benachrichtigung in der TRANSACTION_NOTIFICATION-Struktur gesendet wird. Dies wird in der Regel verwendet, um dieser bestimmten Transaktion eine private Struktur zuzuordnen.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Handle für die Einlistung.

Wenn die Funktion fehlschlägt, ist der Rückgabewert INVALID_HANDLE_VALUE. Um erweiterte Fehlerinformationen zu erhalten, rufen Sie die GetLastError-Funktion auf.

In der folgenden Liste werden die möglichen Fehlercodes identifiziert:

Hinweise

Windows Vista: Jeder Versuch, sich während der Vorvorbereitungsphase oder später ein eintragen zu lassen, schlägt fehl.

Wenn Sie in Ihrer Benachrichtigungsmaske nicht angeben, dass Sie eine einphasige Commitanforderung akzeptieren, führt KTM immer einen zweiphasigen Commitvorgang aus.

Beachten Sie die folgenden Benachrichtigungsregeln, wenn Sie sich in Transaktionen eintragen:

  • Der RM muss immer eine Rollbackbenachrichtigung anfordern.
  • Wenn die RM-Anforderungen eine Benachrichtigung vorbereiten, muss auch eine Commitbenachrichtigung angefordert werden.
  • Wenn der RM einen einphasigen Commitvorgang anfordert, muss er auch Vorbereitungs- und Commitbenachrichtigungen angeben.
  • Ein RM ist nur dann nicht erforderlich, um Commitbenachrichtigungen anzufordern, wenn er mindestens ein Paar von Vorbereitungs- und Rollbackbenachrichtigungen anfordert.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile ktmw32.h
Bibliothek KtmW32.lib
DLL KtmW32.dll

Weitere Informationen

CommitComplete

CommitEnlistment

Kerneltransaktions-Manager-Funktionen

NOTIFICATION_MASK

OpenEnlistment

TRANSACTION_NOTIFICATION