estrutura TXN_PARAMETER_BLOCK (ntddk.h)

A estrutura TXN_PARAMETER_BLOCK contém informações sobre uma operação de arquivo transacionada.

Sintaxe

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

Membros

Length

O tamanho, em bytes, da estrutura TXN_PARAMETER_BLOCK.

TxFsContext

A ID de miniversão para o arquivo.

TransactionObject

Um ponteiro opaco para o objeto de transação da transação.

Comentários

Uma miniversão é uma versão de um arquivo que um gravador transacionado cria durante uma transação. (Um gravador transacionado é um identificador de arquivo transacionado aberto com qualquer permissão que não faz parte do acesso de leitura genérico, mas faz parte do acesso de gravação genérico.)

Se um número de miniversão específico para o arquivo não for fornecido, o membro TxFsContext deverá ser definido como TXF_MINIVERSION_DEFAULT_VIEW.

O membro TxFsContext do TXN_PARAMETER_BLOCK usa TXF_MINIVERSION_DEFAULT_VIEW para obter a exibição padrão do arquivo solicitado com base no valor do membro TransactionObject . Portanto, se TransactionObject for a mesma transação que tem o arquivo solicitado bloqueado para modificação transacionada, o chamador poderá ver essas modificações (a exibição "sujo" do arquivo) se o chamador puder especificar o valor do membro TransactionObject. Se TransactionObject não for a mesma transação que tem o arquivo solicitado bloqueado para modificação transacionada, o chamador obterá uma exibição isolada transacionalmente do arquivo se especificar esse valor.

Uma miniversão existe apenas como uma exibição pontual de um arquivo e ainda não foi gravada como uma variante real no disco de um determinado arquivo. Um gravador transacionado cria uma miniversão usando o código de controle FSCTL_TXFS_CREATE_MINIVERSION para chamar ZwFsControlFile. Em resposta, o sistema cria uma miniversão e retorna sua ID de miniversão. O gravador transacionado pode continuar a fazer alterações no arquivo depois disso. Se o arquivo for aberto posteriormente usando a ID de miniversão retornada como o membro TxFsContext da estrutura TXN_PARAMETER_BLOCK , o identificador de arquivo resultante mostrará o arquivo como era no momento em que a miniversão foi criada.

Todas as miniversões criadas em uma transação desaparecem quando a transação termina. Posteriormente, o arquivo não pode mais ser aberto usando as IDs de miniversão.

Uma miniversão está disponível apenas para o gravador transacionado que criou a miniversão, não para um leitor transacionado ou leitor não transacionado.

A rotina IoGetTransactionParameterBlock retorna um ponteiro para essa estrutura.

Requisitos

Requisito Valor
Cabeçalho ntddk.h (inclua Ntddk.h, Ntifs.h, FltKernel.h)

Confira também

FSCTL_TXFS_CREATE_MINIVERSION

IoGetTransactionParameterBlock

ZwFsControlFile