ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/clfs.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 4701 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
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
10 extern "C" {
11 #endif
12
13 typedef enum {
14 ClfsContextNone = 0x00,
15 ClfsContextUndoNext,
16 ClfsContextPrevious,
17 ClfsContextForward
18 } CLFS_CONTEXT_MODE, *PCLFS_CONTEXT_MODE, **PPCLFS_CONTEXT_MODE;
19
20 typedef enum _CLFS_IOSTATS_CLASS {
21 ClfsIoStatsDefault = 0x0000,
22 ClfsIoStatsMax = 0xFFFF
23 } CLFS_IOSTATS_CLASS, *PCLFS_IOSTATS_CLASS, **PPCLFS_IOSTATS_CLASS;
24
25 typedef enum _CLFS_LOG_ARCHIVE_MODE {
26 ClfsLogArchiveEnabled = 0x01,
27 ClfsLogArchiveDisabled = 0x02
28 } CLFS_LOG_ARCHIVE_MODE, *PCLFS_LOG_ARCHIVE_MODE;
29
30 typedef enum _CLFS_RECORD_TYPE {
31 ClfsDataRecord = 0x01,
32 ClfsRestartRecord = 0x02,
33 ClfsClientRecord = 0x3F
34 } CLFS_RECORD_TYPE, *PCLFS_RECORD_TYPE;
35
36 typedef 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*/
41 typedef 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 */
51 typedef 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
60 typedef DWORD CLFS_CONTAINER_ID;
61
62 /* Goes in wdm.h */
63 typedef 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
78 typedef 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
86 typedef 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
92 typedef 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
112 typedef 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
120 typedef struct _CLFS_NODE_ID {
121 ULONG cType;
122 ULONG cbNode;
123 } CLFS_NODE_ID, *PCLFS_NODE_ID;
124
125 typedef 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
135 typedef struct _CLFS_WRITE_ENTRY {
136 PVOID Buffer;
137 ULONG ByteLength;
138 } CLFS_WRITE_ENTRY, *PCLFS_WRITE_ENTRY;
139
140 WINBOOL WINAPI LsnEqual(
141 const CLFS_LSN *plsn1,
142 const CLFS_LSN *plsn2
143 );
144
145 WINBOOL WINAPI LsnGreater(
146 const CLFS_LSN *plsn1,
147 const CLFS_LSN *plsn2
148 );
149
150 WINBOOL WINAPI LsnLess(
151 const CLFS_LSN *plsn1,
152 const CLFS_LSN *plsn2
153 );
154
155 WINBOOL WINAPI LsnNull(
156 const CLFS_LSN *plsn
157 );
158
159 #ifdef __cplusplus
160 }
161 #endif
162 #endif /*(_WIN32_WINNT >= 0x0600)*/
163 #endif /*_INC_CLFS*/