aboutsummaryrefslogtreecommitdiff
path: root/x86_64-w64-mingw32/include/txfw32.h
blob: 11620c5ff6b6422cd2072422359ec79c8068e355 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the mingw-w64 runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
#ifndef _INC_TXFW32
#define _INC_TXFW32
#include <clfs.h>
#if (_WIN32_WINNT >= 0x0600)

#ifdef __cplusplus
extern "C" {
#endif

typedef struct _TXF_ID {
  __C89_NAMELESS struct {
    LONGLONG LowPart;
    LONGLONG HighPart;
  } DUMMYSTRUCTNAME;
} TXF_ID, *PTXF_ID;

typedef struct _TXF_LOG_RECORD_AFFECTED_FILE {
  USHORT Version;
  ULONG  RecordLength;
  ULONG  Flags;
  TXF_ID TxfFileId;
  UUID   KtmGuid;
  ULONG  FileNameLength;
  ULONG  FileNameByteOffsetInStructure;
} TXF_LOG_RECORD_AFFECTED_FILE, *PTXF_LOG_RECORD_AFFECTED_FILE;

typedef struct _TXF_LOG_RECORD_TRUNCATE {
  USHORT   Version;
  USHORT   RecordType;
  ULONG    RecordLength;
  ULONG    Flags;
  TXF_ID   TxfFileId;
  UUID     KtmGuid;
  LONGLONG NewFileSize;
  ULONG    FileNameLength;
  ULONG    FileNameByteOffsetInStructure;
} TXF_LOG_RECORD_TRUNCATE, *PTXF_LOG_RECORD_TRUNCATE;

typedef struct _TXF_LOG_RECORD_WRITE {
  USHORT   Version;
  USHORT   RecordType;
  ULONG    RecordLength;
  ULONG    Flags;
  TXF_ID   TxfFileId;
  UUID     KtmGuid;
  LONGLONG ByteOffsetInFile;
  ULONG    NumBytesWritten;
  ULONG    ByteOffsetInStructure;
  ULONG    FileNameLength;
  ULONG    FileNameByteOffsetInStructure;
} TXF_LOG_RECORD_WRITE, *PTXF_LOG_RECORD_WRITE;

#define TXF_LOG_RECORD_TYPE_WRITE 1
#define TXF_LOG_RECORD_TYPE_TRUNCATE 2
#define TXF_LOG_RECORD_TYPE_AFFECTED_FILE 4

typedef struct _TXF_LOG_RECORD_BASE {
  USHORT Version;
  USHORT RecordType;
  ULONG  RecordLength;
} TXF_LOG_RECORD_BASE, *PTXF_LOG_RECORD_BASE;

WINBOOL WINAPI TxfLogCreateFileReadContext(
  LPCWSTR LogPath,
  CLFS_LSN BeginningLsn,
  CLFS_LSN EndingLSN,
  PTXF_ID TxfFileId,
  PVOID *TxfLogContext
);

WINBOOL WINAPI TxfLogDestroyReadContext(
  PVOID TxfLogContext
);

WINBOOL WINAPI TxfLogReadRecords(
  PVOID TxfLogContext,
  ULONG BufferLength,
  PVOID Buffer,
  PULONG BytesUsed,
  PULONG RecordCount
);

#ifdef __cplusplus
}
#endif
#endif /* (_WIN32_WINNT >= 0x0600) */
#endif /*_INC_TXFW32*/