zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

fwptypes.h (12532B) - Raw


      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
     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_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__
    159 typedef struct _LUID {
    160     DWORD LowPart;
    161     LONG HighPart;
    162 } LUID;
    163 typedef struct _LUID *PLUID;
    164 #endif
    165 
    166 typedef UINT32 FWP_ACTION_TYPE;
    167 
    168 
    169 typedef enum FWP_DIRECTION_ {
    170     FWP_DIRECTION_OUTBOUND = 0,
    171     FWP_DIRECTION_INBOUND = 1,
    172     FWP_DIRECTION_MAX = 2
    173 } FWP_DIRECTION;
    174 
    175 typedef 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 
    182 typedef 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 
    189 typedef 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 
    195 typedef 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 
    222 typedef 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)
    240 typedef 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 
    248 typedef 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 
    260 typedef 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 
    266 typedef struct FWP_BYTE_ARRAY6_ {
    267     UINT8 byteArray6[6];
    268 } FWP_BYTE_ARRAY6;
    269 
    270 typedef struct FWP_BYTE_ARRAY16_ {
    271     UINT8 byteArray16[16];
    272 } FWP_BYTE_ARRAY16;
    273 
    274 typedef struct FWP_BYTE_BLOB_ {
    275     UINT32 size;
    276     UINT8 *data;
    277 } FWP_BYTE_BLOB;
    278 
    279 typedef 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 
    286 typedef 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 
    310 typedef struct FWP_V4_ADDR_AND_MASK_ {
    311     UINT32 addr;
    312     UINT32 mask;
    313 } FWP_V4_ADDR_AND_MASK;
    314 
    315 typedef struct FWP_V6_ADDR_AND_MASK_ {
    316     UINT8 addr[16];
    317     UINT8 prefixLength;
    318 } FWP_V6_ADDR_AND_MASK;
    319 
    320 typedef struct FWP_RANGE0_ {
    321     FWP_VALUE0 valueLow;
    322     FWP_VALUE0 valueHigh;
    323 } FWP_RANGE0;
    324 
    325 typedef 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 
    352 typedef 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__ */