source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/clfsw32.h@ 1170

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

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

File size: 7.3 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_CLFSW32
7#define _INC_CLFSW32
8#include <clfs.h>
9#include <clfsmgmt.h>
10
11#if (_WIN32_WINNT >= 0x0600)
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16typedef PVOID (* CLFS_BLOCK_ALLOCATION) (ULONG cbBufferSize, PVOID pvUserContext);
17typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);
18typedef FILE *PFILE;
19typedef ULONG (__stdcall * CLFS_PRINT_RECORD_ROUTINE) (PFILE, CLFS_RECORD_TYPE, PVOID, ULONG);
20
21WINBOOL WINAPI AdvanceLogBase(PVOID pvMarshal,PCLFS_LSN plsnBase,ULONG fFlags,LPOVERLAPPED pOverlapped);
22
23WINBOOL WINAPI AlignReservedLog(PVOID pvMarshal,ULONG cReservedRecords,LONGLONG rgcbReservation,PLONGLONG pcbAlignReservation);
24WINBOOL WINAPI AllocReservedLog(PVOID pvMarshal,ULONG cReservedRecords,PLONGLONG pcbAdjustment);
25
26WINBOOL WINAPI AddLogContainer(HANDLE hLog,PULONGLONG pcbContainer,LPWSTR pwszContainerPath,LPVOID pReserved);
27WINBOOL WINAPI AddLogContainerSet(HANDLE hLog,USHORT cContainers,PULONGLONG pcbContainer,LPWSTR *rgwszContainerPath,PVOID Reserved);
28WINBOOL WINAPI CloseAndResetLogFile(HANDLE hLog);
29
30WINBOOL WINAPI CreateLogContainerScanContext(
31 HANDLE hLog,
32 ULONG cFromContainer,
33 ULONG cContainers,
34 CLFS_SCAN_MODE eScanMode,
35 PCLFS_SCAN_CONTEXT pcxScan,
36 LPOVERLAPPED pOverlapped
37);
38
39HANDLE WINAPI CreateLogFile(
40 LPCWSTR pszLogFileName,
41 ACCESS_MASK fDesiredAccess,
42 DWORD dwShareMode,
43 LPSECURITY_ATTRIBUTES psaLogFile,
44 ULONG fCreateDisposition,
45 ULONG fFlagsAndAttributes
46);
47
48WINBOOL WINAPI ScanLogContainers(
49 PCLFS_SCAN_CONTEXT pcxScan,
50 CLFS_SCAN_MODE eScanMode,
51 LPVOID pReserved
52);
53
54WINBOOL WINAPI CreateLogMarshallingArea(
55 HANDLE hLog,
56 CLFS_BLOCK_ALLOCATION pfnAllocBuffer,
57 CLFS_BLOCK_DEALLOCATION pfnFreeBuffer,
58 PVOID pvBlockAllocContext,
59 ULONG cbMarshallingBuffer,
60 ULONG cMaxWriteBuffers,
61 ULONG cMaxReadBuffers,
62 PVOID *ppvMarshal
63);
64
65WINBOOL WINAPI DeleteLogMarshallingArea(
66 PVOID pvMarshal
67);
68
69WINBOOL WINAPI DeleteLogByHandle(
70 HANDLE hLog
71);
72
73WINBOOL WINAPI DeleteLogFile(
74 LPCWSTR pszLogFileName,
75 PVOID pvReserved
76);
77
78WINBOOL WINAPI DeregisterManageableLogClient(
79 HANDLE hLog
80);
81
82WINBOOL WINAPI DumpLogRecords(
83 PWSTR pwszLogFileName,
84 CLFS_RECORD_TYPE fRecordType,
85 PCLFS_LSN plsnStart,
86 PCLFS_LSN plsnEnd,
87 PFILE pstrmOut,
88 CLFS_PRINT_RECORD_ROUTINE pfnPrintRecord,
89 CLFS_BLOCK_ALLOCATION pfnAllocBlock,
90 CLFS_BLOCK_DEALLOCATION pfnFreeBlock,
91 PVOID pvBlockAllocContext,
92 ULONG cbBlock,
93 ULONG cMaxBlocks
94);
95
96WINBOOL WINAPI ReadLogRecord(
97 PVOID pvMarshal,
98 PCLFS_LSN plsnFirst,
99 CLFS_CONTEXT_MODE eContextMode,
100 PVOID *ppvReadBuffer,
101 PULONG pcbReadBuffer,
102 PCLFS_RECORD_TYPE peRecordType,
103 PCLFS_LSN plsnUndoNext,
104 PCLFS_LSN plsnPrevious,
105 PVOID *ppvReadContext,
106 LPOVERLAPPED pOverlapped
107);
108
109WINBOOL WINAPI ReadNextLogRecord(
110 PVOID pvReadContext,
111 PVOID *ppvBuffer,
112 PULONG pcbBuffer,
113 PCLFS_RECORD_TYPE peRecordType,
114 PCLFS_LSN plsnUser,
115 PCLFS_LSN plsnUndoNext,
116 PCLFS_LSN plsnPrevious,
117 PCLFS_LSN plsnRecord,
118 LPOVERLAPPED pOverlapped
119);
120
121WINBOOL WINAPI FlushLogBuffers(
122 PVOID pvMarshal,
123 LPOVERLAPPED pOverlapped
124);
125
126WINBOOL WINAPI FlushLogToLsn(
127 PVOID pvMarshalContext,
128 PCLFS_LSN plsnFlush,
129 PCLFS_LSN plsnLastFlushed,
130 LPOVERLAPPED pOverlapped
131);
132
133WINBOOL WINAPI FreeReservedLog(
134 PVOID pvMarshal,
135 ULONG cReservedRecords,
136 PLONGLONG pcbAdjustment
137);
138
139WINBOOL WINAPI GetLogContainerName(
140 HANDLE hLog,
141 CLFS_CONTAINER_ID cidLogicalContainer,
142 LPCWSTR pwstrContainerName,
143 ULONG cLenContainerName,
144 PULONG pcActualLenContainerName
145);
146
147WINBOOL WINAPI GetLogFileInformation(
148 HANDLE hLog,
149 PCLFS_INFORMATION pinfoBuffer,
150 PULONG cbBuffer
151);
152
153WINBOOL WINAPI GetLogIoStatistics(
154 HANDLE hLog,
155 PVOID pvStatsBuffer,
156 ULONG cbStatsBuffer,
157 CLFS_IOSTATS_CLASS eStatsClass,
158 PULONG pcbStatsWritten
159);
160
161typedef LPVOID CLFS_LOG_ARCHIVE_CONTEXT;
162typedef CLFS_LOG_ARCHIVE_CONTEXT *PCLFS_LOG_ARCHIVE_CONTEXT;
163
164WINBOOL WINAPI GetNextLogArchiveExtent(
165 CLFS_LOG_ARCHIVE_CONTEXT pvArchiveContext,
166 CLFS_ARCHIVE_DESCRIPTOR rgadExtent[],
167 ULONG cDescriptors,
168 PULONG pcDescriptorsReturned
169);
170
171WINBOOL WINAPI PrepareLogArchive(
172 HANDLE hLog,
173 PWSTR pszBaseLogFileName,
174 ULONG cLen,
175 const PCLFS_LSN plsnLow,
176 const PCLFS_LSN plsnHigh,
177 PULONG pcActualLength,
178 PULONGLONG poffBaseLogFileData,
179 PULONGLONG pcbBaseLogFileLength,
180 PCLFS_LSN plsnBase,
181 PCLFS_LSN plsnLast,
182 PCLFS_LSN plsnCurrentArchiveTail,
183 PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
184);
185
186WINBOOL WINAPI TerminateLogArchive(
187 CLFS_LOG_ARCHIVE_CONTEXT pvArchiveContext
188);
189
190ULONG WINAPI LsnBlockOffset(
191 const CLFS_LSN *plsn
192);
193
194CLFS_CONTAINER_ID WINAPI LsnContainer(
195 const CLFS_LSN *plsn
196);
197
198CLFS_LSN WINAPI LsnCreate(
199 CLFS_CONTAINER_ID cidContainer,
200 ULONG offBlock,
201 ULONG cRecord
202);
203
204ULONG WINAPI LsnRecordSequence(
205 const CLFS_LSN *plsn
206);
207
208WINBOOL WINAPI PrepareLogArchive(
209 HANDLE hLog,
210 PWSTR pszBaseLogFileName,
211 ULONG cLen,
212 const PCLFS_LSN plsnLow,
213 const PCLFS_LSN plsnHigh,
214 PULONG pcActualLength,
215 PULONGLONG poffBaseLogFileData,
216 PULONGLONG pcbBaseLogFileLength,
217 PCLFS_LSN plsnBase,
218 PCLFS_LSN plsnLast,
219 PCLFS_LSN plsnCurrentArchiveTail,
220 PCLFS_LOG_ARCHIVE_CONTEXT ppvArchiveContext
221);
222
223WINBOOL WINAPI QueryLogPolicy(
224 HANDLE hLog,
225 CLFS_MGMT_POLICY_TYPE ePolicyType,
226 PCLFS_MGMT_POLICY pPolicyBuffer,
227 PULONG pcbPolicyBuffer
228);
229
230WINBOOL WINAPI ReadLogArchiveMetadata(
231 CLFS_LOG_ARCHIVE_CONTEXT pvArchiveContext,
232 ULONG cbOffset,
233 ULONG cbBytesToRead,
234 PBYTE pbReadBuffer,
235 PULONG pcbBytesRead
236);
237
238WINBOOL WINAPI ReadLogRestartArea(
239 PVOID pvMarshal,
240 PVOID *ppvRestartBuffer,
241 PULONG pcbRestartBuffer,
242 PCLFS_LSN plsn,
243 PVOID *ppvContext,
244 LPOVERLAPPED pOverlapped
245);
246
247WINBOOL WINAPI ReadPreviousLogRestartArea(
248 PVOID pvReadContext,
249 PVOID *ppvRestartBuffer,
250 PULONG pcbRestartBuffer,
251 PCLFS_LSN plsnRestart,
252 LPOVERLAPPED pOverlapped
253);
254
255WINBOOL WINAPI RemoveLogContainer(
256 HANDLE hLog,
257 LPWSTR pwszContainerPath,
258 WINBOOL fForce,
259 LPVOID pReserved
260);
261
262WINBOOL WINAPI RemoveLogContainerSet(
263 HANDLE hLog,
264 USHORT cContainers,
265 LPWSTR *rgwszContainerPath,
266 WINBOOL fForce,
267 LPVOID pReserved
268);
269
270WINBOOL WINAPI ReserveAndAppendLog(
271 PVOID pvMarshal,
272 PCLFS_WRITE_ENTRY rgWriteEntries,
273 ULONG cWriteEntries,
274 PCLFS_LSN plsnUndoNext,
275 PCLFS_LSN plsnPrevious,
276 ULONG cReserveRecords,
277 LONGLONG rgcbReservation[],
278 ULONG fFlags,
279 PCLFS_LSN plsn,
280 LPOVERLAPPED pOverlapped
281);
282
283WINBOOL WINAPI ReserveAndAppendLogAligned(
284 PVOID pvMarshal,
285 PCLFS_WRITE_ENTRY rgWriteEntries,
286 ULONG cWriteEntries,
287 ULONG cbEntryAlignment,
288 PCLFS_LSN plsnUndoNext,
289 PCLFS_LSN plsnPrevious,
290 ULONG cReserveRecords,
291 LONGLONG rgcbReservation[],
292 ULONG fFlags,
293 PCLFS_LSN plsn,
294 LPOVERLAPPED overlapped
295);
296
297WINBOOL WINAPI SetEndOfLog(
298 HANDLE hLog,
299 PCLFS_LSN plsnEnd,
300 LPOVERLAPPED lpOverlapped
301);
302
303WINBOOL WINAPI SetLogArchiveMode(
304 HANDLE hLog,
305 CLFS_LOG_ARCHIVE_MODE eMode
306);
307
308WINBOOL WINAPI SetLogArchiveTail(
309 HANDLE hLog,
310 PCLFS_LSN plsnArchiveTail,
311 LPVOID pReserved
312);
313
314WINBOOL WINAPI TerminateReadLog(
315 PVOID pvCursorContext
316);
317
318WINBOOL WINAPI ValidateLog(
319 LPCWSTR pszLogFileName,
320 LPSECURITY_ATTRIBUTES psaLogFile,
321 PCLFS_INFORMATION pinfoBuffer,
322 PULONG pcbBuffer
323);
324
325#ifdef __cplusplus
326}
327#endif
328#endif /* (_WIN32_WINNT >= 0x0600) */
329#endif /*_INC_CLFSW32*/
Note: See TracBrowser for help on using the repository browser.