master
h 78 lines 2.91 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef NETDATA_WINDOWS_EVENTS_SOURCES_H
4 #define NETDATA_WINDOWS_EVENTS_SOURCES_H
5
6 #include "libnetdata/libnetdata.h"
7
8 typedef enum {
9 WEVTS_NONE = 0,
10 WEVTS_ALL = (1 << 0),
11 WEVTS_ADMIN = (1 << 1),
12 WEVTS_OPERATIONAL = (1 << 2),
13 WEVTS_ANALYTIC = (1 << 3),
14 WEVTS_DEBUG = (1 << 4),
15 WEVTS_WINDOWS = (1 << 5),
16 WEVTS_ENABLED = (1 << 6),
17 WEVTS_DISABLED = (1 << 7),
18 WEVTS_FORWARDED = (1 << 8),
19 WEVTS_CLASSIC = (1 << 9),
20 WEVTS_BACKUP_MODE = (1 << 10),
21 WEVTS_OVERWRITE_MODE = (1 << 11),
22 WEVTS_STOP_WHEN_FULL_MODE = (1 << 12),
23 WEVTS_RETAIN_AND_BACKUP_MODE = (1 << 13),
24 } WEVT_SOURCE_TYPE;
25
26 BITMAP_STR_DEFINE_FUNCTIONS_EXTERN(WEVT_SOURCE_TYPE)
27
28 #define WEVT_SOURCE_ALL_NAME "All"
29 #define WEVT_SOURCE_ALL_ADMIN_NAME "All-Admin"
30 #define WEVT_SOURCE_ALL_OPERATIONAL_NAME "All-Operational"
31 #define WEVT_SOURCE_ALL_ANALYTIC_NAME "All-Analytic"
32 #define WEVT_SOURCE_ALL_DEBUG_NAME "All-Debug"
33 #define WEVT_SOURCE_ALL_WINDOWS_NAME "All-Windows"
34 #define WEVT_SOURCE_ALL_ENABLED_NAME "All-Enabled"
35 #define WEVT_SOURCE_ALL_DISABLED_NAME "All-Disabled"
36 #define WEVT_SOURCE_ALL_FORWARDED_NAME "All-Forwarded"
37 #define WEVT_SOURCE_ALL_CLASSIC_NAME "All-Classic"
38 #define WEVT_SOURCE_ALL_BACKUP_MODE_NAME "All-In-Backup-Mode"
39 #define WEVT_SOURCE_ALL_OVERWRITE_MODE_NAME "All-In-Overwrite-Mode"
40 #define WEVT_SOURCE_ALL_STOP_WHEN_FULL_MODE_NAME "All-In-StopWhenFull-Mode"
41 #define WEVT_SOURCE_ALL_RETAIN_AND_BACKUP_MODE_NAME "All-In-RetainAndBackup-Mode"
42
43 #define WEVT_SOURCE_ALL_OF_PROVIDER_PREFIX "All-Of-"
44
45 typedef struct {
46 const char *fullname;
47 size_t fullname_len;
48
49 const wchar_t *custom_query;
50
51 STRING *source;
52 STRING *provider;
53 WEVT_SOURCE_TYPE source_type;
54 usec_t msg_first_ut;
55 usec_t msg_last_ut;
56 size_t size;
57
58 usec_t last_scan_monotonic_ut;
59
60 uint64_t msg_first_id;
61 uint64_t msg_last_id;
62 uint64_t entries;
63 } LOGS_QUERY_SOURCE;
64
65 extern DICTIONARY *wevt_sources;
66 extern DICTIONARY *used_hashes_registry;
67
68 void wevt_sources_init(void);
69 void wevt_sources_scan(void);
70 void buffer_json_wevt_versions(BUFFER *wb);
71
72 void wevt_sources_to_json_array(BUFFER *wb);
73 WEVT_SOURCE_TYPE wevt_internal_source_type(const char *value);
74
75 int wevt_sources_dict_items_backward_compar(const void *a, const void *b);
76 int wevt_sources_dict_items_forward_compar(const void *a, const void *b);
77
78 #endif //NETDATA_WINDOWS_EVENTS_SOURCES_H