diff --git a/ebpf__api_8h_source.html b/ebpf__api_8h_source.html index bc51da7733..092c6f62bb 100644 --- a/ebpf__api_8h_source.html +++ b/ebpf__api_8h_source.html @@ -324,7 +324,7 @@
ebpf_attach_type_t
GUID ebpf_attach_type_t
Definition: ebpf_windows.h:44
ebpf_program_type_t
GUID ebpf_program_type_t
Definition: ebpf_windows.h:43
_ebpf_map_info
eBPF Map Information
Definition: ebpf_core_structs.h:21
-
_ebpf_program_info
Definition: ebpf_program_types.h:32
+
_ebpf_program_info
Definition: ebpf_program_types.h:39
_ebpf_section_info
Definition: ebpf_api.h:56
_ebpf_section_info::next
struct _ebpf_section_info * next
Definition: ebpf_api.h:57
_ebpf_section_info::section_name
_Field_z_ const char * section_name
Definition: ebpf_api.h:58
diff --git a/ebpf__extension__uuids_8h.html b/ebpf__extension__uuids_8h.html index e70603da59..99152693d6 100644 --- a/ebpf__extension__uuids_8h.html +++ b/ebpf__extension__uuids_8h.html @@ -72,7 +72,6 @@
#include "ebpf_windows.h"
-#include <stdint.h>

Go to the source code of this file.

diff --git a/ebpf__extension__uuids_8h_source.html b/ebpf__extension__uuids_8h_source.html index c4846eda52..7c2e5d4a7f 100644 --- a/ebpf__extension__uuids_8h_source.html +++ b/ebpf__extension__uuids_8h_source.html @@ -75,25 +75,23 @@
4 
5 #include "ebpf_windows.h"
6 
-
7 #include <stdint.h>
-
8 
-
9 #ifdef __cplusplus
-
10 extern "C"
-
11 {
-
12 #endif
-
15  /* 2934ad50-2154-44b6-9622-6c528c068411 */
-
16  __declspec(selectany) GUID EBPF_PROGRAM_INFO_EXTENSION_IID = {
-
17  0x2934ad50, 0x2154, 0x44b6, {0x96, 0x22, 0x6c, 0x52, 0x8c, 0x06, 0x84, 0x11}};
-
18 
-
21  /* 5d564054-2736-406d-8b22-12bcffaf0a9f */
-
22  __declspec(selectany) GUID EBPF_HOOK_EXTENSION_IID = {
-
23  0x5d564054, 0x2736, 0x406d, {0x8b, 0x22, 0x12, 0xbc, 0xff, 0xaf, 0x0a, 0x9f}};
-
24 
-
25 #ifdef __cplusplus
-
26 }
-
27 #endif
-
GUID EBPF_HOOK_EXTENSION_IID
NPI ID for eBPF hook extension.
Definition: ebpf_extension_uuids.h:22
-
GUID EBPF_PROGRAM_INFO_EXTENSION_IID
NPI ID for eBPF program information extension.
Definition: ebpf_extension_uuids.h:16
+
7 #ifdef __cplusplus
+
8 extern "C"
+
9 {
+
10 #endif
+
13  /* 2934ad50-2154-44b6-9622-6c528c068411 */
+
14  __declspec(selectany) GUID EBPF_PROGRAM_INFO_EXTENSION_IID = {
+
15  0x2934ad50, 0x2154, 0x44b6, {0x96, 0x22, 0x6c, 0x52, 0x8c, 0x06, 0x84, 0x11}};
+
16 
+
19  /* 5d564054-2736-406d-8b22-12bcffaf0a9f */
+
20  __declspec(selectany) GUID EBPF_HOOK_EXTENSION_IID = {
+
21  0x5d564054, 0x2736, 0x406d, {0x8b, 0x22, 0x12, 0xbc, 0xff, 0xaf, 0x0a, 0x9f}};
+
22 
+
23 #ifdef __cplusplus
+
24 }
+
25 #endif
+
GUID EBPF_HOOK_EXTENSION_IID
NPI ID for eBPF hook extension.
Definition: ebpf_extension_uuids.h:20
+
GUID EBPF_PROGRAM_INFO_EXTENSION_IID
NPI ID for eBPF program information extension.
Definition: ebpf_extension_uuids.h:14
uint8_t GUID[16]
Definition: ebpf_windows.h:13
diff --git a/ebpf__program__attach__type__guids_8h.html b/ebpf__program__attach__type__guids_8h.html index 04502c175b..cca5063fc1 100644 --- a/ebpf__program__attach__type__guids_8h.html +++ b/ebpf__program__attach__type__guids_8h.html @@ -73,8 +73,6 @@
#include "ebpf_windows.h"
-#include <stdbool.h>
-#include <stdint.h>

Go to the source code of this file.

diff --git a/ebpf__program__attach__type__guids_8h_source.html b/ebpf__program__attach__type__guids_8h_source.html index ffc751967b..6ded3576b9 100644 --- a/ebpf__program__attach__type__guids_8h_source.html +++ b/ebpf__program__attach__type__guids_8h_source.html @@ -75,121 +75,118 @@
4 
5 #include "ebpf_windows.h"
6 
-
7 #include <stdbool.h>
-
8 #include <stdint.h>
-
9 
-
10 #ifdef __cplusplus
-
11 extern "C"
-
12 {
-
13 #endif
-
14  //
-
15  // Attach Types.
-
16  //
-
17 
-
18  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_UNSPECIFIED = {0};
-
19 
-
24  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_XDP = {
-
25  0x85e0d8ef, 0x579e, 0x4931, {0xb0, 0x72, 0x8e, 0xe2, 0x26, 0xbb, 0x2e, 0x9d}};
-
26 
-
31  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_BIND = {
-
32  0xb9707e04, 0x8127, 0x4c72, {0x83, 0x3e, 0x05, 0xb1, 0xfb, 0x43, 0x94, 0x96}};
-
33 
-
40  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET4_CONNECT = {
-
41  0xa82e37b1, 0xaee7, 0x11ec, {0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee}};
-
42 
-
49  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET6_CONNECT = {
-
50  0xa82e37b2, 0xaee7, 0x11ec, {0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee}};
-
51 
-
58  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET4_RECV_ACCEPT = {
-
59  0xa82e37b3, 0xaee7, 0x11ec, {0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee}};
-
60 
-
67  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET6_RECV_ACCEPT = {
-
68  0xa82e37b4, 0xaee7, 0x11ec, {0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee}};
-
69 
-
74  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_SOCK_OPS = {
-
75  0x837d02cd, 0x3251, 0x4632, {0x8d, 0x94, 0x60, 0xd3, 0xb4, 0x57, 0x69, 0xf2}};
-
76 
-
81  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_SAMPLE = {
-
82  0xf788ef4b, 0x207d, 0x4dc3, {0x85, 0xcf, 0x0f, 0x2e, 0xa1, 0x07, 0x21, 0x3c}};
-
83 
-
88  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_XDP_TEST = {
-
89  0x0dccc15d, 0xa5f9, 0x4dc1, {0xac, 0x79, 0xfa, 0x25, 0xee, 0xf2, 0x15, 0xc3}};
-
90 
-
91  //
-
92  // Program Types.
-
93  //
-
94 
-
95  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_UNSPECIFIED = {0};
-
96 
-
97 #define EBPF_PROGRAM_TYPE_XDP_GUID \
-
98  { \
-
99  0xf1832a85, 0x85d5, 0x45b0, { 0x98, 0xa0, 0x70, 0x69, 0xd6, 0x30, 0x13, 0xb0 } \
-
100  }
-
101 
-
110  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_XDP = EBPF_PROGRAM_TYPE_XDP_GUID;
-
111 
-
112 #define EBPF_PROGRAM_TYPE_BIND_GUID \
-
113  { \
-
114  0x608c517c, 0x6c52, 0x4a26, { 0xb6, 0x77, 0xbb, 0x1c, 0x34, 0x42, 0x5a, 0xdf } \
-
115  }
-
116 
-
125  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_BIND = EBPF_PROGRAM_TYPE_BIND_GUID;
-
126 
-
127 #define EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR_GUID \
-
128  { \
-
129  0x92ec8e39, 0xaeec, 0x11ec, { 0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee } \
-
130  }
-
131 
-
142  __declspec(selectany)
-
143  ebpf_program_type_t EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR = EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR_GUID;
-
144 
-
145 #define EBPF_PROGRAM_TYPE_SOCK_OPS_GUID \
-
146  { \
-
147  0x43fb224d, 0x68f8, 0x46d6, { 0xaa, 0x3f, 0xc8, 0x56, 0x51, 0x8c, 0xbb, 0x32 } \
-
148  }
-
149 
-
154  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_SOCK_OPS = EBPF_PROGRAM_TYPE_SOCK_OPS_GUID;
-
155 
-
156 #define EBPF_PROGRAM_TYPE_SAMPLE_GUID \
-
157  { \
-
158  0xf788ef4a, 0x207d, 0x4dc3, { 0x85, 0xcf, 0x0f, 0x2e, 0xa1, 0x07, 0x21, 0x3c } \
-
159  }
-
160 
-
166  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_SAMPLE = EBPF_PROGRAM_TYPE_SAMPLE_GUID;
-
167 
-
168 #define EBPF_PROGRAM_TYPE_XDP_TEST_GUID \
-
169  { \
-
170  0xce8ccef8, 0x4241, 0x4975, { 0x98, 0x4d, 0xbb, 0x39, 0x21, 0xdf, 0xa7, 0x3c } \
-
171  }
-
172 
-
181  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_XDP_TEST = EBPF_PROGRAM_TYPE_XDP_TEST_GUID;
-
182 
-
183 #ifdef __cplusplus
-
184 }
-
185 #endif
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_SOCK_OPS
Attach type for handling socket event notifications.
Definition: ebpf_program_attach_type_guids.h:74
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET6_CONNECT
The programs attached to the INET6_CONNECT hook will be invoked for connect() calls on TCP or UDP soc...
Definition: ebpf_program_attach_type_guids.h:49
-
ebpf_program_type_t EBPF_PROGRAM_TYPE_XDP
Program type for handling incoming packets as early as possible.
Definition: ebpf_program_attach_type_guids.h:110
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_SAMPLE
Attach type implemented by eBPF Sample Extension driver, used for testing.
Definition: ebpf_program_attach_type_guids.h:81
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET6_RECV_ACCEPT
The programs attached to the INET6_RECV_ACCEPT hook will get invoked for TCP accept() calls or for th...
Definition: ebpf_program_attach_type_guids.h:67
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_XDP
Attach type for handling incoming packets as early as possible.
Definition: ebpf_program_attach_type_guids.h:24
-
ebpf_program_type_t EBPF_PROGRAM_TYPE_XDP_TEST
Program type for handling incoming packets as early as possible.
Definition: ebpf_program_attach_type_guids.h:181
-
#define EBPF_PROGRAM_TYPE_SAMPLE_GUID
Definition: ebpf_program_attach_type_guids.h:156
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_UNSPECIFIED
Definition: ebpf_program_attach_type_guids.h:18
-
ebpf_program_type_t EBPF_PROGRAM_TYPE_SAMPLE
Program type for handling calls from the eBPF sample extension. Used for testing.
Definition: ebpf_program_attach_type_guids.h:166
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET4_CONNECT
The programs attached to the INET4_CONNECT hook will be invoked for connect() calls on TCP or UDP soc...
Definition: ebpf_program_attach_type_guids.h:40
-
ebpf_program_type_t EBPF_PROGRAM_TYPE_BIND
Program type for handling socket bind() requests.
Definition: ebpf_program_attach_type_guids.h:125
-
#define EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR_GUID
Definition: ebpf_program_attach_type_guids.h:127
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_BIND
Attach type for handling socket bind() requests.
Definition: ebpf_program_attach_type_guids.h:31
-
#define EBPF_PROGRAM_TYPE_XDP_GUID
Definition: ebpf_program_attach_type_guids.h:97
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET4_RECV_ACCEPT
The programs attached to the INET4_RECV_ACCEPT hook will get invoked for TCP accept() calls or for th...
Definition: ebpf_program_attach_type_guids.h:58
-
#define EBPF_PROGRAM_TYPE_XDP_TEST_GUID
Definition: ebpf_program_attach_type_guids.h:168
-
ebpf_attach_type_t EBPF_ATTACH_TYPE_XDP_TEST
Attach type for handling incoming packets as early as possible.
Definition: ebpf_program_attach_type_guids.h:88
-
#define EBPF_PROGRAM_TYPE_BIND_GUID
Definition: ebpf_program_attach_type_guids.h:112
-
ebpf_program_type_t EBPF_PROGRAM_TYPE_SOCK_OPS
Program type for handling socket event notifications.
Definition: ebpf_program_attach_type_guids.h:154
-
#define EBPF_PROGRAM_TYPE_SOCK_OPS_GUID
Definition: ebpf_program_attach_type_guids.h:145
-
ebpf_program_type_t EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR
Program type for handling various socket operations such as connect(), accept() etc.
Definition: ebpf_program_attach_type_guids.h:143
-
ebpf_program_type_t EBPF_PROGRAM_TYPE_UNSPECIFIED
Definition: ebpf_program_attach_type_guids.h:95
+
7 #ifdef __cplusplus
+
8 extern "C"
+
9 {
+
10 #endif
+
11  //
+
12  // Attach Types.
+
13  //
+
14 
+
15  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_UNSPECIFIED = {0};
+
16 
+
21  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_XDP = {
+
22  0x85e0d8ef, 0x579e, 0x4931, {0xb0, 0x72, 0x8e, 0xe2, 0x26, 0xbb, 0x2e, 0x9d}};
+
23 
+
28  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_BIND = {
+
29  0xb9707e04, 0x8127, 0x4c72, {0x83, 0x3e, 0x05, 0xb1, 0xfb, 0x43, 0x94, 0x96}};
+
30 
+
37  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET4_CONNECT = {
+
38  0xa82e37b1, 0xaee7, 0x11ec, {0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee}};
+
39 
+
46  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET6_CONNECT = {
+
47  0xa82e37b2, 0xaee7, 0x11ec, {0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee}};
+
48 
+
55  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET4_RECV_ACCEPT = {
+
56  0xa82e37b3, 0xaee7, 0x11ec, {0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee}};
+
57 
+
64  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET6_RECV_ACCEPT = {
+
65  0xa82e37b4, 0xaee7, 0x11ec, {0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee}};
+
66 
+
71  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_SOCK_OPS = {
+
72  0x837d02cd, 0x3251, 0x4632, {0x8d, 0x94, 0x60, 0xd3, 0xb4, 0x57, 0x69, 0xf2}};
+
73 
+
78  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_SAMPLE = {
+
79  0xf788ef4b, 0x207d, 0x4dc3, {0x85, 0xcf, 0x0f, 0x2e, 0xa1, 0x07, 0x21, 0x3c}};
+
80 
+
85  __declspec(selectany) ebpf_attach_type_t EBPF_ATTACH_TYPE_XDP_TEST = {
+
86  0x0dccc15d, 0xa5f9, 0x4dc1, {0xac, 0x79, 0xfa, 0x25, 0xee, 0xf2, 0x15, 0xc3}};
+
87 
+
88  //
+
89  // Program Types.
+
90  //
+
91 
+
92  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_UNSPECIFIED = {0};
+
93 
+
94 #define EBPF_PROGRAM_TYPE_XDP_GUID \
+
95  { \
+
96  0xf1832a85, 0x85d5, 0x45b0, { 0x98, 0xa0, 0x70, 0x69, 0xd6, 0x30, 0x13, 0xb0 } \
+
97  }
+
98 
+
107  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_XDP = EBPF_PROGRAM_TYPE_XDP_GUID;
+
108 
+
109 #define EBPF_PROGRAM_TYPE_BIND_GUID \
+
110  { \
+
111  0x608c517c, 0x6c52, 0x4a26, { 0xb6, 0x77, 0xbb, 0x1c, 0x34, 0x42, 0x5a, 0xdf } \
+
112  }
+
113 
+
122  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_BIND = EBPF_PROGRAM_TYPE_BIND_GUID;
+
123 
+
124 #define EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR_GUID \
+
125  { \
+
126  0x92ec8e39, 0xaeec, 0x11ec, { 0x9a, 0x30, 0x18, 0x60, 0x24, 0x89, 0xbe, 0xee } \
+
127  }
+
128 
+
139  __declspec(selectany)
+
140  ebpf_program_type_t EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR = EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR_GUID;
+
141 
+
142 #define EBPF_PROGRAM_TYPE_SOCK_OPS_GUID \
+
143  { \
+
144  0x43fb224d, 0x68f8, 0x46d6, { 0xaa, 0x3f, 0xc8, 0x56, 0x51, 0x8c, 0xbb, 0x32 } \
+
145  }
+
146 
+
151  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_SOCK_OPS = EBPF_PROGRAM_TYPE_SOCK_OPS_GUID;
+
152 
+
153 #define EBPF_PROGRAM_TYPE_SAMPLE_GUID \
+
154  { \
+
155  0xf788ef4a, 0x207d, 0x4dc3, { 0x85, 0xcf, 0x0f, 0x2e, 0xa1, 0x07, 0x21, 0x3c } \
+
156  }
+
157 
+
163  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_SAMPLE = EBPF_PROGRAM_TYPE_SAMPLE_GUID;
+
164 
+
165 #define EBPF_PROGRAM_TYPE_XDP_TEST_GUID \
+
166  { \
+
167  0xce8ccef8, 0x4241, 0x4975, { 0x98, 0x4d, 0xbb, 0x39, 0x21, 0xdf, 0xa7, 0x3c } \
+
168  }
+
169 
+
178  __declspec(selectany) ebpf_program_type_t EBPF_PROGRAM_TYPE_XDP_TEST = EBPF_PROGRAM_TYPE_XDP_TEST_GUID;
+
179 
+
180 #ifdef __cplusplus
+
181 }
+
182 #endif
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_SOCK_OPS
Attach type for handling socket event notifications.
Definition: ebpf_program_attach_type_guids.h:71
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET6_CONNECT
The programs attached to the INET6_CONNECT hook will be invoked for connect() calls on TCP or UDP soc...
Definition: ebpf_program_attach_type_guids.h:46
+
ebpf_program_type_t EBPF_PROGRAM_TYPE_XDP
Program type for handling incoming packets as early as possible.
Definition: ebpf_program_attach_type_guids.h:107
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_SAMPLE
Attach type implemented by eBPF Sample Extension driver, used for testing.
Definition: ebpf_program_attach_type_guids.h:78
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET6_RECV_ACCEPT
The programs attached to the INET6_RECV_ACCEPT hook will get invoked for TCP accept() calls or for th...
Definition: ebpf_program_attach_type_guids.h:64
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_XDP
Attach type for handling incoming packets as early as possible.
Definition: ebpf_program_attach_type_guids.h:21
+
ebpf_program_type_t EBPF_PROGRAM_TYPE_XDP_TEST
Program type for handling incoming packets as early as possible.
Definition: ebpf_program_attach_type_guids.h:178
+
#define EBPF_PROGRAM_TYPE_SAMPLE_GUID
Definition: ebpf_program_attach_type_guids.h:153
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_UNSPECIFIED
Definition: ebpf_program_attach_type_guids.h:15
+
ebpf_program_type_t EBPF_PROGRAM_TYPE_SAMPLE
Program type for handling calls from the eBPF sample extension. Used for testing.
Definition: ebpf_program_attach_type_guids.h:163
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET4_CONNECT
The programs attached to the INET4_CONNECT hook will be invoked for connect() calls on TCP or UDP soc...
Definition: ebpf_program_attach_type_guids.h:37
+
ebpf_program_type_t EBPF_PROGRAM_TYPE_BIND
Program type for handling socket bind() requests.
Definition: ebpf_program_attach_type_guids.h:122
+
#define EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR_GUID
Definition: ebpf_program_attach_type_guids.h:124
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_BIND
Attach type for handling socket bind() requests.
Definition: ebpf_program_attach_type_guids.h:28
+
#define EBPF_PROGRAM_TYPE_XDP_GUID
Definition: ebpf_program_attach_type_guids.h:94
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_CGROUP_INET4_RECV_ACCEPT
The programs attached to the INET4_RECV_ACCEPT hook will get invoked for TCP accept() calls or for th...
Definition: ebpf_program_attach_type_guids.h:55
+
#define EBPF_PROGRAM_TYPE_XDP_TEST_GUID
Definition: ebpf_program_attach_type_guids.h:165
+
ebpf_attach_type_t EBPF_ATTACH_TYPE_XDP_TEST
Attach type for handling incoming packets as early as possible.
Definition: ebpf_program_attach_type_guids.h:85
+
#define EBPF_PROGRAM_TYPE_BIND_GUID
Definition: ebpf_program_attach_type_guids.h:109
+
ebpf_program_type_t EBPF_PROGRAM_TYPE_SOCK_OPS
Program type for handling socket event notifications.
Definition: ebpf_program_attach_type_guids.h:151
+
#define EBPF_PROGRAM_TYPE_SOCK_OPS_GUID
Definition: ebpf_program_attach_type_guids.h:142
+
ebpf_program_type_t EBPF_PROGRAM_TYPE_CGROUP_SOCK_ADDR
Program type for handling various socket operations such as connect(), accept() etc.
Definition: ebpf_program_attach_type_guids.h:140
+
ebpf_program_type_t EBPF_PROGRAM_TYPE_UNSPECIFIED
Definition: ebpf_program_attach_type_guids.h:92
GUID ebpf_attach_type_t
Definition: ebpf_windows.h:44
GUID ebpf_program_type_t
Definition: ebpf_windows.h:43
diff --git a/ebpf__program__types_8h_source.html b/ebpf__program__types_8h_source.html index 1d5841896b..8ba59cb4a5 100644 --- a/ebpf__program__types_8h_source.html +++ b/ebpf__program__types_8h_source.html @@ -77,81 +77,88 @@
6 #include "ebpf_result.h"
7 
8 #include <guiddef.h>
-
9 #include <stdint.h>
-
10 
-
11 #define EBPF_MAX_PROGRAM_DESCRIPTOR_NAME_LENGTH 256
-
12 #define EBPF_MAX_HELPER_FUNCTION_NAME_LENGTH 256
-
13 
-
14 typedef struct _ebpf_program_type_descriptor
-
15 {
-
16  const char* name;
-
17  const ebpf_context_descriptor_t* context_descriptor;
-
18  GUID program_type;
-
19  uint32_t bpf_prog_type;
-
20  char is_privileged;
-
21 } ebpf_program_type_descriptor_t;
-
22 
-
23 typedef struct _ebpf_helper_function_prototype
-
24 {
-
25  uint32_t helper_id;
-
26  const char* name;
-
27  ebpf_return_type_t return_type;
-
28  ebpf_argument_type_t arguments[5];
-
29 } ebpf_helper_function_prototype_t;
-
30 
-
31 typedef struct _ebpf_program_info
-
32 {
-
33  ebpf_program_type_descriptor_t program_type_descriptor;
-
34  uint32_t count_of_program_type_specific_helpers;
-
35  const ebpf_helper_function_prototype_t* program_type_specific_helper_prototype;
-
36  uint32_t count_of_global_helpers;
-
37  const ebpf_helper_function_prototype_t* global_helper_prototype;
-
38 } ebpf_program_info_t;
-
39 
-
40 typedef struct _ebpf_helper_function_addresses
-
41 {
-
42  uint32_t helper_function_count;
-
43  uint64_t* helper_function_address;
-
44 } ebpf_helper_function_addresses_t;
-
45 
-
46 typedef ebpf_result_t (*ebpf_program_context_create_t)(
-
47  _In_reads_bytes_opt_(data_size_in) const uint8_t* data_in,
-
48  size_t data_size_in,
-
49  _In_reads_bytes_opt_(context_size_in) const uint8_t* context_in,
-
50  size_t context_size_in,
-
51  _Outptr_ void** context);
+
9 #if !defined(NO_CRT) && !defined(_NO_CRT_STDIO_INLINE)
+
10 #include <stdint.h>
+
11 #else
+
12 typedef unsigned char uint8_t;
+
13 typedef unsigned int uint32_t;
+
14 typedef unsigned long long uint64_t;
+
15 typedef unsigned short wchar_t;
+
16 #endif
+
17 
+
18 #define EBPF_MAX_PROGRAM_DESCRIPTOR_NAME_LENGTH 256
+
19 #define EBPF_MAX_HELPER_FUNCTION_NAME_LENGTH 256
+
20 
+
21 typedef struct _ebpf_program_type_descriptor
+
22 {
+
23  const char* name;
+
24  const ebpf_context_descriptor_t* context_descriptor;
+
25  GUID program_type;
+
26  uint32_t bpf_prog_type;
+
27  char is_privileged;
+
28 } ebpf_program_type_descriptor_t;
+
29 
+
30 typedef struct _ebpf_helper_function_prototype
+
31 {
+
32  uint32_t helper_id;
+
33  const char* name;
+
34  ebpf_return_type_t return_type;
+
35  ebpf_argument_type_t arguments[5];
+
36 } ebpf_helper_function_prototype_t;
+
37 
+
38 typedef struct _ebpf_program_info
+
39 {
+
40  ebpf_program_type_descriptor_t program_type_descriptor;
+
41  uint32_t count_of_program_type_specific_helpers;
+
42  const ebpf_helper_function_prototype_t* program_type_specific_helper_prototype;
+
43  uint32_t count_of_global_helpers;
+
44  const ebpf_helper_function_prototype_t* global_helper_prototype;
+
45 } ebpf_program_info_t;
+
46 
+
47 typedef struct _ebpf_helper_function_addresses
+
48 {
+
49  uint32_t helper_function_count;
+
50  uint64_t* helper_function_address;
+
51 } ebpf_helper_function_addresses_t;
52 
-
53 typedef void (*ebpf_program_context_destroy_t)(
-
54  _In_ void* context,
-
55  _Out_writes_bytes_to_opt_(*data_size_out, *data_size_out) uint8_t* data_out,
-
56  _Inout_ size_t* data_size_out,
-
57  _Out_writes_bytes_to_opt_(*context_size_out, *context_size_out) uint8_t* context_out,
-
58  _Inout_ size_t* context_size_out);
+
53 typedef ebpf_result_t (*ebpf_program_context_create_t)(
+
54  _In_reads_bytes_opt_(data_size_in) const uint8_t* data_in,
+
55  size_t data_size_in,
+
56  _In_reads_bytes_opt_(context_size_in) const uint8_t* context_in,
+
57  size_t context_size_in,
+
58  _Outptr_ void** context);
59 
-
60 typedef struct _ebpf_program_data
-
61 {
-
62  const ebpf_program_info_t* program_info;
-
63  const ebpf_helper_function_addresses_t*
-
64  program_type_specific_helper_function_addresses;
-
66  const ebpf_helper_function_addresses_t*
-
67  global_helper_function_addresses;
-
68  ebpf_program_context_create_t context_create;
-
69  ebpf_program_context_destroy_t context_destroy;
-
70  uint8_t required_irql;
-
71 } ebpf_program_data_t;
-
72 
-
73 typedef struct _ebpf_program_section_info
-
74 {
-
75  const wchar_t* section_name;
-
76  const GUID* program_type;
-
77  const GUID* attach_type;
-
78  uint32_t bpf_program_type;
-
79  uint32_t bpf_attach_type;
-
80 } ebpf_program_section_info_t;
+
60 typedef void (*ebpf_program_context_destroy_t)(
+
61  _In_ void* context,
+
62  _Out_writes_bytes_to_opt_(*data_size_out, *data_size_out) uint8_t* data_out,
+
63  _Inout_ size_t* data_size_out,
+
64  _Out_writes_bytes_to_opt_(*context_size_out, *context_size_out) uint8_t* context_out,
+
65  _Inout_ size_t* context_size_out);
+
66 
+
67 typedef struct _ebpf_program_data
+
68 {
+
69  const ebpf_program_info_t* program_info;
+
70  const ebpf_helper_function_addresses_t*
+
71  program_type_specific_helper_function_addresses;
+
73  const ebpf_helper_function_addresses_t*
+
74  global_helper_function_addresses;
+
75  ebpf_program_context_create_t context_create;
+
76  ebpf_program_context_destroy_t context_destroy;
+
77  uint8_t required_irql;
+
78 } ebpf_program_data_t;
+
79 
+
80 typedef struct _ebpf_program_section_info
+
81 {
+
82  const wchar_t* section_name;
+
83  const GUID* program_type;
+
84  const GUID* attach_type;
+
85  uint32_t bpf_program_type;
+
86  uint32_t bpf_attach_type;
+
87 } ebpf_program_section_info_t;
struct _ebpf_program_type_descriptor ebpf_program_type_descriptor_t
-
ebpf_result_t(* ebpf_program_context_create_t)(_In_reads_bytes_opt_(data_size_in) const uint8_t *data_in, size_t data_size_in, _In_reads_bytes_opt_(context_size_in) const uint8_t *context_in, size_t context_size_in, void **context)
Definition: ebpf_program_types.h:46
+
ebpf_result_t(* ebpf_program_context_create_t)(_In_reads_bytes_opt_(data_size_in) const uint8_t *data_in, size_t data_size_in, _In_reads_bytes_opt_(context_size_in) const uint8_t *context_in, size_t context_size_in, void **context)
Definition: ebpf_program_types.h:53
struct _ebpf_program_data ebpf_program_data_t
-
void(* ebpf_program_context_destroy_t)(void *context, _Out_writes_bytes_to_opt_(*data_size_out, *data_size_out) uint8_t *data_out, _Inout_ size_t *data_size_out, _Out_writes_bytes_to_opt_(*context_size_out, *context_size_out) uint8_t *context_out, _Inout_ size_t *context_size_out)
Definition: ebpf_program_types.h:53
+
void(* ebpf_program_context_destroy_t)(void *context, _Out_writes_bytes_to_opt_(*data_size_out, *data_size_out) uint8_t *data_out, _Inout_ size_t *data_size_out, _Out_writes_bytes_to_opt_(*context_size_out, *context_size_out) uint8_t *context_out, _Inout_ size_t *context_size_out)
Definition: ebpf_program_types.h:60
struct _ebpf_helper_function_prototype ebpf_helper_function_prototype_t
struct _ebpf_helper_function_addresses ebpf_helper_function_addresses_t
struct _ebpf_program_section_info ebpf_program_section_info_t
@@ -159,39 +166,39 @@
enum ebpf_result ebpf_result_t
uint8_t GUID[16]
Definition: ebpf_windows.h:13
-
Definition: ebpf_program_types.h:41
-
uint64_t * helper_function_address
Definition: ebpf_program_types.h:43
-
uint32_t helper_function_count
Definition: ebpf_program_types.h:42
-
Definition: ebpf_program_types.h:24
-
ebpf_argument_type_t arguments[5]
Definition: ebpf_program_types.h:28
-
ebpf_return_type_t return_type
Definition: ebpf_program_types.h:27
-
const char * name
Definition: ebpf_program_types.h:26
-
uint32_t helper_id
Definition: ebpf_program_types.h:25
-
Definition: ebpf_program_types.h:61
-
const ebpf_program_info_t * program_info
Pointer to program information.
Definition: ebpf_program_types.h:62
-
ebpf_program_context_destroy_t context_destroy
Pointer to context destroy function.
Definition: ebpf_program_types.h:69
-
const ebpf_helper_function_addresses_t * global_helper_function_addresses
Pointer to global helper function addresses being overriden.
Definition: ebpf_program_types.h:67
-
ebpf_program_context_create_t context_create
Pointer to context create function.
Definition: ebpf_program_types.h:68
-
const ebpf_helper_function_addresses_t * program_type_specific_helper_function_addresses
Definition: ebpf_program_types.h:64
-
uint8_t required_irql
IRQL at which the program is invoked.
Definition: ebpf_program_types.h:70
-
Definition: ebpf_program_types.h:32
-
const ebpf_helper_function_prototype_t * global_helper_prototype
Definition: ebpf_program_types.h:37
-
const ebpf_helper_function_prototype_t * program_type_specific_helper_prototype
Definition: ebpf_program_types.h:35
-
ebpf_program_type_descriptor_t program_type_descriptor
Definition: ebpf_program_types.h:33
-
uint32_t count_of_program_type_specific_helpers
Definition: ebpf_program_types.h:34
-
uint32_t count_of_global_helpers
Definition: ebpf_program_types.h:36
-
Definition: ebpf_program_types.h:74
-
const GUID * attach_type
Definition: ebpf_program_types.h:77
-
const wchar_t * section_name
Definition: ebpf_program_types.h:75
-
const GUID * program_type
Definition: ebpf_program_types.h:76
-
uint32_t bpf_attach_type
Definition: ebpf_program_types.h:79
-
uint32_t bpf_program_type
Definition: ebpf_program_types.h:78
-
Definition: ebpf_program_types.h:15
-
uint32_t bpf_prog_type
Definition: ebpf_program_types.h:19
-
const char * name
Definition: ebpf_program_types.h:16
-
GUID program_type
Definition: ebpf_program_types.h:18
-
char is_privileged
Definition: ebpf_program_types.h:20
-
const ebpf_context_descriptor_t * context_descriptor
Definition: ebpf_program_types.h:17
+
Definition: ebpf_program_types.h:48
+
uint64_t * helper_function_address
Definition: ebpf_program_types.h:50
+
uint32_t helper_function_count
Definition: ebpf_program_types.h:49
+
Definition: ebpf_program_types.h:31
+
ebpf_argument_type_t arguments[5]
Definition: ebpf_program_types.h:35
+
ebpf_return_type_t return_type
Definition: ebpf_program_types.h:34
+
const char * name
Definition: ebpf_program_types.h:33
+
uint32_t helper_id
Definition: ebpf_program_types.h:32
+
Definition: ebpf_program_types.h:68
+
const ebpf_program_info_t * program_info
Pointer to program information.
Definition: ebpf_program_types.h:69
+
ebpf_program_context_destroy_t context_destroy
Pointer to context destroy function.
Definition: ebpf_program_types.h:76
+
const ebpf_helper_function_addresses_t * global_helper_function_addresses
Pointer to global helper function addresses being overriden.
Definition: ebpf_program_types.h:74
+
ebpf_program_context_create_t context_create
Pointer to context create function.
Definition: ebpf_program_types.h:75
+
const ebpf_helper_function_addresses_t * program_type_specific_helper_function_addresses
Definition: ebpf_program_types.h:71
+
uint8_t required_irql
IRQL at which the program is invoked.
Definition: ebpf_program_types.h:77
+
Definition: ebpf_program_types.h:39
+
const ebpf_helper_function_prototype_t * global_helper_prototype
Definition: ebpf_program_types.h:44
+
const ebpf_helper_function_prototype_t * program_type_specific_helper_prototype
Definition: ebpf_program_types.h:42
+
ebpf_program_type_descriptor_t program_type_descriptor
Definition: ebpf_program_types.h:40
+
uint32_t count_of_program_type_specific_helpers
Definition: ebpf_program_types.h:41
+
uint32_t count_of_global_helpers
Definition: ebpf_program_types.h:43
+
Definition: ebpf_program_types.h:81
+
const GUID * attach_type
Definition: ebpf_program_types.h:84
+
const wchar_t * section_name
Definition: ebpf_program_types.h:82
+
const GUID * program_type
Definition: ebpf_program_types.h:83
+
uint32_t bpf_attach_type
Definition: ebpf_program_types.h:86
+
uint32_t bpf_program_type
Definition: ebpf_program_types.h:85
+
Definition: ebpf_program_types.h:22
+
uint32_t bpf_prog_type
Definition: ebpf_program_types.h:26
+
const char * name
Definition: ebpf_program_types.h:23
+
GUID program_type
Definition: ebpf_program_types.h:25
+
char is_privileged
Definition: ebpf_program_types.h:27
+
const ebpf_context_descriptor_t * context_descriptor
Definition: ebpf_program_types.h:24
@@ -94,9 +93,6 @@
- - - @@ -106,6 +102,12 @@ + + + + + +

Functions

ebpf_result_t ebpf_store_update_helper_prototype (ebpf_store_key_t helper_info_key, const ebpf_helper_function_prototype_t *helper_info)
 Update the provider prototype information in the eBPF store. More...
 
ebpf_result_t ebpf_store_update_global_helper_information (_In_reads_(helper_info_count) ebpf_helper_function_prototype_t *helper_info, uint32_t helper_info_count)
 Update global helper information in the eBPF store. More...
 
ebpf_result_t ebpf_store_update_program_information (_In_reads_(program_info_count) const ebpf_program_info_t *program_info, uint32_t program_info_count)
 Update program information in the eBPF store. More...
 
ebpf_result_t ebpf_store_delete_program_information (const ebpf_program_info_t *program_info)
 Delete program information from the eBPF store. More...
 
ebpf_result_t ebpf_store_delete_section_information (const ebpf_program_section_info_t *section_info)
 Delete section information from the eBPF store. More...
 
@@ -145,37 +147,53 @@

Function Documentation

- -

◆ ebpf_store_update_global_helper_information()

+ +

◆ ebpf_store_delete_program_information()

Variables

- + - - - - - + + - - +
ebpf_result_t ebpf_store_update_global_helper_information ebpf_result_t ebpf_store_delete_program_information (_In_reads_(helper_info_count) ebpf_helper_function_prototype_thelper_info,
const ebpf_program_info_tprogram_info) uint32_t helper_info_count 
+
+ +

Delete program information from the eBPF store.

+
Parameters
+ + +
[in]program_infoPointer to the program information.
+
+
+
Returns
Status of the operation.
+ +
+ + +

◆ ebpf_store_delete_section_information()

+ +
+
+ + + + + - -
ebpf_result_t ebpf_store_delete_section_information (const ebpf_program_section_info_tsection_info) )
-

Update global helper information in the eBPF store.

+

Delete section information from the eBPF store.

Parameters
- - +
[in]helper_infoPointer to an array of helper function prototypes.
[in]helper_info_countCount of helper function prototypes.
[in]section_infoPointer to the section information.
@@ -183,23 +201,23 @@

-

◆ ebpf_store_update_helper_prototype()

+ +

◆ ebpf_store_update_global_helper_information()

- + - - + + - - + + @@ -209,11 +227,11 @@

-

Update the provider prototype information in the eBPF store.

+

Update global helper information in the eBPF store.

Parameters

ebpf_result_t ebpf_store_update_helper_prototype ebpf_result_t ebpf_store_update_global_helper_information (ebpf_store_key_t helper_info_key, _In_reads_(helper_info_count) ebpf_helper_function_prototype_thelper_info,
const ebpf_helper_function_prototype_thelper_info uint32_t helper_info_count 
- - + +
[in]helper_info_keyPointer to the store key to be initialized.
[in]helper_infoPointer to the helper function prototype.
[in]helper_infoPointer to an array of helper function prototypes.
[in]helper_info_countCount of helper function prototypes.
diff --git a/ebpf__store__helper_8h_source.html b/ebpf__store__helper_8h_source.html index b8b339ce6c..6c449363ac 100644 --- a/ebpf__store__helper_8h_source.html +++ b/ebpf__store__helper_8h_source.html @@ -75,60 +75,62 @@
4 #pragma once
5 
6 #include "ebpf_program_types.h"
-
7 #include "ebpf_shared_framework.h"
-
8 #include "ebpf_windows.h"
-
9 #ifdef USER_MODE
-
10 #include "ebpf_utilities.h"
-
11 #else
+
7 #include "ebpf_windows.h"
+
8 #ifdef USER_MODE
+
9 #include "ebpf_utilities.h"
+
10 #else
+
11 #include <ntifs.h>
12 #include <minwindef.h>
-
13 #include <wdm.h>
-
14 #endif
-
15 
-
16 #define GUID_STRING_LENGTH 38 // not including the null terminator.
-
17 
-
18 #ifdef __cplusplus
-
19 extern "C"
-
20 {
-
21 #endif
-
22 
-
23  typedef HKEY ebpf_store_key_t;
-
24 
- -
26  extern const wchar_t* ebpf_store_root_sub_key;
-
27 
- - -
38  ebpf_store_key_t helper_info_key, _In_ const ebpf_helper_function_prototype_t* helper_info);
-
39 
- - -
50  _In_reads_(helper_info_count) ebpf_helper_function_prototype_t* helper_info, uint32_t helper_info_count);
-
51 
- - -
62  _In_reads_(section_info_count) const ebpf_program_section_info_t* section_info, uint32_t section_info_count);
-
63 
- - -
74  _In_reads_(program_info_count) const ebpf_program_info_t* program_info, uint32_t program_info_count);
-
75 
-
76 #ifdef __cplusplus
-
77 }
-
78 #endif
+
13 #endif
+
14 
+
15 #define GUID_STRING_LENGTH 38 // not including the null terminator.
+
16 
+
17 #ifdef __cplusplus
+
18 extern "C"
+
19 {
+
20 #endif
+
21 
+
22  typedef HKEY ebpf_store_key_t;
+
23 
+ +
25  extern const wchar_t* ebpf_store_root_sub_key;
+
26 
+ + +
37  _In_reads_(helper_info_count) ebpf_helper_function_prototype_t* helper_info, uint32_t helper_info_count);
+
38 
+ + +
49  _In_reads_(section_info_count) const ebpf_program_section_info_t* section_info, uint32_t section_info_count);
+
50 
+ + +
61  _In_reads_(program_info_count) const ebpf_program_info_t* program_info, uint32_t program_info_count);
+
62 
+ + +
72 
+ + +
82 
+
83 #ifdef __cplusplus
+
84 }
+
85 #endif
enum ebpf_result ebpf_result_t
ebpf_result_t ebpf_store_update_section_information(_In_reads_(section_info_count) const ebpf_program_section_info_t *section_info, uint32_t section_info_count)
Update section information in the eBPF store.
ebpf_result_t ebpf_store_update_program_information(_In_reads_(program_info_count) const ebpf_program_info_t *program_info, uint32_t program_info_count)
Update program information in the eBPF store.
-
HKEY ebpf_store_key_t
Definition: ebpf_store_helper.h:23
-
ebpf_result_t ebpf_store_update_helper_prototype(ebpf_store_key_t helper_info_key, const ebpf_helper_function_prototype_t *helper_info)
Update the provider prototype information in the eBPF store.
+
HKEY ebpf_store_key_t
Definition: ebpf_store_helper.h:22
ebpf_store_key_t ebpf_store_root_key
+
ebpf_result_t ebpf_store_delete_program_information(const ebpf_program_info_t *program_info)
Delete program information from the eBPF store.
const wchar_t * ebpf_store_root_sub_key
ebpf_result_t ebpf_store_update_global_helper_information(_In_reads_(helper_info_count) ebpf_helper_function_prototype_t *helper_info, uint32_t helper_info_count)
Update global helper information in the eBPF store.
+
ebpf_result_t ebpf_store_delete_section_information(const ebpf_program_section_info_t *section_info)
Delete section information from the eBPF store.
-
Definition: ebpf_program_types.h:24
-
Definition: ebpf_program_types.h:32
-
Definition: ebpf_program_types.h:74
+
Definition: ebpf_program_types.h:31
+
Definition: ebpf_program_types.h:39
+
Definition: ebpf_program_types.h:81