master
 1/**
 2 * This file has no copyright assigned and is placed in the Public Domain.
 3 * This file is part of the mingw-w64 runtime package.
 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 5 */
 6#ifndef _INC_TXFW32
 7#define _INC_TXFW32
 8#include <clfs.h>
 9#if (_WIN32_WINNT >= 0x0600)
10
11#ifdef __cplusplus
12extern "C" {
13#endif
14
15typedef struct _TXF_ID {
16  __C89_NAMELESS struct {
17    LONGLONG LowPart;
18    LONGLONG HighPart;
19  } DUMMYSTRUCTNAME;
20} TXF_ID, *PTXF_ID;
21
22typedef struct _TXF_LOG_RECORD_AFFECTED_FILE {
23  USHORT Version;
24  ULONG  RecordLength;
25  ULONG  Flags;
26  TXF_ID TxfFileId;
27  UUID   KtmGuid;
28  ULONG  FileNameLength;
29  ULONG  FileNameByteOffsetInStructure;
30} TXF_LOG_RECORD_AFFECTED_FILE, *PTXF_LOG_RECORD_AFFECTED_FILE;
31
32typedef struct _TXF_LOG_RECORD_TRUNCATE {
33  USHORT   Version;
34  USHORT   RecordType;
35  ULONG    RecordLength;
36  ULONG    Flags;
37  TXF_ID   TxfFileId;
38  UUID     KtmGuid;
39  LONGLONG NewFileSize;
40  ULONG    FileNameLength;
41  ULONG    FileNameByteOffsetInStructure;
42} TXF_LOG_RECORD_TRUNCATE, *PTXF_LOG_RECORD_TRUNCATE;
43
44typedef struct _TXF_LOG_RECORD_WRITE {
45  USHORT   Version;
46  USHORT   RecordType;
47  ULONG    RecordLength;
48  ULONG    Flags;
49  TXF_ID   TxfFileId;
50  UUID     KtmGuid;
51  LONGLONG ByteOffsetInFile;
52  ULONG    NumBytesWritten;
53  ULONG    ByteOffsetInStructure;
54  ULONG    FileNameLength;
55  ULONG    FileNameByteOffsetInStructure;
56} TXF_LOG_RECORD_WRITE, *PTXF_LOG_RECORD_WRITE;
57
58#define TXF_LOG_RECORD_TYPE_WRITE 1
59#define TXF_LOG_RECORD_TYPE_TRUNCATE 2
60#define TXF_LOG_RECORD_TYPE_AFFECTED_FILE 4
61
62typedef struct _TXF_LOG_RECORD_BASE {
63  USHORT Version;
64  USHORT RecordType;
65  ULONG  RecordLength;
66} TXF_LOG_RECORD_BASE, *PTXF_LOG_RECORD_BASE;
67
68WINBOOL WINAPI TxfLogCreateFileReadContext(
69  LPCWSTR LogPath,
70  CLFS_LSN BeginningLsn,
71  CLFS_LSN EndingLSN,
72  PTXF_ID TxfFileId,
73  PVOID *TxfLogContext
74);
75
76WINBOOL WINAPI TxfLogDestroyReadContext(
77  PVOID TxfLogContext
78);
79
80WINBOOL WINAPI TxfLogReadRecords(
81  PVOID TxfLogContext,
82  ULONG BufferLength,
83  PVOID Buffer,
84  PULONG BytesUsed,
85  PULONG RecordCount
86);
87
88#ifdef __cplusplus
89}
90#endif
91#endif /* (_WIN32_WINNT >= 0x0600) */
92#endif /*_INC_TXFW32*/