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
10 extern "C" {
11 #endif
12 
13 typedef VOID (CALLBACK * PLOG_UNPINNED_CALLBACK )(
14   HANDLE hLogFile,
15   PVOID pvClientContext
16 );
17 
18 typedef VOID (CALLBACK * PLOG_FULL_HANDLER_CALLBACK )(
19   HANDLE  hLogFile,
20   DWORD   dwError,
21   WINBOOL fLogIsPinned,
22   PVOID   pvClientContext
23 );
24 
25 typedef VOID (CALLBACK * PLOG_TAIL_ADVANCE_CALLBACK )(
26   HANDLE hLogFile,
27   CLFS_LSN lsnTarget,
28   PVOID pvClientContext
29 );
30 
31 typedef 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 
38 WINBOOL WINAPI HandleLogFull(
39   HANDLE hLog
40 );
41 
42 WINBOOL WINAPI RegisterManageableLogClient(
43   HANDLE hLog,
44   PLOG_MANAGEMENT_CALLBACKS pCallbacks
45 );
46 
47 WINBOOL WINAPI ReadLogNotification(
48   HANDLE hLog,
49   PCLFS_MGMT_NOTIFICATION pNotification,
50   LPOVERLAPPED lpOverlapped
51 );
52 
53 WINBOOL WINAPI LogTailAdvanceFailure(
54   HANDLE hLog,
55   DWORD dwReason
56 );
57 
58 WINBOOL WINAPI RegisterForLogWriteNotification(
59   HANDLE hLog,
60   ULONG cbThreshold,
61   WINBOOL fEnable
62 );
63 
64 WINBOOL WINAPI RemoveLogPolicy(
65   HANDLE hLog,
66   CLFS_MANAGEMENT_POLICY_TYPE ePolicyType
67 );
68 
69 WINBOOL 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