Partager via


TXN_PARAMETER_BLOCK structure (ntddk.h)

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

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 transaction pour la transaction.

Remarques

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

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

Le membre TxFsContext du 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 . Ainsi, si TransactionObject est la même transaction que celle dont le fichier demandé est verrouillé pour la modification transactionnée, 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 celle pour laquelle le fichier demandé est verrouillé pour la modification transactionnelle, l’appelant obtient une vue isolée transactionnelle du fichier s’il 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 writer traité 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 traité 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é comme membre TxFsContext de la structure TXN_PARAMETER_BLOCK , le handle de fichier obtenu 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 à la fin de la transaction. Ensuite, le fichier ne peut plus être ouvert à l’aide des ID de miniversion.

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

La routine IoGetTransactionParameterBlock retourne un pointeur vers cette structure.

Configuration requise

Condition requise Valeur
En-tête ntddk.h (inclure Ntddk.h, Ntifs.h, FltKernel.h)

Voir aussi

FSCTL_TXFS_CREATE_MINIVERSION

IoGetTransactionParameterBlock

ZwFsControlFile