source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/clfs.h@ 1172

Last change on this file since 1172 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 4.6 KB
Line 
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_CLFS
7#define _INC_CLFS
8#if (_WIN32_WINNT >= 0x0600)
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13typedef enum {
14 ClfsContextNone = 0x00,
15 ClfsContextUndoNext,
16 ClfsContextPrevious,
17 ClfsContextForward
18} CLFS_CONTEXT_MODE, *PCLFS_CONTEXT_MODE, **PPCLFS_CONTEXT_MODE;
19
20typedef enum _CLFS_IOSTATS_CLASS {
21 ClfsIoStatsDefault = 0x0000,
22 ClfsIoStatsMax = 0xFFFF
23} CLFS_IOSTATS_CLASS, *PCLFS_IOSTATS_CLASS, **PPCLFS_IOSTATS_CLASS;
24
25typedef enum _CLFS_LOG_ARCHIVE_MODE {
26 ClfsLogArchiveEnabled = 0x01,
27 ClfsLogArchiveDisabled = 0x02
28} CLFS_LOG_ARCHIVE_MODE, *PCLFS_LOG_ARCHIVE_MODE;
29
30typedef enum _CLFS_RECORD_TYPE {
31 ClfsDataRecord = 0x01,
32 ClfsRestartRecord = 0x02,
33 ClfsClientRecord = 0x3F
34} CLFS_RECORD_TYPE, *PCLFS_RECORD_TYPE;
35
36typedef union _CLFS_LSN {
37 ULONGLONG Internal;
38} CLFS_LSN, *PCLFS_LSN;
39
40/*http://msdn.microsoft.com/en-us/library/bb540355%28VS.85%29.aspx*/
41typedef enum _CLFS_SCAN_MODE {
42 CLFS_SCAN_INIT = 0x01,
43 CLFS_SCAN_FORWARD = 0x02,
44 CLFS_SCAN_BACKWARD = 0x04,
45 CLFS_SCAN_CLOSE = 0x08,
46 CLFS_SCAN_INITIALIZED = 0x10,
47 CLFS_SCAN_BUFFERED = 0x20
48} CLFS_SCAN_MODE;
49
50/* enum guessed from http://msdn.microsoft.com/en-us/library/bb540336%28VS.85%29.aspx */
51typedef enum _CLFS_CONTAINER_STATE {
52 ClfsContainerInitializing = 0x01,
53 ClfsContainerInactive = 0x02,
54 ClfsContainerActive = 0x04,
55 ClfsContainerActivePendingDelete = 0x08,
56 ClfsContainerPendingArchive = 0x10,
57 ClfsContainerPendingArchiveAndDelete = 0x20
58} CLFS_CONTAINER_STATE;
59
60typedef DWORD CLFS_CONTAINER_ID;
61
62/* Goes in wdm.h */
63typedef struct _CLFS_CONTAINER_INFORMATION {
64 ULONG FileAttributes;
65 ULONGLONG CreationTime;
66 ULONGLONG LastAccessTime;
67 ULONGLONG LastWriteTime;
68 LONGLONG ContainerSize;
69 ULONG FileNameActualLength;
70 ULONG FileNameLength;
71 WCHAR FileName[MAX_PATH];
72 CLFS_CONTAINER_STATE State;
73 CLFS_CONTAINER_ID PhysicalContainerId;
74 CLFS_CONTAINER_ID LogicalContainerId;
75} CLFS_CONTAINER_INFORMATION, *PCLFS_CONTAINER_INFORMATION, **PPCLFS_CONTAINER_INFORMATION;
76/**/
77
78typedef struct _CLFS_IO_STATISTICS_HEADER {
79 UCHAR ubMajorVersion;
80 UCHAR ubMinorVersion;
81 CLFS_IOSTATS_CLASS eStatsClass;
82 USHORT cbLength;
83 ULONG coffData;
84} CLFS_IO_STATISTICS_HEADER, *PCLFS_IO_STATISTICS_HEADER, **PPCLFS_IO_STATISTICS_HEADER;
85
86typedef struct _CLFS_ARCHIVE_DESCRIPTOR {
87 ULONGLONG coffLow;
88 ULONGLONG coffHigh;
89 CLFS_CONTAINER_INFORMATION infoContainer;
90} CLFS_ARCHIVE_DESCRIPTOR, *PCLFS_ARCHIVE_DESCRIPTOR, **PPCLFS_ARCHIVE_DESCRIPTOR;
91
92typedef struct _CLFS_INFORMATION {
93 LONGLONG TotalAvailable;
94 LONGLONG CurrentAvailable;
95 LONGLONG TotalReservation;
96 ULONGLONG BaseFileSize;
97 ULONGLONG ContainerSize;
98 ULONG TotalContainers;
99 ULONG FreeContainers;
100 ULONG TotalClients;
101 ULONG Attributes;
102 ULONG FlushThreshold;
103 ULONG SectorSize;
104 CLFS_LSN MinArchiveTailLsn;
105 CLFS_LSN BaseLsn;
106 CLFS_LSN LastFlushedLsn;
107 CLFS_LSN LastLsn;
108 CLFS_LSN RestartLsn;
109 GUID Identity;
110} CLFS_INFORMATION, *PCLFS_INFORMATION, **PPCLFS_INFORMATION;
111
112typedef struct _CLFS_IO_STATISTICS {
113 CLFS_IO_STATISTICS_HEADER hdrIoStats;
114 ULONGLONG cFlush;
115 ULONGLONG cbFlush;
116 ULONGLONG cMetaFlush;
117 ULONGLONG cbMetaFlush;
118} CLFS_IO_STATISTICS, *PCLFS_IO_STATISTICS, **PPCLFS_IO_STATISTICS;
119
120typedef struct _CLFS_NODE_ID {
121 ULONG cType;
122 ULONG cbNode;
123} CLFS_NODE_ID, *PCLFS_NODE_ID;
124
125typedef struct _CLFS_SCAN_CONTEXT {
126 CLFS_NODE_ID cidNode;
127 HANDLE hLog;
128 ULONG cIndex;
129 ULONG cContainers;
130 ULONG cContainersReturned;
131 CLFS_SCAN_MODE eScanMode;
132 PCLFS_CONTAINER_INFORMATION pinfoContainer;
133} CLFS_SCAN_CONTEXT, *PCLFS_SCAN_CONTEXT;
134
135typedef struct _CLFS_WRITE_ENTRY {
136 PVOID Buffer;
137 ULONG ByteLength;
138} CLFS_WRITE_ENTRY, *PCLFS_WRITE_ENTRY;
139
140WINBOOL WINAPI LsnEqual(
141 const CLFS_LSN *plsn1,
142 const CLFS_LSN *plsn2
143);
144
145WINBOOL WINAPI LsnGreater(
146 const CLFS_LSN *plsn1,
147 const CLFS_LSN *plsn2
148);
149
150WINBOOL WINAPI LsnLess(
151 const CLFS_LSN *plsn1,
152 const CLFS_LSN *plsn2
153);
154
155WINBOOL WINAPI LsnNull(
156 const CLFS_LSN *plsn
157);
158
159#ifdef __cplusplus
160}
161#endif
162#endif /*(_WIN32_WINNT >= 0x0600)*/
163#endif /*_INC_CLFS*/
Note: See TracBrowser for help on using the repository browser.