master
1/*** Autogenerated by WIDL 10.4 from include/fwptypes.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __fwptypes_h__
17#define __fwptypes_h__
18
19/* Forward declarations */
20
21/* Headers for imported files */
22
23#include <wtypes.h>
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29/**
30 * This file is part of the mingw-w64 runtime package.
31 * No warranty is given; refer to the file DISCLAIMER within this package.
32 */
33
34#include <winapifamily.h>
35
36#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
37
38#define FWP_BYTEMAP_ARRAY64_SIZE 8
39#define FWP_BYTE_ARRAY6_SIZE 6
40#define FWP_V6_ADDR_SIZE (16)
41#define FWP_ACTRL_MATCH_FILTER (1)
42
43#define FWP_OPTION_VALUE_ALLOW_MULTICAST_STATE (0)
44#define FWP_OPTION_VALUE_DENY_MULTICAST_STATE (1)
45#define FWP_OPTION_VALUE_ALLOW_GLOBAL_MULTICAST_STATE (2)
46
47#define FWP_OPTION_VALUE_DISABLE_LOOSE_SOURCE (0)
48#define FWP_OPTION_VALUE_ENABLE_LOOSE_SOURCE (1)
49
50#if (NTDDI_VERSION >= NTDDI_WIN8)
51#define FWP_OPTION_VALUE_DISABLE_LOCAL_ONLY_MAPPING (0)
52#define FWP_OPTION_VALUE_ENABLE_LOCAL_ONLY_MAPPING (1)
53#endif
54
55#define FWP_ACTION_FLAG_TERMINATING (0x00001000)
56#define FWP_ACTION_FLAG_NON_TERMINATING (0x00002000)
57#define FWP_ACTION_FLAG_CALLOUT (0x00004000)
58
59#define FWP_ACTION_BLOCK (0x1 | FWP_ACTION_FLAG_TERMINATING)
60#define FWP_ACTION_PERMIT (0x2 | FWP_ACTION_FLAG_TERMINATING)
61#define FWP_ACTION_CALLOUT_TERMINATING (0x3 | FWP_ACTION_FLAG_CALLOUT | FWP_ACTION_FLAG_TERMINATING)
62#define FWP_ACTION_CALLOUT_INSPECTION (0x4 | FWP_ACTION_FLAG_CALLOUT | FWP_ACTION_FLAG_NON_TERMINATING)
63#define FWP_ACTION_CALLOUT_UNKNOWN (0x5 | FWP_ACTION_FLAG_CALLOUT)
64#define FWP_ACTION_CONTINUE (0x6 | FWP_ACTION_FLAG_NON_TERMINATING)
65#define FWP_ACTION_NONE (0x7)
66#define FWP_ACTION_NONE_NO_MATCH (0x8)
67
68#define FWP_CONDITION_FLAG_IS_LOOPBACK (0x00000001)
69#define FWP_CONDITION_FLAG_IS_IPSEC_SECURED (0x00000002)
70#define FWP_CONDITION_FLAG_IS_REAUTHORIZE (0x00000004)
71#define FWP_CONDITION_FLAG_IS_WILDCARD_BIND (0x00000008)
72#define FWP_CONDITION_FLAG_IS_RAW_ENDPOINT (0x00000010)
73#define FWP_CONDITION_FLAG_IS_FRAGMENT (0x00000020)
74#define FWP_CONDITION_FLAG_IS_FRAGMENT_GROUP (0x00000040)
75#define FWP_CONDITION_FLAG_IS_IPSEC_NATT_RECLASSIFY (0x00000080)
76#define FWP_CONDITION_FLAG_REQUIRES_ALE_CLASSIFY (0x00000100)
77#define FWP_CONDITION_FLAG_IS_IMPLICIT_BIND (0x00000200)
78#if (NTDDI_VERSION >= NTDDI_WIN6SP1)
79#define FWP_CONDITION_FLAG_IS_REASSEMBLED (0x00000400)
80#if (NTDDI_VERSION >= NTDDI_WIN7)
81#define FWP_CONDITION_FLAG_IS_NAME_APP_SPECIFIED (0x00004000)
82#define FWP_CONDITION_FLAG_IS_PROMISCUOUS (0x00008000)
83#define FWP_CONDITION_FLAG_IS_AUTH_FW (0x00010000)
84#define FWP_CONDITION_FLAG_IS_RECLASSIFY (0x00020000)
85#define FWP_CONDITION_FLAG_IS_OUTBOUND_PASS_THRU (0x00040000)
86#define FWP_CONDITION_FLAG_IS_INBOUND_PASS_THRU (0x00080000)
87#define FWP_CONDITION_FLAG_IS_CONNECTION_REDIRECTED (0x00100000)
88#if (NTDDI_VERSION >= NTDDI_WIN8)
89#define FWP_CONDITION_FLAG_IS_PROXY_CONNECTION (0x00200000)
90#define FWP_CONDITION_FLAG_IS_APPCONTAINER_LOOPBACK (0x00400000)
91#define FWP_CONDITION_FLAG_IS_NON_APPCONTAINER_LOOPBACK (0x00800000)
92#define FWP_CONDITION_FLAG_IS_RESERVED (0x01000000)
93#define FWP_CONDITION_FLAG_IS_HONORING_POLICY_AUTHORIZE (0x02000000)
94#endif
95
96#define FWP_CONDITION_REAUTHORIZE_REASON_POLICY_CHANGE (0x00000001)
97#define FWP_CONDITION_REAUTHORIZE_REASON_NEW_ARRIVAL_INTERFACE (0x00000002)
98#define FWP_CONDITION_REAUTHORIZE_REASON_NEW_NEXTHOP_INTERFACE (0x00000004)
99#define FWP_CONDITION_REAUTHORIZE_REASON_PROFILE_CROSSING (0x00000008)
100#define FWP_CONDITION_REAUTHORIZE_REASON_CLASSIFY_COMPLETION (0x00000010)
101#define FWP_CONDITION_REAUTHORIZE_REASON_IPSEC_PROPERTIES_CHANGED (0x00000020)
102#define FWP_CONDITION_REAUTHORIZE_REASON_MID_STREAM_INSPECTION (0x00000040)
103#define FWP_CONDITION_REAUTHORIZE_REASON_SOCKET_PROPERTY_CHANGED (0x00000080)
104#define FWP_CONDITION_REAUTHORIZE_REASON_NEW_INBOUND_MCAST_BCAST_PACKET (0x00000100)
105#define FWP_CONDITION_REAUTHORIZE_REASON_EDP_POLICY_CHANGED (0x00000200)
106#define FWP_CONDITION_REAUTHORIZE_REASON_PROXY_HANDLE_CHANGED (0x00004000)
107#define FWP_CONDITION_REAUTHORIZE_REASON_CHECK_OFFLOAD (0x00010000)
108
109#define FWP_CONDITION_SOCKET_PROPERTY_FLAG_IS_SYSTEM_PORT_RPC (0x00000001)
110#define FWP_CONDITION_SOCKET_PROPERTY_FLAG_ALLOW_EDGE_TRAFFIC (0x00000002)
111#define FWP_CONDITION_SOCKET_PROPERTY_FLAG_DENY_EDGE_TRAFFIC (0x00000004)
112
113#if (NTDDI_VERSION >= NTDDI_WIN8)
114#define FWP_CONDITION_L2_IS_NATIVE_ETHERNET (0x00000001)
115#define FWP_CONDITION_L2_IS_WIFI (0x00000002)
116#define FWP_CONDITION_L2_IS_MOBILE_BROADBAND (0x00000004)
117#define FWP_CONDITION_L2_IS_WIFI_DIRECT_DATA (0x00000008)
118#define FWP_CONDITION_L2_IS_VM2VM (0x00000010)
119#define FWP_CONDITION_L2_IS_MALFORMED_PACKET (0x00000020)
120#define FWP_CONDITION_L2_IS_IP_FRAGMENT_GROUP (0x00000040)
121#define FWP_CONDITION_L2_IF_CONNECTOR_PRESENT (0x00000080)
122#endif
123#endif
124#endif
125
126#define FWP_FILTER_ENUM_FLAG_BEST_TERMINATING_MATCH (0x00000001)
127#define FWP_FILTER_ENUM_FLAG_SORTED (0x00000002)
128#define FWP_FILTER_ENUM_FLAG_BOOTTIME_ONLY (0x00000004)
129#define FWP_FILTER_ENUM_FLAG_INCLUDE_BOOTTIME (0x00000008)
130#define FWP_FILTER_ENUM_FLAG_INCLUDE_DISABLED (0x00000010)
131
132#define FWP_FILTER_ENUM_VALID_FLAGS (FWP_FILTER_ENUM_FLAG_BEST_TERMINATING_MATCH | FWP_FILTER_ENUM_FLAG_SORTED)
133#if (NTDDI_VERSION >= NTDDI_WIN8)
134#define FWP_FILTER_ENUM_FLAG_RESERVED1 (0x00000020)
135#endif
136
137#define FWP_CALLOUT_FLAG_CONDITIONAL_ON_FLOW (0x00000001)
138#define FWP_CALLOUT_FLAG_ALLOW_OFFLOAD (0x00000002)
139#if (NTDDI_VERSION >= NTDDI_WIN7)
140#define FWP_CALLOUT_FLAG_ENABLE_COMMIT_ADD_NOTIFY (0x00000004)
141#define FWP_CALLOUT_FLAG_ALLOW_MID_STREAM_INSPECTION (0x00000008)
142#define FWP_CALLOUT_FLAG_ALLOW_RECLASSIFY (0x00000010)
143#if (NTDDI_VERSION >= NTDDI_WIN8)
144#define FWP_CALLOUT_FLAG_RESERVED1 (0x00000020)
145#define FWP_CALLOUT_FLAG_ALLOW_RSC (0x00000040)
146#define FWP_CALLOUT_FLAG_ALLOW_L2_BATCH_CLASSIFY (0x00000080)
147#if (NTDDI_VERSION >= NTDDI_WIN10_19H1)
148#define FWP_CALLOUT_FLAG_ALLOW_USO (0x00000100)
149#if (NTDDI_VERSION >= NTDDI_WIN10_VB)
150#define FWP_CALLOUT_FLAG_ALLOW_URO (0x00000200)
151#if (NTDDI_VERSION >= NTDDI_WIN10_CO)
152#define FWP_CALLOUT_FLAG_RESERVED2 (0x00000400)
153#endif /* (NTDDI_VERSION >= NTDDI_WIN10_CO) */
154#endif /* (NTDDI_VERSION >= NTDDI_WIN10_VB) */
155#endif /* (NTDDI_VERSION >= NTDDI_WIN10_19H1) */
156#endif /* (NTDDI_VERSION >= NTDDI_WIN8) */
157#endif /* (NTDDI_VERSION >= NTDDI_WIN7) */
158#ifdef __WIDL__
159typedef struct _LUID {
160 DWORD LowPart;
161 LONG HighPart;
162} LUID;
163typedef struct _LUID *PLUID;
164#endif
165
166typedef UINT32 FWP_ACTION_TYPE;
167
168
169typedef enum FWP_DIRECTION_ {
170 FWP_DIRECTION_OUTBOUND = 0,
171 FWP_DIRECTION_INBOUND = 1,
172 FWP_DIRECTION_MAX = 2
173} FWP_DIRECTION;
174
175typedef enum FWP_IP_VERSION_ {
176 FWP_IP_VERSION_V4 = 0,
177 FWP_IP_VERSION_V6 = 1,
178 FWP_IP_VERSION_NONE = 2,
179 FWP_IP_VERSION_MAX = 3
180} FWP_IP_VERSION;
181
182typedef enum FWP_NE_FAMILY_ {
183 FWP_AF_INET = FWP_IP_VERSION_V4,
184 FWP_AF_INET6 = FWP_IP_VERSION_V6,
185 FWP_AF_ETHER = FWP_IP_VERSION_NONE,
186 FWP_AF_NONE = 3
187} FWP_AF;
188
189typedef enum FWP_ETHER_ENCAP_METHOD_ {
190 FWP_ETHER_ENCAP_METHOD_ETHER_V2 = 0,
191 FWP_ETHER_ENCAP_METHOD_SNAP = 1,
192 FWP_ETHER_ENCAP_METHOD_SNAP_W_OUI_ZERO = 3
193} FWP_ETHER_ENCAP_METHOD;
194
195typedef enum FWP_DATA_TYPE_ {
196 FWP_EMPTY = 0,
197 FWP_UINT8 = 1,
198 FWP_UINT16 = 2,
199 FWP_UINT32 = 3,
200 FWP_UINT64 = 4,
201 FWP_INT8 = 5,
202 FWP_INT16 = 6,
203 FWP_INT32 = 7,
204 FWP_INT64 = 8,
205 FWP_FLOAT = 9,
206 FWP_DOUBLE = 10,
207 FWP_BYTE_ARRAY16_TYPE = 11,
208 FWP_BYTE_BLOB_TYPE = 12,
209 FWP_SID = 13,
210 FWP_SECURITY_DESCRIPTOR_TYPE = 14,
211 FWP_TOKEN_INFORMATION_TYPE = 15,
212 FWP_TOKEN_ACCESS_INFORMATION_TYPE = 16,
213 FWP_UNICODE_STRING_TYPE = 17,
214 FWP_BYTE_ARRAY6_TYPE = 18,
215 FWP_SINGLE_DATA_TYPE_MAX = 0xff,
216 FWP_V4_ADDR_MASK = 0x100,
217 FWP_V6_ADDR_MASK = 0x101,
218 FWP_RANGE_TYPE = 0x102,
219 FWP_DATA_TYPE_MAX = 0x103
220} FWP_DATA_TYPE;
221
222typedef enum FWP_MATCH_TYPE_ {
223 FWP_MATCH_EQUAL = 0,
224 FWP_MATCH_GREATER = 1,
225 FWP_MATCH_LESS = 2,
226 FWP_MATCH_GREATER_OR_EQUAL = 3,
227 FWP_MATCH_LESS_OR_EQUAL = 4,
228 FWP_MATCH_RANGE = 5,
229 FWP_MATCH_FLAGS_ALL_SET = 6,
230 FWP_MATCH_FLAGS_ANY_SET = 7,
231 FWP_MATCH_FLAGS_NONE_SET = 8,
232 FWP_MATCH_EQUAL_CASE_INSENSITIVE = 9,
233 FWP_MATCH_NOT_EQUAL = 10,
234 FWP_MATCH_PREFIX = 11,
235 FWP_MATCH_NOT_PREFIX = 12,
236 FWP_MATCH_TYPE_MAX = 13
237} FWP_MATCH_TYPE;
238
239#if (NTDDI_VERSION >= NTDDI_WIN8)
240typedef enum FWP_VSWITCH_NETWORK_TYPE_ {
241 FWP_VSWITCH_NETWORK_TYPE_UNKNOWN = 0,
242 FWP_VSWITCH_NETWORK_TYPE_PRIVATE = 1,
243 FWP_VSWITCH_NETWORK_TYPE_INTERNAL = 2,
244 FWP_VSWITCH_NETWORK_TYPE_EXTERNAL = 3
245} FWP_VSWITCH_NETWORK_TYPE;
246#endif
247
248typedef enum FWP_CLASSIFY_OPTION_TYPE_ {
249 FWP_CLASSIFY_OPTION_MULTICAST_STATE = 0,
250 FWP_CLASSIFY_OPTION_LOOSE_SOURCE_MAPPING = 1,
251 FWP_CLASSIFY_OPTION_UNICAST_LIFETIME = 2,
252 FWP_CLASSIFY_OPTION_MCAST_BCAST_LIFETIME = 3,
253 FWP_CLASSIFY_OPTION_SECURE_SOCKET_SECURITY_FLAGS = 4,
254 FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_MM_POLICY_KEY = 5,
255 FWP_CLASSIFY_OPTION_SECURE_SOCKET_AUTHIP_QM_POLICY_KEY = 6,
256 FWP_CLASSIFY_OPTION_LOCAL_ONLY_MAPPING = 7,
257 FWP_CLASSIFY_OPTION_MAX = 8
258} FWP_CLASSIFY_OPTION_TYPE;
259
260typedef enum FWP_FILTER_ENUM_TYPE_ {
261 FWP_FILTER_ENUM_FULLY_CONTAINED = 0,
262 FWP_FILTER_ENUM_OVERLAPPING = 1,
263 FWP_FILTER_ENUM_TYPE_MAX = 2
264} FWP_FILTER_ENUM_TYPE;
265
266typedef struct FWP_BYTE_ARRAY6_ {
267 UINT8 byteArray6[6];
268} FWP_BYTE_ARRAY6;
269
270typedef struct FWP_BYTE_ARRAY16_ {
271 UINT8 byteArray16[16];
272} FWP_BYTE_ARRAY16;
273
274typedef struct FWP_BYTE_BLOB_ {
275 UINT32 size;
276 UINT8 *data;
277} FWP_BYTE_BLOB;
278
279typedef struct FWP_TOKEN_INFORMATION_ {
280 ULONG sidCount;
281 PSID_AND_ATTRIBUTES sids;
282 ULONG restrictedSidCount;
283 PSID_AND_ATTRIBUTES restrictedSids;
284} FWP_TOKEN_INFORMATION;
285
286typedef struct FWP_VALUE0_ {
287 FWP_DATA_TYPE type;
288 __C89_NAMELESS union {
289 UINT8 uint8;
290 UINT16 uint16;
291 UINT32 uint32;
292 UINT64 *uint64;
293 INT8 int8;
294 INT16 int16;
295 INT32 int32;
296 INT64 *int64;
297 float float32;
298 double *double64;
299 FWP_BYTE_ARRAY16 *byteArray16;
300 FWP_BYTE_BLOB *byteBlob;
301 SID *sid;
302 FWP_BYTE_BLOB *sd;
303 FWP_TOKEN_INFORMATION *tokenInformation;
304 FWP_BYTE_BLOB *tokenAccessInformation;
305 LPWSTR unicodeString;
306 FWP_BYTE_ARRAY6 *byteArray6;
307 } __C89_NAMELESSUNIONNAME;
308} FWP_VALUE0;
309
310typedef struct FWP_V4_ADDR_AND_MASK_ {
311 UINT32 addr;
312 UINT32 mask;
313} FWP_V4_ADDR_AND_MASK;
314
315typedef struct FWP_V6_ADDR_AND_MASK_ {
316 UINT8 addr[16];
317 UINT8 prefixLength;
318} FWP_V6_ADDR_AND_MASK;
319
320typedef struct FWP_RANGE0_ {
321 FWP_VALUE0 valueLow;
322 FWP_VALUE0 valueHigh;
323} FWP_RANGE0;
324
325typedef struct FWP_CONDITION_VALUE0_ {
326 FWP_DATA_TYPE type;
327 __C89_NAMELESS union {
328 UINT8 uint8;
329 UINT16 uint16;
330 UINT32 uint32;
331 UINT64 *uint64;
332 INT8 int8;
333 INT16 int16;
334 INT32 int32;
335 INT64 *int64;
336 float float32;
337 double *double64;
338 FWP_BYTE_ARRAY16 *byteArray16;
339 FWP_BYTE_BLOB *byteBlob;
340 SID *sid;
341 FWP_BYTE_BLOB *sd;
342 FWP_TOKEN_INFORMATION *tokenInformation;
343 FWP_BYTE_BLOB *tokenAccessInformation;
344 LPWSTR unicodeString;
345 FWP_BYTE_ARRAY6 *byteArray6;
346 FWP_V4_ADDR_AND_MASK *v4AddrMask;
347 FWP_V6_ADDR_AND_MASK *v6AddrMask;
348 FWP_RANGE0 *rangeValue;
349 } __C89_NAMELESSUNIONNAME;
350} FWP_CONDITION_VALUE0;
351
352typedef enum FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE_ {
353 FWP_NETWORK_CONNECTION_POLICY_SOURCE_ADDRESS = 0,
354 FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP_INTERFACE = 1,
355 FWP_NETWORK_CONNECTION_POLICY_NEXT_HOP = 2,
356 FWP_NETWORK_CONNECTION_POLICY_MAX = 3
357} FWP_NETWORK_CONNECTION_POLICY_SETTING_TYPE;
358#endif /* WINAPI_PARTITION_DESKTOP. */
359/* Begin additional prototypes for all interfaces */
360
361
362/* End additional prototypes */
363
364#ifdef __cplusplus
365}
366#endif
367
368#endif /* __fwptypes_h__ */