Partager via


Fonction NtRecoverEnlistment (wdm.h)

La routine ZwRecoverEnlistment lance une opération de récupération pour la transaction associée à une inscription spécifiée.

Syntaxe

__kernel_entry NTSYSCALLAPI NTSTATUS NtRecoverEnlistment(
  [in]           HANDLE EnlistmentHandle,
  [in, optional] PVOID  EnlistmentKey
);

Paramètres

[in] EnlistmentHandle

Handle d’un objet d’inscription obtenu par un appel précédent à ZwCreateEnlistment ou ZwOpenEnlistment. Le handle doit avoir ENLISTMENT_RECOVER accès à l’objet.

[in, optional] EnlistmentKey

Pointeur vers la valeur de la clé d’inscription que le gestionnaire de ressources a précédemment spécifiée en tant que paramètre EnlistmentKey vers ZwCreateEnlistment. Ce paramètre est facultatif et peut être NULL si le gestionnaire de ressources n’a pas fourni de clé d’inscription lorsqu’il a appelé ZwCreateEnlistment.

Valeur retournée

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

Code de retour Description
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_TRANSACTION_REQUEST_NOT_VALID
La transaction ou son inscription n’est pas dans l’état correct.
STATUS_PENDING
KTM a ajouté une notification de validation, de restauration ou de doute à la file d’attente de notification du gestionnaire de ressources, et le gestionnaire de ressources n’utilise pas de routine de rappel ResourceManagerNotification .
STATUS_ACCESS_DENIED
L’appelant n’a pas l’accès approprié à l’objet d’inscription.
 

La routine peut retourner d’autres valeurs NTSTATUS.

Remarques

Après qu’un gestionnaire de ressources a appelé ZwRecoverEnlistment, KTM remet une notification TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK ou TRANSACTION_NOTIFY_INDOUBT pour l’inscription. Par conséquent, à moins que le gestionnaire de ressources utilise une routine de rappel ResourceManagerNotification , il doit immédiatement appeler ZwGetNotificationResourceManager si ZwRecoverEnlistment retourne STATUS_SUCCESS ou STATUS_PENDING.

Pour plus d’informations sur ZwRecoverEnlistment, consultez Gestion des opérations de récupération.

NtRecoverEnlistment et ZwRecoverEnlistment 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, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Règles de conformité DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Voir aussi

ResourceManagerNotification

TmRecoverEnlistment

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

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment