次の方法で共有


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 メンバーとして使用して後でファイルを開くと、結果のファイル ハンドルには、ミニバージョンが作成された時点のファイルが表示されます。

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

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

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

必要条件

要件 価値
ヘッダー ntddk.h (Ntddk.h、Ntifs.h、FltKernel.h を含む)

関連項目

FSCTL_TXFS_CREATE_MINIVERSION

IoGetTransactionParameterBlock

ZwFsControlFile