Partager via


Fonction ZwPrePrepareEnlistment (wdm.h)

La routine ZwPrePrepareEnlistment lance l’opération de préparation préalable pour la transaction d’un enrôlement spécifié.

Syntaxe

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

Paramètres

[in] EnlistmentHandle

Handle d’un objet d’inscription 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

ZwPrePrepareEnlistment 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_PREPREPARE_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 ZwPrePrepareEnlistment.

Les appelants de ZwPrePrepareEnlistment doivent s’inscrire pour recevoir TRANSACTION_NOTIFY_PREPREPARE_COMPLETE notifications.

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

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

NtPrepareEnlistment et ZwPrepareEnlistment 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

TmPrePrepareEnlistment

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

ZwCreateEnlistment

ZwOpenEnlistment