Partager via


structure TXN_PARAMETER_BLOCK (ntddk.h)

La structure TXN_PARAMETER_BLOCK contient des informations sur une opération de fichier transactionnée.

Syntaxe

typedef struct _TXN_PARAMETER_BLOCK {
  USHORT Length;
  USHORT TxFsContext;
  PVOID  TransactionObject;
} TXN_PARAMETER_BLOCK, *PTXN_PARAMETER_BLOCK;

Membres

Length

Taille, en octets, de la structure TXN_PARAMETER_BLOCK.

TxFsContext

ID de miniversion du fichier.

TransactionObject

Pointeur opaque vers l’objet transactionnel pour la transaction.

Remarques

Une miniversion est une version d’un fichier créé par un enregistreur transactionnel lors d’une transaction. (Un enregistreur transactionné est un handle de fichier transactionné ouvert avec n’importe quelle autorisation qui ne fait pas partie de l’accès en lecture générique, mais qui fait partie de l’accès en écriture générique.)

Si un numéro de miniversion spécifique pour le fichier n’est pas fourni, le membre TxFsContext doit être défini sur TXF_MINIVERSION_DEFAULT_VIEW.

Le TxFsContext membre de l'TXN_PARAMETER_BLOCK utilise TXF_MINIVERSION_DEFAULT_VIEW pour obtenir l’affichage par défaut du fichier demandé basé sur la valeur du membre TransactionObject. Par conséquent, si TransactionObject est la même transaction que le fichier demandé verrouillé pour la modification transactionnelle, l’appelant peut voir ces modifications (la vue « sale » du fichier) si l’appelant peut spécifier la valeur du membre TransactionObject. Si TransactionObject n’est pas la même transaction que le fichier demandé verrouillé pour la modification transactionnelle, l’appelant obtient une vue isolée transactionnelle du fichier si elle spécifie cette valeur.

Une miniversion existe uniquement en tant qu’affichage à un point dans le temps d’un fichier et n’a pas encore été écrite en tant que variante réelle sur disque d’un fichier donné. Un enregistreur transactionné crée une miniversion à l’aide du code de contrôle FSCTL_TXFS_CREATE_MINIVERSION pour appeler ZwFsControlFile. En réponse, le système crée une miniversion et retourne son ID de miniversion. L’enregistreur transactionné peut continuer à apporter des modifications au fichier par la suite. Si le fichier est ouvert ultérieurement à l’aide de l’ID de miniversion retourné en tant que TxFsContext membre de la structure TXN_PARAMETER_BLOCK, le handle de fichier résultant affiche le fichier tel qu’il était au moment de la création de la miniversion.

Toutes les miniversions créées dans une transaction disparaissent lorsque la transaction se termine. Par la suite, le fichier ne peut plus être ouvert à l’aide des ID de miniversion.

Une miniversion est disponible uniquement pour l’enregistreur transactionné qui a créé la miniversion, et non pour un lecteur traité ou un lecteur non transactionné.

La routine IoGetTransactionParameterBlock retourne un pointeur vers cette structure.

Exigences

Exigence Valeur
d’en-tête ntddk.h (include Ntddk.h, Ntifs.h, FltKernel.h)

Voir aussi

FSCTL_TXFS_CREATE_MINIVERSION

IoGetTransactionParameterBlock

ZwFsControlFile