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

ファイルのミニバージョン ID。

TransactionObject

トランザクションのトランザクション オブジェクトへの不透明なポインター。

注釈

ミニバージョンとは、トランザクションライターがトランザクション中に作成するファイルのバージョンです。 ( トランザクション ライター は、汎用読み取りアクセスの一部ではないが、汎用書き込みアクセスの一部である任意のアクセス許可で開かれたトランザクション ファイル ハンドルです)。

ファイルの特定のミニバージョン番号が指定されていない場合は、 TxFsContext メンバーを TXF_MINIVERSION_DEFAULT_VIEW に設定する必要があります。

TXN_PARAMETER_BLOCKTxFsContext メンバーは、TXF_MINIVERSION_DEFAULT_VIEWを使用して、TransactionObject メンバーの値に基づく要求されたファイルの既定のビューを取得します。 したがって、TransactionObject がトランザクション変更のためにロックされた要求されたファイルを持つトランザクションと同じ場合、呼び出し元が TransactionObject メンバーの値を指定できる場合、呼び出し元はそれらの変更 (ファイルの "ダーティ" ビュー) を確認できます。 TransactionObject が、要求されたファイルがトランザクション変更のためにロックされているトランザクションと同じでない場合、呼び出し元は、この値を指定した場合に、ファイルのトランザクション分離ビューを取得します。

ミニバージョンは、ファイルのポイントインタイム ビューとしてのみ存在し、特定のファイルの実際のディスク上のバリアントとしてまだ書き込まれていません。 トランザクション ライターは、 FSCTL_TXFS_CREATE_MINIVERSION コントロール コードを使用して ZwFsControlFile を呼び出すことによって、ミニバージョンを作成します。 応答として、システムはミニバージョンを作成し、そのミニバージョン ID を返します。 トランザクション ライターは、その後もファイルに変更を加えることができます。 後で、返されたミニバージョン ID をTXN_PARAMETER_BLOCK構造体の TxFsContext メンバーとして使用してファイルを開くと、結果のファイル ハンドルには、ミニバージョンが作成された時点のファイルが表示されます。

トランザクションで作成されたすべてのミニバージョンは、トランザクションが終了すると消え去ります。 その後、miniversion ID を使用してファイルを開くできなくなります。

ミニバージョンは、トランザクション リーダーまたは非トランザクション リーダーではなく、ミニバージョンを作成したトランザクション ライターでのみ使用できます。

IoGetTransactionParameterBlock ルーチンは、この構造体へのポインターを返します。

要件

要件
Header ntddk.h (Ntddk.h、Ntifs.h、FltKernel.h を含む)

こちらもご覧ください

FSCTL_TXFS_CREATE_MINIVERSION

IoGetTransactionParameterBlock

ZwFsControlFile