Partager via


Fonction NtOpenTransactionManager (wdm.h)

La routine ZwOpenTransactionManager obtient un handle à un objet de gestionnaire de transactions existant.

Syntaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenTransactionManager(
  [out]          PHANDLE            TmHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in, optional] PUNICODE_STRING    LogFileName,
  [in, optional] LPGUID             TmIdentity,
  [in, optional] ULONG              OpenOptions
);

Paramètres

[out] TmHandle

Pointeur vers une variable allouée par l’appelant qui reçoit un handle vers l’objet gestionnaire de transactions si ZwOpenTransactionManager retourne STATUS_SUCCESS.

[in] DesiredAccess

Valeur ACCESS_MASK qui spécifie l’accès demandé par l’appelant à l’objet gestionnaire de transactions. Pour plus d’informations sur la façon de spécifier ce paramètre, consultez le paramètre DesiredAccess de ZwCreateTransactionManager.

[in, optional] ObjectAttributes

Pointeur vers une structure OBJECT_ATTRIBUTES qui spécifie le nom de l’objet et d’autres attributs. Utilisez la routine InitializeObjectAttributes pour initialiser cette structure. Si l’appelant n’est pas en cours d’exécution dans un contexte de thread système, il doit définir l’attribut OBJ_KERNEL_HANDLE lorsqu’il appelle InitializeObjectAttributes. Ce paramètre est facultatif et peut être NULL.

[in, optional] LogFileName

Pointeur vers une structure UNICODE_STRING qui contient le chemin d’accès et le nom de fichier du flux de fichiers journaux qui a été créé lors de la création de l’objet du gestionnaire de transactions. Pour plus d’informations, consultez le paramètre LogFileName de ZwCreateTransactionManager. Ce paramètre est facultatif et peut être NULL.

[in, optional] TmIdentity

Pointeur vers un GUID qui identifie l’objet du gestionnaire de transactions. Ce paramètre est facultatif et peut être NULL.

[in, optional] OpenOptions

Ce paramètre n’est pas utilisé et doit être égal à zéro.

Valeur de retour

ZwOpenTransactionManager retourne STATUS_SUCCESS si l’opération réussit. Sinon, cette routine peut retourner l’une des valeurs suivantes :

Retourner le code Description
STATUS_INVALID_PARAMETER
La valeur d’un paramètre d’entrée n’est pas valide.
STATUS_INSUFFICIENT_RESOURCES
KTM n’a pas pu allouer de ressources système (généralement la mémoire).
STATUS_OBJECT_NAME_INVALID
Le nom de l’objet spécifié par le paramètre ObjectAttributes n’est pas valide.
STATUS_LOG_CORRUPTION_DETECTED
KTM a rencontré une erreur lors de la création ou de l’ouverture du fichier journal.
STATUS_ACCESS_DENIED
La valeur du paramètre DesiredAccess n’est pas valide.
 

La routine peut retourner d’autres valeurs NTSTATUS .

Remarques

L’appelant peut identifier l’objet du gestionnaire de transactions à ouvrir à l’aide de l’une des trois techniques suivantes :

  • Utilisez le paramètre LogFileName pour spécifier le chemin d’accès et le nom de fichier d’un flux de fichiers journaux créé lors de la création de l’objet du gestionnaire de transactions.
  • Utilisez le paramètre TmIdentity pour spécifier le GUID qui identifie l’objet du gestionnaire de transactions.
  • Utilisez le paramètre ObjectAttributes pour fournir une structure OBJECT_ATTRIBUTES qui contient le nom de l’objet que l’appelant a précédemment spécifié à la routine ZwCreateTransactionManager.
Vous ne devez spécifier qu’un des paramètres répertoriés ci-dessus (un nom d’objet, un nom de fichier journal ou un GUID) et définir les deux autres paramètres sur NULL.

Votre composant TPS doit appeler ZwRecoverTransactionManager une fois qu’il a appelé ZwOpenTransactionManager.

Un composant TPS qui appelle ZwOpenTransactionManager doit appeler ZwClose pour fermer le handle d’objet.

Pour plus d’informations sur l’utilisation ZwOpenTransactionManager, consultez objets Transaction Manager et Création d’unResource Manager.

NtOpenTransactionManager et ZwOpenTransactionManager sont deux versions de la même routine Windows Native System Services.

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment de la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Using Nt and Zw Versions of the Native System Services Routines.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Vista et versions ultérieures du système d’exploitation.
plateforme cible Universel
d’en-tête wdm.h (include Wdm.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
règles de conformité DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Voir aussi

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

à l’aide de versions Nt et Zw des routines natives des services système

ZwClose

ZwCreateTransactionManager

ZwQueryInformationTransactionManager