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__ */