Partager via


Fonction NtPrepareEnlistment (wdm.h)

La routine ZwPrepareEnlistment lance l’opération de préparation pour la transaction d’inscription spécifiée.

Syntaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtPrepareEnlistment(
  [in]           HANDLE         EnlistmentHandle,
  [in, optional] PLARGE_INTEGER TmVirtualClock
);

Paramètres

[in] EnlistmentHandle

Handle d’un objet d’enrôlement obtenu par un appel précédent à ZwCreateEnlistment ou ZwOpenEnlistment. L’objet doit représenter une inscription supérieure et le handle doit avoir ENLISTMENT_SUPERIOR_RIGHTS accès à l’objet.

[in, optional] TmVirtualClock

Pointeur vers une valeur d’horloge virtuelle. Ce paramètre est facultatif et peut être NULL.

Valeur retournée

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

Code de retour Description
STATUS_ENLISTMENT_NOT_SUPERIOR
L’appelant n’est pas un gestionnaire de transactions supérieur pour l’inscription.
STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED
L’appelant ne s’est pas inscrit pour recevoir TRANSACTION_NOTIFY_PREPARE_COMPLETE notifications.
STATUS_OBJECT_TYPE_MISMATCH
Le handle spécifié n’est pas un handle pour un objet d’inscription.
STATUS_INVALID_HANDLE
Le handle d’objet n’est pas valide.
STATUS_ACCESS_DENIED
L’appelant n’a pas l’accès approprié à l’objet d’inscription.
STATUS_TRANSACTION_REQUEST_NOT_VALID
La transaction de l’inscription n’est pas dans un état qui lui permet d’entrer dans la phase de préparation.
 

La routine peut retourner d’autres valeurs NTSTATUS.

Remarques

Seuls les gestionnaires de transactions supérieurs peuvent appeler ZwPrepareEnlistment.

La routine ZwPrepareEnlistment oblige KTM à envoyer des notifications TRANSACTION_NOTIFY_PREPARE à tous les gestionnaires de ressources qui se sont inscrits dans la transaction.

Les appelants de ZwPrepareEnlistment doivent s’inscrire pour recevoir TRANSACTION_NOTIFY_PREPARE_COMPLETE notifications.

Pour plus d’informations sur ZwPrepareEnlistment, consultez Création d’un gestionnaire de transactions supérieur et gestion des opérations de validation.

NtPrePrepareEnlistment et ZwPrePrepareEnlistment sont deux versions de la même routine Windows Native System Services.

Pour les appels provenant 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 Using Nt and Zw Versions of the Native System Services Routines.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et versions ultérieures du système d’exploitation.
Plateforme cible Universal
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

TmPrepareEnlistment

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

ZwCreateEnlistment

ZwOpenEnlistment