CreateEnlistment-Funktion (ktmw32.h)
Erstellt eine Enlistung, legt den Anfangszustand fest und öffnet ein Handle für die Enlistung 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 Listenverwaltungs-Manager enthält. Geben Sie NULL- an, um die Standardattribute abzurufen.
[in] ResourceManagerHandle
Ein Handle für den Ressourcen-Manager (RM) zum Auflisten.
[in] TransactionHandle
Ein Handle für die Transaktion, in der die RM in die Liste eingeht.
[in] NotificationMask
Die Benachrichtigungen, die dieser RM für den parameter TransactionHandle anfordert. Eine Liste der gültigen Werte finden Sie unter NOTIFICATION_MASK.
[in, optional] CreateOptions
Alle optionalen Einlistungsanweisungen.
Wert | Bedeutung |
---|---|
|
Enlist als überlegener Transaktionsmanager. |
[in, optional] EnlistmentKey
Ein Zeiger auf eine benutzerdefinierte Struktur, die von der RM verwendet wird, die zurückgegeben wird, wenn eine Benachrichtigung in der TRANSACTION_NOTIFICATION-Struktur gesendet wird. Dies wird in der Regel verwendet, um eine private Struktur mit dieser bestimmten Transaktion zu verknüpfen.
Rückgabewert
Wenn die Funktion erfolgreich ist, ist der Rückgabewert ein Handle für die Listenliste.
Wenn die Funktion fehlschlägt, wird der Rückgabewert INVALID_HANDLE_VALUE. Rufen Sie zum Abrufen erweiterter Fehlerinformationen die GetLastError--Funktion auf.
Die folgende Liste identifiziert die möglichen Fehlercodes:
Bemerkungen
Windows Vista: Jeder Versuch, während der Vorbereitungsphase oder höher eine Registrierung aufzustellen, schlägt fehl.
Wenn Sie in Ihrer Benachrichtigungsmaske nicht angeben, dass Sie eine Ein-Phasen-Commit-Anforderung akzeptieren, führt KTM immer einen Zwei-Phasen-Commit-Vorgang aus.
Beachten Sie beim Auflisten von Transaktionen die folgenden Benachrichtigungsregeln:
- Der RM muss immer eine Rollbackbenachrichtigung anfordern.
- Wenn die RM-Anforderungen eine Benachrichtigung vorbereiten, muss sie auch eine Commitbenachrichtigung anfordern.
- Wenn der RM einen Vorgang für einen commit in einer Phase anfordert, muss er auch Vorbereitungs- und Commitbenachrichtigungen angeben.
- Das einzige Mal, wenn ein RM nicht erforderlich ist, um Commitbenachrichtigungen anzufordern, besteht darin, mindestens ein Paar vorbereitungs- und Rollbackbenachrichtigungen anzufordern.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista |
mindestens unterstützte Server- | Windows Server 2008 |
Zielplattform- | Fenster |
Header- | ktmw32.h |
Library | KtmW32.lib |
DLL- | KtmW32.dll |