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 |
---|---|
|
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 |