fwptypes.h 11 KB

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