master
h 41 lines 1.48 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 #ifndef NETDATA_WINDOWS_EVENTS_PROVIDERS_H
4 #define NETDATA_WINDOWS_EVENTS_PROVIDERS_H
5
6 typedef enum __attribute__((packed)) {
7 WEVT_PLATFORM_UNKNOWN = 0,
8 WEVT_PLATFORM_WEL,
9 WEVT_PLATFORM_ETW,
10 WEVT_PLATFORM_TL,
11 } WEVT_PROVIDER_PLATFORM;
12
13 #include "windows-events.h"
14
15 struct provider_meta_handle;
16 typedef struct provider_meta_handle PROVIDER_META_HANDLE;
17
18 PROVIDER_META_HANDLE *provider_get(ND_UUID uuid, LPCWSTR providerName);
19 void provider_release(PROVIDER_META_HANDLE *h);
20 EVT_HANDLE provider_handle(PROVIDER_META_HANDLE *h);
21 PROVIDER_META_HANDLE *provider_dup(PROVIDER_META_HANDLE *h);
22
23 void providers_release_unused_handles(void);
24
25 const char *provider_get_name(PROVIDER_META_HANDLE *p);
26 ND_UUID provider_get_uuid(PROVIDER_META_HANDLE *p);
27
28 void provider_cache_init(void);
29
30 bool provider_keyword_cacheable(PROVIDER_META_HANDLE *h);
31 bool provider_tasks_cacheable(PROVIDER_META_HANDLE *h);
32 bool is_useful_provider_for_levels(PROVIDER_META_HANDLE *h);
33 bool provider_opcodes_cacheable(PROVIDER_META_HANDLE *h);
34
35 bool provider_get_keywords(TXT_UTF8 *dst, PROVIDER_META_HANDLE *h, uint64_t value);
36 bool provider_get_level(TXT_UTF8 *dst, PROVIDER_META_HANDLE *h, uint64_t value);
37 bool provider_get_task(TXT_UTF8 *dst, PROVIDER_META_HANDLE *h, uint64_t value);
38 bool provider_get_opcode(TXT_UTF8 *dst, PROVIDER_META_HANDLE *h, uint64_t value);
39 WEVT_PROVIDER_PLATFORM provider_get_platform(PROVIDER_META_HANDLE *p);
40
41 #endif //NETDATA_WINDOWS_EVENTS_PROVIDERS_H