struttura TXN_PARAMETER_BLOCK (ntddk.h)

La struttura TXN_PARAMETER_BLOCK contiene informazioni su un'operazione di file transazionata.

Sintassi

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

Members

Length

Dimensione, in byte, della struttura TXN_PARAMETER_BLOCK.

TxFsContext

ID miniversion per il file.

TransactionObject

Puntatore opaco all'oggetto transazione per la transazione.

Commenti

Un miniversion è una versione di un file creato da un writer transazionale durante una transazione. Un writer transazionato è un handle di file transazionato aperto con qualsiasi autorizzazione che non fa parte dell'accesso in lettura generico, ma fa parte dell'accesso in scrittura generico.

Se non viene specificato un numero miniversione specifico per il file, il membro TxFsContext deve essere impostato su TXF_MINIVERSION_DEFAULT_VIEW.

Il membro TxFsContext del TXN_PARAMETER_BLOCK usa TXF_MINIVERSION_DEFAULT_VIEW per ottenere la visualizzazione predefinita del file richiesto basato sul valore del membro TransactionObject . Pertanto, se TransactionObject è la stessa transazione con il file richiesto bloccato per la modifica transazionale, il chiamante può visualizzare tali modifiche (la visualizzazione "dirty" del file) se il chiamante può specificare il valore del membro TransactionObject . Se TransactionObject non è la stessa transazione con il file richiesto bloccato per la modifica transazionale, il chiamante ottiene una visualizzazione isolata transazionale del file se specifica questo valore.

Una miniversione esiste solo come visualizzazione temporizzato di un file e non è ancora stata scritta come variante effettiva su disco di un determinato file. Un writer transazionato crea un miniversione usando il codice di controllo FSCTL_TXFS_CREATE_MINIVERSION per chiamare ZwFsControlFile. In risposta, il sistema crea una miniversione e restituisce il relativo ID miniversione. Il writer transazionato può continuare a apportare modifiche al file in seguito. Se il file viene aperto in un secondo momento utilizzando l'ID miniversione restituito come membro TxFsContext della struttura TXN_PARAMETER_BLOCK , l'handle di file risultante mostra il file così come era al momento della creazione di miniversione.

Tutte le miniversioni create in una transazione vengono allontanate al termine della transazione. In seguito, il file non può più essere aperto usando gli ID miniversione.

Un miniversion è disponibile solo per il writer transazionato che ha creato la miniversione, non per un lettore transazionato o un lettore non transazionato.

La routine IoGetTransactionParameterBlock restituisce un puntatore a questa struttura.

Requisiti

Requisito Valore
Intestazione ntddk.h (include Ntddk.h, Ntifs.h, FltKernel.h)

Vedi anche

FSCTL_TXFS_CREATE_MINIVERSION

IoGetTransactionParameterBlock

ZwFsControlFile