다음을 통해 공유


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