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