структура TXN_PARAMETER_BLOCK (ntddk.h)

Структура TXN_PARAMETER_BLOCK содержит сведения об операции с файлами транзакций.

Синтаксис

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

Члены

Length

Размер структуры TXN_PARAMETER_BLOCK в байтах.

TxFsContext

Идентификатор мини-версии для файла.

TransactionObject

Непрозрачный указатель на объект транзакции для транзакции.

Комментарии

Миниверсия — это версия файла, которую модуль записи транзакций создает во время транзакции. (Модуль записи транзакций — это дескриптор файла, открытый с любым разрешением, которое не является частью универсального доступа на чтение, но является частью универсального доступа на запись.)

Если конкретный номер миниверсии для файла не указан, для элемента TxFsContext необходимо задать значение TXF_MINIVERSION_DEFAULT_VIEW.

Элемент TxFsContextTXN_PARAMETER_BLOCK использует TXF_MINIVERSION_DEFAULT_VIEW для получения представления запрошенного файла по умолчанию, основанного на значении элемента TransactionObject . Таким образом, если TransactionObject — это та же транзакция, в которую был заблокирован запрошенный файл для изменения транзакций, вызывающий объект может видеть эти изменения (представление "грязное" файла), если вызывающий объект может указать значение элемента TransactionObject. Если TransactionObject — это не та транзакция, в котором запрошенный файл заблокирован для изменения транзакций, вызывающий объект получает транзакционно изолированное представление файла, если он указывает это значение.

Миниверсия существует только как представление файла на определенный момент времени и еще не была записана как фактический вариант данного файла на диске. Модуль записи транзакций создает миниверсию, используя код элемента управления FSCTL_TXFS_CREATE_MINIVERSION для вызова ZwFsControlFile. В ответ система создает миниверсию и возвращает ее идентификатор. Модуль записи транзакций может продолжать вносить изменения в файл после этого. Если файл будет открыт позже с помощью возвращенного идентификатора миниверсии в качестве элемента TxFsContext структуры TXN_PARAMETER_BLOCK , результирующий дескриптор файла отображает файл в том виде, в который он был на момент создания миниверсии.

Все миниверсии, созданные в транзакции, уходят после завершения транзакции. После этого файл больше нельзя будет открыть с помощью идентификаторов миниверсий.

Миниверсия доступна только для модуля записи транзакций, создавшего миниверсию, а не для средства чтения с транзакциями или средства чтения без транзакций.

Подпрограмма IoGetTransactionParameterBlock возвращает указатель на эту структуру.

Требования

Требование Значение
Заголовок ntddk.h (включая Ntddk.h, Ntifs.h, FltKernel.h)

См. также раздел

FSCTL_TXFS_CREATE_MINIVERSION

IoGetTransactionParameterBlock

ZwFsControlFile