CreateTransaction, fonction (ktmw32.h)

Crée un objet de transaction.

Syntaxe

HANDLE CreateTransaction(
  [in, optional] LPSECURITY_ATTRIBUTES lpTransactionAttributes,
  [in, optional] LPGUID                UOW,
  [in, optional] DWORD                 CreateOptions,
  [in, optional] DWORD                 IsolationLevel,
  [in, optional] DWORD                 IsolationFlags,
  [in, optional] DWORD                 Timeout,
  [in, optional] LPWSTR                Description
);

Paramètres

[in, optional] lpTransactionAttributes

Pointeur vers une structure SECURITY_ATTRIBUTES qui détermine si le handle retourné peut être hérité par les processus enfants. Si ce paramètre a la valeur NULL, le handle ne peut pas être hérité.

Le membre lpSecurityDescriptor de la structure spécifie un descripteur de sécurité pour le nouvel événement. Si lpTransactionAttributes a la valeur NULL, l’objet obtient un descripteur de sécurité par défaut. Les listes de contrôle d’accès (ACL) dans le descripteur de sécurité par défaut pour une transaction proviennent du jeton principal ou d’emprunt d’identité du créateur.

[in, optional] UOW

Réservé. Doit être égal à zéro (0).

[in, optional] CreateOptions

Toutes les instructions de transaction facultatives.

Valeur Signification
TRANSACTION_DO_NOT_PROMOTE
La transaction ne peut pas être distribuée.

[in, optional] IsolationLevel

Réservés au; spécifiez zéro (0).

[in, optional] IsolationFlags

Réservés au; spécifiez zéro (0).

[in, optional] Timeout

Intervalle de délai d’attente, en millisecondes. Si une valeur différente de zéro est spécifiée, la transaction est abandonnée lorsque l’intervalle s’écoule si elle n’a pas déjà atteint l’état préparé.

Spécifiez zéro (0) ou INFINITE pour fournir un délai d’attente infini.

[in, optional] Description

Description lisible par l’utilisateur de la transaction.

Valeur retournée

Si la fonction réussit, la valeur de retour est un handle pour la transaction.

Si la fonction échoue, la valeur de retour est INVALID_HANDLE_VALUE. Pour obtenir des informations détaillées sur l’erreur, appelez la fonction GetLastError.

La liste suivante identifie les codes d’erreur possibles :

Remarques

Utilisez la fonction CloseHandle pour fermer le handle de transaction. Si le dernier handle de transaction est fermé avant qu’un client appelle la fonction CommitTransaction avec le handle de transaction, KTM annule la transaction.

Si la transaction peut avoir besoin d’être promotable dans une transaction distribuée, vous devez accorder au DTC (Distributed Transaction Coordinator) des droits d’accès pour s’inscrire dans la transaction. Pour ce faire, le paramètre lpTransactionAttributes doit contenir une entrée de contrôle d’accès avec le SID du DTC (S-1-5-80-2818357584-3387065753-400039393942-3429278282-138088443) et le droit TRANSACTION_ENLIST. Pour plus d’informations, consultez Distributed Transaction Coordinator and Access Control Components.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête ktmw32.h
Bibliothèque KtmW32.lib
DLL KtmW32.dll

Voir aussi

CommitTransaction

Coordinateur de transactions distribuées

Fonctions du gestionnaire de transactions du noyau

RollbackTransaction

SECURITY_ATTRIBUTES

SetTransactionInformation