Fonction ZwRollforwardTransactionManager (wdm.h)

La routine ZwRollforwardTransactionManager lance des opérations de récupération pour toutes les transactions en cours qui sont attribuées à un gestionnaire de transactions spécifié.

Syntaxe

NTSYSCALLAPI NTSTATUS ZwRollforwardTransactionManager(
  [in]           HANDLE         TransactionManagerHandle,
  [in, optional] PLARGE_INTEGER TmVirtualClock
);

Paramètres

[in] TransactionManagerHandle

Handle d’un objet de gestionnaire de transactions obtenu par un appel précédent à ZwCreateTransactionManager ou ZwOpenTransactionManager. Le handle doit avoir TRANSACTIONMANAGER_RECOVER accès à l’objet.

[in, optional] TmVirtualClock

Pointeur vers une valeur d’horloge virtuelle. Ce paramètre est facultatif et peut être NULL. Pour plus d’informations sur ce paramètre, consultez la section Remarques suivante.

Valeur retournée

ZwRollforwardTransactionManager 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 de gestionnaire de transactions.
STATUS_INVALID_HANDLE
Un handle d’objet n’est pas valide.
STATUS_ACCESS_DENIED
L’appelant n’a pas l’accès approprié à l’objet gestionnaire de transactions.
STATUS_TM_VOLATILE
L’objet gestionnaire de transactions spécifié n’a pas de fichier journal. La récupération n’est donc pas disponible.
STATUS_UNSUCCESSFUL
L’objet gestionnaire de transactions spécifié est dans un état inattendu.
 

La routine peut retourner d’autres valeurs NTSTATUS.

Remarques

La routine ZwRollforwardTransactionManager récupère toutes les activités journalisées que KTM trouve dans le fichier journal du gestionnaire de transactions, jusqu’à et y compris la valeur d’horloge virtuelle que le paramètre TmVirtualClock fournit.

Votre composant peut parcourir le fichier journal de manière incrémentielle en appelant ZwRollforwardTransactionManager de façon répétitive et en définissant le paramètre VirtualClock sur une valeur plus élevée avant chaque appel.

Si le paramètre TmVirtualClock a la valeur NULL, appeler ZwRollforwardTransactionManager équivaut à appeler ZwRecoverTransactionManager.

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

NtRollforwardTransactionManager et ZwRollforwardTransactionManager sont deux versions de la même routine Windows Native System Services. La routine NtRollforwardTransactionManager dans le noyau Windows n’est pas directement accessible aux pilotes en mode noyau. Toutefois, les pilotes en mode noyau peuvent accéder indirectement à cette routine en appelant la routine ZwRollforwardTransactionManager .

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 plus récentes de Windows.
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(storport),PowerIrpDDis(wdm)

Voir aussi

TmRecoverTransactionManager

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

ZwCreateTransactionManager

ZwOpenTransactionManager

ZwRecoverTransactionManager