Partager via


Fonction ZwOpenTransaction (wdm.h)

La routine ZwOpenTransaction obtient un handle pour un objet de transaction existant.

Syntaxe

NTSYSCALLAPI NTSTATUS ZwOpenTransaction(
  [out]          PHANDLE            TransactionHandle,
  [in]           ACCESS_MASK        DesiredAccess,
  [in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
  [in]           LPGUID             Uow,
  [in, optional] HANDLE             TmHandle
);

Paramètres

[out] TransactionHandle

Pointeur vers une variable allouée par l’appelant qui reçoit un handle vers l’objet transaction si ZwOpenTransaction retourne STATUS_SUCCESS.

[in] DesiredAccess

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

[in, optional] ObjectAttributes

Pointeur vers une structure de OBJECT_ATTRIBUTES qui spécifie les attributs de l’objet. Utilisez la routine InitializeObjectAttributes pour initialiser cette structure, mais spécifiez uniquement les paramètres InitializedAttributes et Attributes de cette routine. Si l’appelant n’est pas en cours d’exécution dans un contexte de thread système, il doit définir l’indicateur OBJ_KERNEL_HANDLE dans le paramètre Attributes . Le paramètre ObjectAttributes est facultatif et peut être NULL.

[in] Uow

Pointeur vers un GUID qui est l’identificateur d’unité de travail (UOW) d’un objet transaction. Ce GUID identifie l’objet de transaction à ouvrir.

[in, optional] TmHandle

Handle d’un objet de gestionnaire de transactions. Si ce paramètre n’est pas NULL, KTM recherche uniquement les objets transactionnels qui appartiennent à l’objet gestionnaire de transactions spécifié. Si ce paramètre a la valeur NULL, KTM recherche tous les objets transactionnels.

Valeur retournée

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

Code de retour Description
STATUS_INVALID_PARAMETER
Le paramètre DesiredAccess ou Uow était égal à zéro.
STATUS_OBJECT_TYPE_MISMATCH
Le handle spécifié n’est pas un handle pour un objet de transaction.
STATUS_INVALID_HANDLE
Un handle d’objet n’est pas valide.
STATUS_TRANSACTION_NOT_FOUND
KTM n’a pas trouvé l’objet transactionnel.
STATUS_ACCESS_DENIED
La valeur du paramètre DesiredAccess n’est pas valide.
 

La routine peut retourner d’autres valeurs NTSTATUS.

Remarques

En règle générale, un gestionnaire de ressources appelle ZwOpenTransaction après avoir reçu une transaction UOW d’un client transactionnel qui avait précédemment appelé ZwCreateTransaction.

Pour plus d’informations sur ZwOpenTransaction, consultez Création d’un Resource Manager.

NtOpenTransaction et ZwOpenTransaction 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 dans 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 Utilisation des versions Nt et Zw des routines des services système natifs.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et les versions ultérieures du système d’exploitation.
Plateforme cible Universal
En-tête wdm.h (inclure Wdm.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs(storport),PowerIrpDDis(wdm)

Voir aussi

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

Utilisation des versions Nt et Zw des routines natives des services système natifs

ZwCommitTransaction

ZwCreateTransaction

ZwQueryInformationTransaction

ZwRollbackTransaction