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_CLFSMGMTW32
7#define _INC_CLFSMGMTW32
8#if (_WIN32_WINNT >= 0x0600)
9#ifdef __cplusplus
10extern "C" {
11#endif
12
13typedef VOID (CALLBACK * PLOG_UNPINNED_CALLBACK )(
14  HANDLE hLogFile,
15  PVOID pvClientContext
16);
17
18typedef VOID (CALLBACK * PLOG_FULL_HANDLER_CALLBACK )(
19  HANDLE  hLogFile,
20  DWORD   dwError,
21  WINBOOL fLogIsPinned,
22  PVOID   pvClientContext
23);
24
25typedef VOID (CALLBACK * PLOG_TAIL_ADVANCE_CALLBACK )(
26  HANDLE hLogFile,
27  CLFS_LSN lsnTarget,
28  PVOID pvClientContext
29);
30
31typedef struct _LOG_MANAGEMENT_CALLBACKS {
32  PVOID                      CallbackContext;
33  PLOG_TAIL_ADVANCE_CALLBACK AdvanceTailCallback;
34  PLOG_FULL_HANDLER_CALLBACK LogFullHandlerCallback;
35  PLOG_UNPINNED_CALLBACK     LogUnpinnedCallback;
36} LOG_MANAGEMENT_CALLBACKS, *PLOG_MANAGEMENT_CALLBACKS;
37
38WINBOOL WINAPI HandleLogFull(
39  HANDLE hLog
40);
41
42WINBOOL WINAPI RegisterManageableLogClient(
43  HANDLE hLog,
44  PLOG_MANAGEMENT_CALLBACKS pCallbacks
45);
46
47WINBOOL WINAPI ReadLogNotification(
48  HANDLE hLog,
49  PCLFS_MGMT_NOTIFICATION pNotification,
50  LPOVERLAPPED lpOverlapped
51);
52
53WINBOOL WINAPI LogTailAdvanceFailure(
54  HANDLE hLog,
55  DWORD dwReason
56);
57
58WINBOOL WINAPI RegisterForLogWriteNotification(
59  HANDLE hLog,
60  ULONG cbThreshold,
61  WINBOOL fEnable
62);
63
64WINBOOL WINAPI RemoveLogPolicy(
65  HANDLE hLog,
66  CLFS_MANAGEMENT_POLICY_TYPE ePolicyType
67);
68
69WINBOOL WINAPI SetLogFileSizeWithPolicy(
70  HANDLE hLog,
71  PULONGLONG pDesiredSize,
72  PULONGLONG pResultingSize
73);
74#ifdef __cplusplus
75}
76#endif
77#endif /*(_WIN32_WINNT >= 0x0600)*/
78#endif /*_INC_CLFSMGMTW32*/
79