Headers diff for fwpuclnt.dll between 6.1.7601.18283-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 fwpmu.h (6.1.7601.18283-Windows_7.0)   fwpmu.h (6.3.9600.17415-Windows_8.1) 
/* /*
Copyright (c) Microsoft Corporation Copyright (c) Microsoft Corporation
SYNOPSIS SYNOPSIS
Declares the management portion of the FWP API. Declares the management portion of the FWP API.
*/ */
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if (NTDDI_VERSION >= NTDDI_WIN6) #if (NTDDI_VERSION >= NTDDI_WIN6)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// GUIDs for built-in layers. // GUIDs for built-in layers.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// c86fd1bf-21cd-497e-a0bb-17425c885c58 // c86fd1bf-21cd-497e-a0bb-17425c885c58
skipping to change at line 521 skipping to change at line 525
// 46928636-bbca-4b76-941d-0fa7f5d7d372 // 46928636-bbca-4b76-941d-0fa7f5d7d372
DEFINE_GUID( DEFINE_GUID(
FWPM_LAYER_ALE_FLOW_ESTABLISHED_V6_DISCARD, FWPM_LAYER_ALE_FLOW_ESTABLISHED_V6_DISCARD,
0x46928636, 0x46928636,
0xbbca, 0xbbca,
0x4b76, 0x4b76,
0x94, 0x1d, 0x0f, 0xa7, 0xf5, 0xd7, 0xd3, 0x72 0x94, 0x1d, 0x0f, 0xa7, 0xf5, 0xd7, 0xd3, 0x72
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN8)
// effb7edb-0055-4f9a-a23a-4ff8131ad191 // effb7edb-0055-4f9a-a23a-4ff8131ad191
DEFINE_GUID( DEFINE_GUID(
FWPM_LAYER_INBOUND_MAC_FRAME_802_3, FWPM_LAYER_INBOUND_MAC_FRAME_ETHERNET,
0xeffb7edb, 0xeffb7edb,
0x0055, 0x0055,
0x4f9a, 0x4f9a,
0xa2, 0x31, 0x4f, 0xf8, 0x13, 0x1a, 0xd1, 0x91 0xa2, 0x31, 0x4f, 0xf8, 0x13, 0x1a, 0xd1, 0x91
); );
// 694673bc-d6db-4870-adee-0acdbdb7f4b2 // 694673bc-d6db-4870-adee-0acdbdb7f4b2
DEFINE_GUID( DEFINE_GUID(
FWPM_LAYER_OUTBOUND_MAC_FRAME_802_3, FWPM_LAYER_OUTBOUND_MAC_FRAME_ETHERNET,
0x694673bc, 0x694673bc,
0xd6db, 0xd6db,
0x4870, 0x4870,
0xad, 0xee, 0x0a, 0xcd, 0xbd, 0xb7, 0xf4, 0xb2 0xad, 0xee, 0x0a, 0xcd, 0xbd, 0xb7, 0xf4, 0xb2
); );
#endif // d4220bd3-62ce-4f08-ae88-b56e8526df50
DEFINE_GUID(
FWPM_LAYER_INBOUND_MAC_FRAME_NATIVE,
0xd4220bd3,
0x62ce,
0x4f08,
0xae, 0x88, 0xb5, 0x6e, 0x85, 0x26, 0xdf, 0x50
);
// 94c44912-9d6f-4ebf-b995-05ab8a088d1b
DEFINE_GUID(
FWPM_LAYER_OUTBOUND_MAC_FRAME_NATIVE,
0x94c44912,
0x9d6f,
0x4ebf,
0xb9, 0x95, 0x05, 0xab, 0x8a, 0x08, 0x8d, 0x1b
);
// 7d98577a-9a87-41ec-9718-7cf589c9f32d
DEFINE_GUID(
FWPM_LAYER_INGRESS_VSWITCH_ETHERNET,
0x7d98577a,
0x9a87,
0x41ec,
0x97, 0x18, 0x7c, 0xf5, 0x89, 0xc9, 0xf3, 0x2d
);
// 86c872b0-76fa-4b79-93a4-0750530ae292
DEFINE_GUID(
FWPM_LAYER_EGRESS_VSWITCH_ETHERNET,
0x86c872b0,
0x76fa,
0x4b79,
0x93, 0xa4, 0x07, 0x50, 0x53, 0x0a, 0xe2, 0x92
);
// b2696ff6-774f-4554-9f7d-3da3945f8e85
DEFINE_GUID(
FWPM_LAYER_INGRESS_VSWITCH_TRANSPORT_V4,
0xb2696ff6,
0x774f,
0x4554,
0x9f, 0x7d, 0x3d, 0xa3, 0x94, 0x5f, 0x8e, 0x85
);
// 5ee314fc-7d8a-47f4-b7e3-291a36da4e12
DEFINE_GUID(
FWPM_LAYER_INGRESS_VSWITCH_TRANSPORT_V6,
0x5ee314fc,
0x7d8a,
0x47f4,
0xb7, 0xe3, 0x29, 0x1a, 0x36, 0xda, 0x4e, 0x12
);
// b92350b6-91f0-46b6-bdc4-871dfd4a7c98
DEFINE_GUID(
FWPM_LAYER_EGRESS_VSWITCH_TRANSPORT_V4,
0xb92350b6,
0x91f0,
0x46b6,
0xbd, 0xc4, 0x87, 0x1d, 0xfd, 0x4a, 0x7c, 0x98
);
// 1b2def23-1881-40bd-82f4-4254e63141cb
DEFINE_GUID(
FWPM_LAYER_EGRESS_VSWITCH_TRANSPORT_V6,
0x1b2def23,
0x1881,
0x40bd,
0x82, 0xf4, 0x42, 0x54, 0xe6, 0x31, 0x41, 0xcb
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#if (NTDDI_VERSION >= NTDDI_WINBLUE)
//e41d2719-05c7-40f0-8983-ea8d17bbc2f6
DEFINE_GUID(
FWPM_LAYER_INBOUND_TRANSPORT_FAST,
0xe41d2719,
0x05c7,
0x40f0,
0x89, 0x83, 0xea, 0x8d, 0x17, 0xbb, 0xc2, 0xf6
);
//13ed4388-a070-4815-9935-7a9be6408b78
DEFINE_GUID(
FWPM_LAYER_OUTBOUND_TRANSPORT_FAST,
0x13ed4388,
0xa070,
0x4815,
0x99,0x35,0x7a,0x9b,0xe6,0x40,0x8b,0x78
);
//853aaa8e-2b78-4d24-a804-36db08b29711
DEFINE_GUID(
FWPM_LAYER_INBOUND_MAC_FRAME_NATIVE_FAST,
0x853aaa8e,
0x2b78,
0x4d24,
0xa8,0x04,0x36,0xdb,0x08,0xb2,0x97,0x11
);
//470df946-c962-486f-9446-8293cbc75eb8
DEFINE_GUID(
FWPM_LAYER_OUTBOUND_MAC_FRAME_NATIVE_FAST,
0x470df946,
0xc962,
0x486f,
0x94,0x46,0x82,0x93,0xcb,0xc7,0x5e,0xb8
);
#endif // (NTDDI_VERSION >= NTDDI_WINBLUE)
// f02b1526-a459-4a51-b9e3-759de52b9d2c // f02b1526-a459-4a51-b9e3-759de52b9d2c
DEFINE_GUID( DEFINE_GUID(
FWPM_LAYER_IPSEC_KM_DEMUX_V4, FWPM_LAYER_IPSEC_KM_DEMUX_V4,
0xf02b1526, 0xf02b1526,
0xa459, 0xa459,
0x4a51, 0x4a51,
0xb9, 0xe3, 0x75, 0x9d, 0xe5, 0x2b, 0x9d, 0x2c 0xb9, 0xe3, 0x75, 0x9d, 0xe5, 0x2b, 0x9d, 0x2c
); );
skipping to change at line 869 skipping to change at line 984
DEFINE_GUID( DEFINE_GUID(
FWPM_SUBLAYER_IPSEC_DOSP, FWPM_SUBLAYER_IPSEC_DOSP,
0xe076d572, 0xe076d572,
0x5d3d, 0x5d3d,
0x48ef, 0x48ef,
0x80, 0x2b, 0x90, 0x9e, 0xdd, 0xb0, 0x98, 0xbd 0x80, 0x2b, 0x90, 0x9e, 0xdd, 0xb0, 0x98, 0xbd
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
// 24421dcf-0ac5-4caa-9e14-50f6e3636af0
DEFINE_GUID(
FWPM_SUBLAYER_TCP_TEMPLATES,
0x24421dcf,
0x0ac5,
0x4caa,
0x9e, 0x14, 0x50, 0xf6, 0xe3, 0x63, 0x6a, 0xf0
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// GUIDs for built-in conditions. // GUIDs for built-in conditions.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN8)
// f6e63dce-1f4b-4c6b-b6ef-1165e71f8ee7
DEFINE_GUID(
FWPM_CONDITION_INTERFACE_MAC_ADDRESS,
0xf6e63dce,
0x1f4b,
0x4c6b,
0xb6, 0xef, 0x11, 0x65, 0xe7, 0x1f, 0x8e, 0xe7
);
// d999e981-7948-4c8e-b742-c84e3b678f8f // d999e981-7948-4c8e-b742-c84e3b678f8f
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_ETHER_DESTINATION_ADDRESS, FWPM_CONDITION_MAC_LOCAL_ADDRESS,
0xd999e981, 0xd999e981,
0x7948, 0x7948,
0x4c83, 0x4c83,
0xb7, 0x42, 0xc8, 0x4e, 0x3b, 0x67, 0x8f, 0x8f 0xb7, 0x42, 0xc8, 0x4e, 0x3b, 0x67, 0x8f, 0x8f
); );
// 408f2ed4-3a70-4b4d-92a6-415ac20e2f12 // 408f2ed4-3a70-4b4d-92a6-415ac20e2f12
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_ETHER_SOURCE_ADDRESS, FWPM_CONDITION_MAC_REMOTE_ADDRESS,
0x408f2ed4, 0x408f2ed4,
0x3a70, 0x3a70,
0x4b4d, 0x4b4d,
0x92, 0xa6, 0x41, 0x5a, 0xc2, 0x0e, 0x2f, 0x12 0x92, 0xa6, 0x41, 0x5a, 0xc2, 0x0e, 0x2f, 0x12
); );
// ad2a4e10-e9e9-4e27-9cfa-fd3e5d184c11
DEFINE_GUID(
FWPM_CONDITION_ETHER_ADDRESS_TYPE,
0xad2a4e10,
0xe9e9,
0x4e27,
0x9c, 0xfa, 0xfd, 0x3e, 0x5d, 0x18, 0x4c, 0x11
);
// a38e51e9-0ac5-44eb-9387-a1c75b576e82
DEFINE_GUID(
FWPM_CONDITION_ETHER_ENCAP_METHOD,
0xa38e51e9,
0x0ac5,
0x44eb,
0x93, 0x87, 0xa1, 0xc7, 0x5b, 0x57, 0x6e, 0x82
);
// fd08948d-a219-4d52-bb98-1a5540ee7b4e // fd08948d-a219-4d52-bb98-1a5540ee7b4e
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_ETHER_TYPE, FWPM_CONDITION_ETHER_TYPE,
0xfd08948d, 0xfd08948d,
0xa219, 0xa219,
0x4d52, 0x4d52,
0xbb, 0x98, 0x1a, 0x55, 0x40, 0xee, 0x7b, 0x4e 0xbb, 0x98, 0x1a, 0x55, 0x40, 0xee, 0x7b, 0x4e
); );
// c45f5381-0caf-47d0-b96c-238acb17806b // 938eab21-3618-4e64-9ca5-2141ebda1ca2
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_ETHER_SNAP_CONTROL, FWPM_CONDITION_VLAN_ID,
0xc45f5381, 0x938eab21,
0x0caf, 0x3618,
0x47d0, 0x4e64,
0xb9, 0x6c, 0x23, 0x8a, 0xcb, 0x17, 0x80, 0x6b 0x9c, 0xa5, 0x21, 0x41, 0xeb, 0xda, 0x1c, 0xa2
); );
// af37332e-d7dc-4a69-9f4e-3d683ab7365b // dc04843c-79e6-4e44-a025-65b9bb0f9f94
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_ETHER_SNAP_OUI, FWPM_CONDITION_VSWITCH_TENANT_NETWORK_ID,
0xaf37332e, 0xdc04843c,
0xd7dc, 0x79e6,
0x4a69, 0x4e44,
0x9f, 0x4e, 0x3d, 0x68, 0x3a, 0xb7, 0x36, 0x5b 0xa0, 0x25, 0x65, 0xb9, 0xbb, 0x0f, 0x9f, 0x94
); );
// 938eab21-3618-4e64-9ca5-2141ebda1ca2 // db7bb42b-2dac-4cd4-a59a-e0bdce1e6834
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_ETHER_VLAN_TAG, FWPM_CONDITION_NDIS_PORT,
0x938eab21, 0xdb7bb42b,
0x3618, 0x2dac,
0x4e64, 0x4cd4,
0x9c, 0xa5, 0x21, 0x41, 0xeb, 0xda, 0x1c, 0xa2 0xa5, 0x9a, 0xe0, 0xbd, 0xce, 0x1e, 0x68, 0x34
); );
#endif
#define FWPM_CONDITION_INTERFACE_LUID FWPM_CONDITION_IP_LOCAL_INTERFACE // cb31cef1-791d-473b-89d1-61c5984304a0
DEFINE_GUID(
FWPM_CONDITION_NDIS_MEDIA_TYPE,
0xcb31cef1,
0x791d,
0x473b,
0x89, 0xd1, 0x61, 0xc5, 0x98, 0x43, 0x04, 0xa0
);
// 34c79823-c229-44f2-b83c-74020882ae77
DEFINE_GUID(
FWPM_CONDITION_NDIS_PHYSICAL_MEDIA_TYPE,
0x34c79823,
0xc229,
0x44f2,
0xb8, 0x3c, 0x74, 0x02, 0x08, 0x82, 0xae, 0x77
);
// 7bc43cbf-37ba-45f1-b74a-82ff518eeb10
DEFINE_GUID(
FWPM_CONDITION_L2_FLAGS,
0x7bc43cbf,
0x37ba,
0x45f1,
0xb7, 0x4a, 0x82, 0xff, 0x51, 0x8e, 0xeb, 0x10
);
// cc31355c-3073-4ffb-a14f-79415cb1ead1
DEFINE_GUID(
FWPM_CONDITION_MAC_LOCAL_ADDRESS_TYPE,
0xcc31355c,
0x3073,
0x4ffb,
0xa1, 0x4f, 0x79, 0x41, 0x5c, 0xb1, 0xea, 0xd1
);
// 027fedb4-f1c1-4030-b564-ee777fd867ea
DEFINE_GUID(
FWPM_CONDITION_MAC_REMOTE_ADDRESS_TYPE,
0x027fedb4,
0xf1c1,
0x4030,
0xb5, 0x64, 0xee, 0x77, 0x7f, 0xd8, 0x67, 0xea
);
#define FWPM_CONDITION_INTERFACE FWPM_CONDITION_IP_LOCAL_INTERFACE
// 71BC78FA-F17C-4997-A602-6ABB261F351C
DEFINE_GUID(
FWPM_CONDITION_ALE_PACKAGE_ID,
0x71bc78fa,
0xf17c,
0x4997,
0xa6, 0x2, 0x6a, 0xbb, 0x26, 0x1f, 0x35, 0x1c
);
// 7b795451-f1f6-4d05-b7cb-21779d802336
DEFINE_GUID(
FWPM_CONDITION_MAC_SOURCE_ADDRESS,
0x7b795451,
0xf1f6,
0x4d05,
0xb7, 0xcb, 0x21, 0x77, 0x9d, 0x80, 0x23, 0x36
);
// 04ea2a93-858c-4027-b613-b43180c7859e
DEFINE_GUID(
FWPM_CONDITION_MAC_DESTINATION_ADDRESS,
0x04ea2a93,
0x858c,
0x4027,
0xb6, 0x13, 0xb4, 0x31, 0x80, 0xc7, 0x85, 0x9e
);
// 5c1b72e4-299e-4437-a298-bc3f014b3dc2
DEFINE_GUID(
FWPM_CONDITION_MAC_SOURCE_ADDRESS_TYPE,
0x5c1b72e4,
0x299e,
0x4437,
0xa2, 0x98, 0xbc, 0x3f, 0x01, 0x4b, 0x3d, 0xc2
);
// ae052932-ef42-4e99-b129-f3b3139e34f7
DEFINE_GUID(
FWPM_CONDITION_MAC_DESTINATION_ADDRESS_TYPE,
0xae052932,
0xef42,
0x4e99,
0xb1, 0x29, 0xf3, 0xb3, 0x13, 0x9e, 0x34, 0xf7
);
// a6afef91-3df4-4730-a214-f5426aebf821
DEFINE_GUID(
FWPM_CONDITION_IP_SOURCE_PORT,
0xa6afef91,
0x3df4,
0x4730,
0xa2, 0x14, 0xf5, 0x42, 0x6a, 0xeb, 0xf8, 0x21
);
#define FWPM_CONDITION_VSWITCH_ICMP_TYPE FWPM_CONDITION_IP_SOURCE_PORT
// ce6def45-60fb-4a7b-a304-af30a117000e
DEFINE_GUID(
FWPM_CONDITION_IP_DESTINATION_PORT,
0xce6def45,
0x60fb,
0x4a7b,
0xa3, 0x04, 0xaf, 0x30, 0xa1, 0x17, 0x00, 0x0e
);
#define FWPM_CONDITION_VSWITCH_ICMP_CODE FWPM_CONDITION_IP_DESTINATION_PORT
// c4a414ba-437b-4de6-9946-d99c1b95b312
DEFINE_GUID(
FWPM_CONDITION_VSWITCH_ID,
0xc4a414ba,
0x437b,
0x4de6,
0x99, 0x46, 0xd9, 0x9c, 0x1b, 0x95, 0xb3, 0x12
);
// 11d48b4b-e77a-40b4-9155-392c906c2608
DEFINE_GUID(
FWPM_CONDITION_VSWITCH_NETWORK_TYPE,
0x11d48b4b,
0xe77a,
0x40b4,
0x91, 0x55, 0x39, 0x2c, 0x90, 0x6c, 0x26, 0x08
);
// 7f4ef24b-b2c1-4938-ba33-a1ecbed512ba
DEFINE_GUID(
FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_ID,
0x7f4ef24b,
0xb2c1,
0x4938,
0xba, 0x33, 0xa1, 0xec, 0xbe, 0xd5, 0x12, 0xba
);
// 8ed48be4-c926-49f6-a4f6-ef3030e3fc16
DEFINE_GUID(
FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_ID,
0x8ed48be4,
0xc926,
0x49f6,
0xa4, 0xf6, 0xef, 0x30, 0x30, 0xe3, 0xfc, 0x16
);
// 9c2a9ec2-9fc6-42bc-bdd8-406d4da0be64
DEFINE_GUID(
FWPM_CONDITION_VSWITCH_SOURCE_VM_ID,
0x9c2a9ec2,
0x9fc6,
0x42bc,
0xbd, 0xd8, 0x40, 0x6d, 0x4d, 0xa0, 0xbe, 0x64
);
// 6106aace-4de1-4c84-9671-3637f8bcf731
DEFINE_GUID(
FWPM_CONDITION_VSWITCH_DESTINATION_VM_ID,
0x6106aace,
0x4de1,
0x4c84,
0x96, 0x71, 0x36, 0x37, 0xf8, 0xbc, 0xf7, 0x31
);
// e6b040a2-edaf-4c36-908b-f2f58ae43807
DEFINE_GUID(
FWPM_CONDITION_VSWITCH_SOURCE_INTERFACE_TYPE,
0xe6b040a2,
0xedaf,
0x4c36,
0x90, 0x8b, 0xf2, 0xf5, 0x8a, 0xe4, 0x38, 0x07
);
// fa9b3f06-2f1a-4c57-9e68-a7098b28dbfe
DEFINE_GUID(
FWPM_CONDITION_VSWITCH_DESTINATION_INTERFACE_TYPE,
0xfa9b3f06,
0x2f1a,
0x4c57,
0x9e, 0x68, 0xa7, 0x09, 0x8b, 0x28, 0xdb, 0xfe
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
// d9ee00de-c1ef-4617-bfe3-ffd8f5a08957 // d9ee00de-c1ef-4617-bfe3-ffd8f5a08957
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_IP_LOCAL_ADDRESS, FWPM_CONDITION_IP_LOCAL_ADDRESS,
0xd9ee00de, 0xd9ee00de,
0xc1ef, 0xc1ef,
0x4617, 0x4617,
0xbf, 0xe3, 0xff, 0xd8, 0xf5, 0xa0, 0x89, 0x57 0xbf, 0xe3, 0xff, 0xd8, 0xf5, 0xa0, 0x89, 0x57
); );
skipping to change at line 1415 skipping to change at line 1720
// d78e1e87-8644-4ea5-9437-d809ecefc971 // d78e1e87-8644-4ea5-9437-d809ecefc971
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_ALE_APP_ID, FWPM_CONDITION_ALE_APP_ID,
0xd78e1e87, 0xd78e1e87,
0x8644, 0x8644,
0x4ea5, 0x4ea5,
0x94, 0x37, 0xd8, 0x09, 0xec, 0xef, 0xc9, 0x71 0x94, 0x37, 0xd8, 0x09, 0xec, 0xef, 0xc9, 0x71
); );
#if (NTDDI_VERSION >= NTDDI_WIN8)
// 0e6cd086-e1fb-4212-842f-8a9f993fb3f6
DEFINE_GUID(
FWPM_CONDITION_ALE_ORIGINAL_APP_ID,
0x0e6cd086,
0xe1fb,
0x4212,
0x84, 0x2f, 0x8a, 0x9f, 0x99, 0x3f, 0xb3, 0xf6
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
// af043a0a-b34d-4f86-979c-c90371af6e66 // af043a0a-b34d-4f86-979c-c90371af6e66
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_ALE_USER_ID, FWPM_CONDITION_ALE_USER_ID,
0xaf043a0a, 0xaf043a0a,
0xb34d, 0xb34d,
0x4f86, 0x4f86,
0x97, 0x9c, 0xc9, 0x03, 0x71, 0xaf, 0x6e, 0x66 0x97, 0x9c, 0xc9, 0x03, 0x71, 0xaf, 0x6e, 0x66
); );
// f63073b7-0189-4ab0-95a4-6123cbfab862 // f63073b7-0189-4ab0-95a4-6123cbfab862
skipping to change at line 1784 skipping to change at line 2102
//ad37dee3-722f-45cc-a4e3-068048124452 //ad37dee3-722f-45cc-a4e3-068048124452
DEFINE_GUID( DEFINE_GUID(
FWPM_CONDITION_IPSEC_POLICY_KEY, FWPM_CONDITION_IPSEC_POLICY_KEY,
0xad37dee3, 0xad37dee3,
0x722f, 0x722f,
0x45cc, 0x45cc,
0xa4, 0xe3, 0x06, 0x80, 0x48, 0x12, 0x44, 0x52 0xa4, 0xe3, 0x06, 0x80, 0x48, 0x12, 0x44, 0x52
); );
#endif #if (NTDDI_VERSION >= NTDDI_WIN8)
//f64fc6d1-f9cb-43d2-8a5f-e13bc894f265
DEFINE_GUID(
FWPM_CONDITION_QM_MODE,
0xf64fc6d1,
0xf9cb,
0x43d2,
0x8a, 0x5f, 0xe1, 0x3b, 0xc8, 0x94, 0xf2, 0x65
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// GUIDs for built-in providers. // GUIDs for built-in providers.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// 10ad9216-ccde-456c-8b16-e9f04e60a90b // 10ad9216-ccde-456c-8b16-e9f04e60a90b
DEFINE_GUID( DEFINE_GUID(
FWPM_PROVIDER_IKEEXT, FWPM_PROVIDER_IKEEXT,
skipping to change at line 1821 skipping to change at line 2150
// 896aa19e-9a34-4bcb-ae79-beb9127c84b9 // 896aa19e-9a34-4bcb-ae79-beb9127c84b9
DEFINE_GUID( DEFINE_GUID(
FWPM_PROVIDER_TCP_CHIMNEY_OFFLOAD, FWPM_PROVIDER_TCP_CHIMNEY_OFFLOAD,
0x896aa19e, 0x896aa19e,
0x9a34, 0x9a34,
0x4bcb, 0x4bcb,
0xae, 0x79, 0xbe, 0xb9, 0x12, 0x7c, 0x84, 0xb9 0xae, 0x79, 0xbe, 0xb9, 0x12, 0x7c, 0x84, 0xb9
); );
#if (NTDDI_VERSION >= NTDDI_WIN8)
// 76cfcd30-3394-432d-bed3-441ae50e63c3
DEFINE_GUID(
FWPM_PROVIDER_TCP_TEMPLATES,
0x76cfcd30,
0x3394,
0x432d,
0xbe, 0xd3, 0x44, 0x1a, 0xe5, 0x0e, 0x63, 0xc3
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// GUIDs for built-in callouts. // GUIDs for built-in callouts.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// 5132900d-5e84-4b5f-80e4-01741e81ff10 // 5132900d-5e84-4b5f-80e4-01741e81ff10
DEFINE_GUID( DEFINE_GUID(
FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V4, FWPM_CALLOUT_IPSEC_INBOUND_TRANSPORT_V4,
0x5132900d, 0x5132900d,
skipping to change at line 2083 skipping to change at line 2423
// 98e5373c-b884-490f-b65f-2f6a4a575195 // 98e5373c-b884-490f-b65f-2f6a4a575195
DEFINE_GUID( DEFINE_GUID(
FWPM_CALLOUT_SET_OPTIONS_AUTH_CONNECT_LAYER_V6, FWPM_CALLOUT_SET_OPTIONS_AUTH_CONNECT_LAYER_V6,
0x98e5373c, 0x98e5373c,
0xb884, 0xb884,
0x490f, 0x490f,
0xb6, 0x5f, 0x2f, 0x6a, 0x4a, 0x57, 0x51, 0x95 0xb6, 0x5f, 0x2f, 0x6a, 0x4a, 0x57, 0x51, 0x95
); );
#if (NTDDI_VERSION >= NTDDI_WIN8)
// 2d55f008-0c01-4f92-b26e-a08a94569b8d
DEFINE_GUID(
FWPM_CALLOUT_SET_OPTIONS_AUTH_RECV_ACCEPT_LAYER_V4,
0x2d55f008,
0x0c01,
0x4f92,
0xb2, 0x6e, 0xa0, 0x8a, 0x94, 0x56, 0x9b, 0x8d
);
// 63018537-f281-4dc4-83d3-8dec18b7ade2
DEFINE_GUID(
FWPM_CALLOUT_SET_OPTIONS_AUTH_RECV_ACCEPT_LAYER_V6,
0x63018537,
0xf281,
0x4dc4,
0x83, 0xd3, 0x8d, 0xec, 0x18, 0xb7, 0xad, 0xe2
);
// 288B524D-0566-4e19-B612-8F441A2E5949
DEFINE_GUID(
FWPM_CALLOUT_RESERVED_AUTH_CONNECT_LAYER_V4,
0x288b524d,
0x566,
0x4e19,
0xb6, 0x12, 0x8f, 0x44, 0x1a, 0x2e, 0x59, 0x49
);
// 00B84B92-2B5E-4b71-AB0E-AACA43E387E6
DEFINE_GUID(
FWPM_CALLOUT_RESERVED_AUTH_CONNECT_LAYER_V6,
0xb84b92,
0x2b5e,
0x4b71,
0xab, 0xe, 0xaa, 0xca, 0x43, 0xe3, 0x87, 0xe6
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
// 31b95392-066e-42a2-b7db-92f8acdd56f9 // 31b95392-066e-42a2-b7db-92f8acdd56f9
DEFINE_GUID( DEFINE_GUID(
FWPM_CALLOUT_TEREDO_ALE_RESOURCE_ASSIGNMENT_V6, FWPM_CALLOUT_TEREDO_ALE_RESOURCE_ASSIGNMENT_V6,
0x31b95392, 0x31b95392,
0x066e, 0x066e,
0x42a2, 0x42a2,
0xb7, 0xdb, 0x92, 0xf8, 0xac, 0xdd, 0x56, 0xf9 0xb7, 0xdb, 0x92, 0xf8, 0xac, 0xdd, 0x56, 0xf9
); );
#define FWPM_CALLOUT_EDGE_TRAVERSAL_ALE_RESOURCE_ASSIGNMENT_V6 \ #define FWPM_CALLOUT_EDGE_TRAVERSAL_ALE_RESOURCE_ASSIGNMENT_V6 \
skipping to change at line 2125 skipping to change at line 2505
// 33486ab5-6d5e-4e65-a00b-a7afed0ba9a1 // 33486ab5-6d5e-4e65-a00b-a7afed0ba9a1
DEFINE_GUID( DEFINE_GUID(
FWPM_CALLOUT_EDGE_TRAVERSAL_ALE_LISTEN_V4, FWPM_CALLOUT_EDGE_TRAVERSAL_ALE_LISTEN_V4,
0x33486ab5, 0x33486ab5,
0x6d5e, 0x6d5e,
0x4e65, 0x4e65,
0xa0, 0x0b, 0xa7, 0xaf, 0xed, 0x0b, 0xa9, 0xa1 0xa0, 0x0b, 0xa7, 0xaf, 0xed, 0x0b, 0xa9, 0xa1
); );
#if (NTDDI_VERSION >= NTDDI_WIN8)
// 215a0b39-4b7e-4eda-8ce4-179679df6224
DEFINE_GUID(
FWPM_CALLOUT_TCP_TEMPLATES_CONNECT_LAYER_V4,
0x215a0b39,
0x4b7e,
0x4eda,
0x8c, 0xe4, 0x17, 0x96, 0x79, 0xdf, 0x62, 0x24
);
// 838b37a1-5c12-4d34-8b38-078728b2d25c
DEFINE_GUID(
FWPM_CALLOUT_TCP_TEMPLATES_CONNECT_LAYER_V6,
0x838b37a1,
0x5c12,
0x4d34,
0x8b, 0x38, 0x07, 0x87, 0x28, 0xb2, 0xd2, 0x5c
);
// 2f23f5d0-40c4-4c41-a254-46d8dba8957c
DEFINE_GUID(
FWPM_CALLOUT_TCP_TEMPLATES_ACCEPT_LAYER_V4,
0x2f23f5d0,
0x40c4,
0x4c41,
0xa2, 0x54, 0x46, 0xd8, 0xdb, 0xa8, 0x95, 0x7c
);
// b25152f0-991c-4f53-bbe7-d24b45fe632c
DEFINE_GUID(
FWPM_CALLOUT_TCP_TEMPLATES_ACCEPT_LAYER_V6,
0xb25152f0,
0x991c,
0x4f53,
0xbb, 0xe7, 0xd2, 0x4b, 0x45, 0xfe, 0x63, 0x2c
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// GUIDs for built-in provider contexts. // GUIDs for built-in provider contexts.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// b25ea800-0d02-46ed-92bd-7fa84bb73e9d // b25ea800-0d02-46ed-92bd-7fa84bb73e9d
DEFINE_GUID( DEFINE_GUID(
FWPM_PROVIDER_CONTEXT_SECURE_SOCKET_AUTHIP, FWPM_PROVIDER_CONTEXT_SECURE_SOCKET_AUTHIP,
0xb25ea800, 0xb25ea800,
skipping to change at line 2323 skipping to change at line 2743
}; };
#endif // (NTDDI_VERSION >= NTDDI_WIN6SP1) #endif // (NTDDI_VERSION >= NTDDI_WIN6SP1)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Well-known filter contexts. // Well-known filter contexts.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// IPSec transport filter contexts in inbound layer // IPsec transport filter contexts in inbound layer
#define FWPM_CONTEXT_IPSEC_INBOUND_PASSTHRU (0x1ui64) #define FWPM_CONTEXT_IPSEC_INBOUND_PASSTHRU (0x1ui64)
#define FWPM_CONTEXT_IPSEC_INBOUND_PERSIST_CONNECTION_SECURITY (0x2ui64) #define FWPM_CONTEXT_IPSEC_INBOUND_PERSIST_CONNECTION_SECURITY (0x2ui64)
#define FWPM_CONTEXT_IPSEC_INBOUND_RESERVED (0xff00000000000000ui64) #define FWPM_CONTEXT_IPSEC_INBOUND_RESERVED (0xff00000000000000ui64)
// IPSec transport filter contexts in outbound layer // IPsec transport filter contexts in outbound layer
#define FWPM_CONTEXT_IPSEC_OUTBOUND_NEGOTIATE_DISCOVER (0x1ui64) #define FWPM_CONTEXT_IPSEC_OUTBOUND_NEGOTIATE_DISCOVER (0x1ui64)
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
#define FWPM_CONTEXT_IPSEC_OUTBOUND_SUPPRESS_NEGOTIATION (0x2ui64) #define FWPM_CONTEXT_IPSEC_OUTBOUND_SUPPRESS_NEGOTIATION (0x2ui64)
#endif #endif
// Filter contexts used in the ALE connect layer // Filter contexts used in the ALE connect layer
#define FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_SECURITY (0x2ui64) #define FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_SECURITY (0x2ui64)
#define FWPM_CONTEXT_ALE_SET_CONNECTION_LAZY_SD_EVALUATION (0x4ui64) #define FWPM_CONTEXT_ALE_SET_CONNECTION_LAZY_SD_EVALUATION (0x4ui64)
// Filter contexts used in the ALE connect or accept layer // Filter contexts used in the ALE connect or accept layer
#define FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_ENCRYPTION (0x8ui64) #define FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_ENCRYPTION (0x8ui64)
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
#define FWPM_CONTEXT_ALE_SET_CONNECTION_ALLOW_FIRST_INBOUND_PKT_UNENCRYPTED (0x1 0ui64) #define FWPM_CONTEXT_ALE_SET_CONNECTION_ALLOW_FIRST_INBOUND_PKT_UNENCRYPTED (0x1 0ui64)
// FWPM_CONTEXT_ALE_ALLOW_AUTH_FW modifies configurations that require ipsec sec // FWPM_CONTEXT_ALE_ALLOW_AUTH_FW modifies configurations that require IPsec
urity // security. Hence, at connect, this is only valid in combination with
// Hence, at connect, this is only valid in combination with FWPM_CONTEXT_ALE_SE // FWPM_CONTEXT_ALE_SET_CONNECTION_REQUIRE_IPSEC_SECURITY.
T_CONNECTION_REQUIRE_IPSEC_SECURITY.
#define FWPM_CONTEXT_ALE_ALLOW_AUTH_FW (0x20ui64) #define FWPM_CONTEXT_ALE_ALLOW_AUTH_FW (0x20ui64)
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
// Contexts used by the TCP Chimney Offload callouts. // Contexts used by the TCP Chimney Offload callouts.
#define FWPM_CONTEXT_TCP_CHIMNEY_OFFLOAD_ENABLE (0x1ui64) #define FWPM_CONTEXT_TCP_CHIMNEY_OFFLOAD_ENABLE (0x1ui64)
#define FWPM_CONTEXT_TCP_CHIMNEY_OFFLOAD_DISABLE (0x2ui64) #define FWPM_CONTEXT_TCP_CHIMNEY_OFFLOAD_DISABLE (0x2ui64)
// Contexts used in the RPC audit sublayer // Contexts used in the RPC audit sublayer
#define FWPM_CONTEXT_RPC_AUDIT_ENABLED (0x1ui64) #define FWPM_CONTEXT_RPC_AUDIT_ENABLED (0x1ui64)
skipping to change at line 2415 skipping to change at line 2836
FWPM_ACTRL_READ_STATS | \ FWPM_ACTRL_READ_STATS | \
FWPM_ACTRL_SUBSCRIBE | \ FWPM_ACTRL_SUBSCRIBE | \
FWPM_ACTRL_WRITE ) FWPM_ACTRL_WRITE )
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Common utility functions. // Common utility functions.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
void WINAPI FwpmFreeMemory0(__inout void** p); void WINAPI FwpmFreeMemory0(_Inout_ void** p);
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing the engine. // Functions for managing the engine.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
FwpmEngineOpen0( FwpmEngineOpen0(
__in_opt const wchar_t* serverName, _In_opt_ const wchar_t* serverName,
__in UINT32 authnService, _In_ UINT32 authnService,
__in_opt SEC_WINNT_AUTH_IDENTITY_W* authIdentity, _In_opt_ SEC_WINNT_AUTH_IDENTITY_W* authIdentity,
__in_opt const FWPM_SESSION0* session, _In_opt_ const FWPM_SESSION0* session,
__out HANDLE* engineHandle _Out_ HANDLE* engineHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmEngineClose0(__inout HANDLE engineHandle); FwpmEngineClose0(_Inout_ HANDLE engineHandle);
DWORD DWORD
WINAPI WINAPI
FwpmEngineGetOption0( FwpmEngineGetOption0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in FWPM_ENGINE_OPTION option, _In_ FWPM_ENGINE_OPTION option,
__deref_out FWP_VALUE0** value _Outptr_ FWP_VALUE0** value
); );
DWORD DWORD
WINAPI WINAPI
FwpmEngineSetOption0( FwpmEngineSetOption0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in FWPM_ENGINE_OPTION option, _In_ FWPM_ENGINE_OPTION option,
__in const FWP_VALUE0* newValue _In_ const FWP_VALUE0* newValue
); );
DWORD DWORD
WINAPI WINAPI
FwpmEngineGetSecurityInfo0( FwpmEngineGetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
FwpmEngineSetSecurityInfo0( FwpmEngineSetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
DWORD DWORD
WINAPI WINAPI
FwpmSessionCreateEnumHandle0( FwpmSessionCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const FWPM_SESSION_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const FWPM_SESSION_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmSessionEnum0( FwpmSessionEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_SESSION0*** entries, _Outptr_result_buffer_(*numEntriesReturned) FWPM_SESSION0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
DWORD DWORD
WINAPI WINAPI
FwpmSessionDestroyEnumHandle0( FwpmSessionDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for explicit transactions. // Functions for explicit transactions.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
#define FWPM_TXN_READ_ONLY (0x00000001) #define FWPM_TXN_READ_ONLY (0x00000001)
DWORD DWORD
WINAPI WINAPI
FwpmTransactionBegin0( FwpmTransactionBegin0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT32 flags _In_ UINT32 flags
); );
DWORD DWORD
WINAPI WINAPI
FwpmTransactionCommit0(__in HANDLE engineHandle); FwpmTransactionCommit0(_In_ HANDLE engineHandle);
DWORD DWORD
WINAPI WINAPI
FwpmTransactionAbort0(__in HANDLE engineHandle); FwpmTransactionAbort0(_In_ HANDLE engineHandle);
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing providers. // Functions for managing providers.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
FwpmProviderAdd0( FwpmProviderAdd0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_PROVIDER0* provider, _In_ const FWPM_PROVIDER0* provider,
__in_opt PSECURITY_DESCRIPTOR sd _In_opt_ PSECURITY_DESCRIPTOR sd
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderDeleteByKey0( FwpmProviderDeleteByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key _In_ const GUID* key
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderGetByKey0( FwpmProviderGetByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key, _In_ const GUID* key,
__deref_out FWPM_PROVIDER0** provider _Outptr_ FWPM_PROVIDER0** provider
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderCreateEnumHandle0( FwpmProviderCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const FWPM_PROVIDER_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const FWPM_PROVIDER_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderEnum0( FwpmProviderEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_PROVIDER0*** entries, _Outptr_result_buffer_(*numEntriesReturned) FWPM_PROVIDER0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderDestroyEnumHandle0( FwpmProviderDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderGetSecurityInfoByKey0( FwpmProviderGetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderSetSecurityInfoByKey0( FwpmProviderSetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
typedef void (CALLBACK *FWPM_PROVIDER_CHANGE_CALLBACK0)( typedef void (CALLBACK *FWPM_PROVIDER_CHANGE_CALLBACK0)(
__inout void* context, _Inout_ void* context,
__in const FWPM_PROVIDER_CHANGE0* change _In_ const FWPM_PROVIDER_CHANGE0* change
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderSubscribeChanges0( FwpmProviderSubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_PROVIDER_SUBSCRIPTION0* subscription, _In_ const FWPM_PROVIDER_SUBSCRIPTION0* subscription,
__in FWPM_PROVIDER_CHANGE_CALLBACK0 callback, _In_ FWPM_PROVIDER_CHANGE_CALLBACK0 callback,
__in_opt void* context, _In_opt_ void* context,
__out HANDLE* changeHandle _Out_ HANDLE* changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderUnsubscribeChanges0( FwpmProviderUnsubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE changeHandle _Inout_ HANDLE changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderSubscriptionsGet0( FwpmProviderSubscriptionsGet0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__deref_out_ecount(*numEntries) _Outptr_result_buffer_(*numEntries)
FWPM_PROVIDER_SUBSCRIPTION0*** entries, FWPM_PROVIDER_SUBSCRIPTION0*** entries,
__out UINT32* numEntries _Out_ UINT32* numEntries
); );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing provider contexts. // Functions for managing provider contexts.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextAdd0( FwpmProviderContextAdd0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_PROVIDER_CONTEXT0* providerContext, _In_ const FWPM_PROVIDER_CONTEXT0* providerContext,
__in_opt PSECURITY_DESCRIPTOR sd, _In_opt_ PSECURITY_DESCRIPTOR sd,
__out_opt UINT64* id _Out_opt_ UINT64* id
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextAdd1( FwpmProviderContextAdd1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_PROVIDER_CONTEXT1* providerContext, _In_ const FWPM_PROVIDER_CONTEXT1* providerContext,
__in_opt PSECURITY_DESCRIPTOR sd, _In_opt_ PSECURITY_DESCRIPTOR sd,
__out_opt UINT64* id _Out_opt_ UINT64* id
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
FwpmProviderContextAdd2(
_In_ HANDLE engineHandle,
_In_ const FWPM_PROVIDER_CONTEXT2* providerContext,
_In_opt_ PSECURITY_DESCRIPTOR sd,
_Out_opt_ UINT64* id
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextDeleteById0( FwpmProviderContextDeleteById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id _In_ UINT64 id
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextDeleteByKey0( FwpmProviderContextDeleteByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key _In_ const GUID* key
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextGetById0( FwpmProviderContextGetById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__deref_out FWPM_PROVIDER_CONTEXT0** providerContext _Outptr_ FWPM_PROVIDER_CONTEXT0** providerContext
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextGetById1( FwpmProviderContextGetById1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__deref_out FWPM_PROVIDER_CONTEXT1** providerContext _Outptr_ FWPM_PROVIDER_CONTEXT1** providerContext
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
FwpmProviderContextGetById2(
_In_ HANDLE engineHandle,
_In_ UINT64 id,
_Outptr_ FWPM_PROVIDER_CONTEXT2** providerContext
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextGetByKey0( FwpmProviderContextGetByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key, _In_ const GUID* key,
__deref_out FWPM_PROVIDER_CONTEXT0** providerContext _Outptr_ FWPM_PROVIDER_CONTEXT0** providerContext
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextGetByKey1( FwpmProviderContextGetByKey1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key, _In_ const GUID* key,
__deref_out FWPM_PROVIDER_CONTEXT1** providerContext _Outptr_ FWPM_PROVIDER_CONTEXT1** providerContext
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
FwpmProviderContextGetByKey2(
_In_ HANDLE engineHandle,
_In_ const GUID* key,
_Outptr_ FWPM_PROVIDER_CONTEXT2** providerContext
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextCreateEnumHandle0( FwpmProviderContextCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const FWPM_PROVIDER_CONTEXT_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextEnum0( FwpmProviderContextEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_PROVIDER_CONTEXT0*** entries, _Outptr_result_buffer_(*numEntriesReturned)
__out UINT32* numEntriesReturned FWPM_PROVIDER_CONTEXT0*** entries,
_Out_ UINT32* numEntriesReturned
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextEnum1( FwpmProviderContextEnum1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_PROVIDER_CONTEXT1*** entries, _Outptr_result_buffer_(*numEntriesReturned)
__out UINT32* numEntriesReturned FWPM_PROVIDER_CONTEXT1*** entries,
_Out_ UINT32* numEntriesReturned
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
FwpmProviderContextEnum2(
_In_ HANDLE engineHandle,
_In_ HANDLE enumHandle,
_In_ UINT32 numEntriesRequested,
_Outptr_result_buffer_(*numEntriesReturned)
FWPM_PROVIDER_CONTEXT2*** entries,
_Out_ UINT32* numEntriesReturned
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextDestroyEnumHandle0( FwpmProviderContextDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextGetSecurityInfoByKey0( FwpmProviderContextGetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextSetSecurityInfoByKey0( FwpmProviderContextSetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
typedef void (CALLBACK *FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0)( typedef void (CALLBACK *FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0)(
__inout void* context, _Inout_ void* context,
__in const FWPM_PROVIDER_CONTEXT_CHANGE0* change _In_ const FWPM_PROVIDER_CONTEXT_CHANGE0* change
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextSubscribeChanges0( FwpmProviderContextSubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0* subscription, _In_ const FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0* subscription,
__in FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0 callback, _In_ FWPM_PROVIDER_CONTEXT_CHANGE_CALLBACK0 callback,
__in_opt void* context, _In_opt_ void* context,
__out HANDLE* changeHandle _Out_ HANDLE* changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextUnsubscribeChanges0( FwpmProviderContextUnsubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE changeHandle _Inout_ HANDLE changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmProviderContextSubscriptionsGet0( FwpmProviderContextSubscriptionsGet0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__deref_out_ecount(*numEntries) _Outptr_result_buffer_(*numEntries)
FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0*** entries, FWPM_PROVIDER_CONTEXT_SUBSCRIPTION0*** entries,
__out UINT32* numEntries _Out_ UINT32* numEntries
); );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing sub-layers. // Functions for managing sub-layers.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerAdd0( FwpmSubLayerAdd0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_SUBLAYER0* subLayer, _In_ const FWPM_SUBLAYER0* subLayer,
__in_opt PSECURITY_DESCRIPTOR sd _In_opt_ PSECURITY_DESCRIPTOR sd
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerDeleteByKey0( FwpmSubLayerDeleteByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key _In_ const GUID* key
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerGetByKey0( FwpmSubLayerGetByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key, _In_ const GUID* key,
__deref_out FWPM_SUBLAYER0** subLayer _Outptr_ FWPM_SUBLAYER0** subLayer
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerCreateEnumHandle0( FwpmSubLayerCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const FWPM_SUBLAYER_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const FWPM_SUBLAYER_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerEnum0( FwpmSubLayerEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_SUBLAYER0*** entries, _Outptr_result_buffer_(*numEntriesReturned) FWPM_SUBLAYER0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerDestroyEnumHandle0( FwpmSubLayerDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerGetSecurityInfoByKey0( FwpmSubLayerGetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerSetSecurityInfoByKey0( FwpmSubLayerSetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
typedef void (CALLBACK *FWPM_SUBLAYER_CHANGE_CALLBACK0)( typedef void (CALLBACK *FWPM_SUBLAYER_CHANGE_CALLBACK0)(
__inout void* context, _Inout_ void* context,
__in const FWPM_SUBLAYER_CHANGE0* change _In_ const FWPM_SUBLAYER_CHANGE0* change
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerSubscribeChanges0( FwpmSubLayerSubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_SUBLAYER_SUBSCRIPTION0* subscription, _In_ const FWPM_SUBLAYER_SUBSCRIPTION0* subscription,
__in FWPM_SUBLAYER_CHANGE_CALLBACK0 callback, _In_ FWPM_SUBLAYER_CHANGE_CALLBACK0 callback,
__in_opt void* context, _In_opt_ void* context,
__out HANDLE* changeHandle _Out_ HANDLE* changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerUnsubscribeChanges0( FwpmSubLayerUnsubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE changeHandle _Inout_ HANDLE changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmSubLayerSubscriptionsGet0( FwpmSubLayerSubscriptionsGet0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__deref_out_ecount(*numEntries) _Outptr_result_buffer_(*numEntries)
FWPM_SUBLAYER_SUBSCRIPTION0*** entries, FWPM_SUBLAYER_SUBSCRIPTION0*** entries,
__out UINT32* numEntries _Out_ UINT32* numEntries
); );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing layers. // Functions for managing layers.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
FwpmLayerGetById0( FwpmLayerGetById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT16 id, _In_ UINT16 id,
__deref_out FWPM_LAYER0** layer _Outptr_ FWPM_LAYER0** layer
); );
DWORD DWORD
WINAPI WINAPI
FwpmLayerGetByKey0( FwpmLayerGetByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key, _In_ const GUID* key,
__deref_out FWPM_LAYER0** layer _Outptr_ FWPM_LAYER0** layer
); );
DWORD DWORD
WINAPI WINAPI
FwpmLayerCreateEnumHandle0( FwpmLayerCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const FWPM_LAYER_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const FWPM_LAYER_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmLayerEnum0( FwpmLayerEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_LAYER0*** entries, _Outptr_result_buffer_(*numEntriesReturned) FWPM_LAYER0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
DWORD DWORD
WINAPI WINAPI
FwpmLayerDestroyEnumHandle0( FwpmLayerDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmLayerGetSecurityInfoByKey0( FwpmLayerGetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
FwpmLayerSetSecurityInfoByKey0( FwpmLayerSetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing callouts. // Functions for managing callouts.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
FwpmCalloutAdd0( FwpmCalloutAdd0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_CALLOUT0* callout, _In_ const FWPM_CALLOUT0* callout,
__in_opt PSECURITY_DESCRIPTOR sd, _In_opt_ PSECURITY_DESCRIPTOR sd,
__out_opt UINT32* id _Out_opt_ UINT32* id
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutDeleteById0( FwpmCalloutDeleteById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT32 id _In_ UINT32 id
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutDeleteByKey0( FwpmCalloutDeleteByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key _In_ const GUID* key
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutGetById0( FwpmCalloutGetById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT32 id, _In_ UINT32 id,
__deref_out FWPM_CALLOUT0** callout _Outptr_ FWPM_CALLOUT0** callout
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutGetByKey0( FwpmCalloutGetByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key, _In_ const GUID* key,
__deref_out FWPM_CALLOUT0** callout _Outptr_ FWPM_CALLOUT0** callout
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutCreateEnumHandle0( FwpmCalloutCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const FWPM_CALLOUT_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const FWPM_CALLOUT_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutEnum0( FwpmCalloutEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_CALLOUT0*** entries, _Outptr_result_buffer_(*numEntriesReturned) FWPM_CALLOUT0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutDestroyEnumHandle0( FwpmCalloutDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutGetSecurityInfoByKey0( FwpmCalloutGetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutSetSecurityInfoByKey0( FwpmCalloutSetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
typedef void (CALLBACK *FWPM_CALLOUT_CHANGE_CALLBACK0)( typedef void (CALLBACK *FWPM_CALLOUT_CHANGE_CALLBACK0)(
__inout void* context, _Inout_ void* context,
__in const FWPM_CALLOUT_CHANGE0* change _In_ const FWPM_CALLOUT_CHANGE0* change
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutSubscribeChanges0( FwpmCalloutSubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_CALLOUT_SUBSCRIPTION0* subscription, _In_ const FWPM_CALLOUT_SUBSCRIPTION0* subscription,
__in FWPM_CALLOUT_CHANGE_CALLBACK0 callback, _In_ FWPM_CALLOUT_CHANGE_CALLBACK0 callback,
__in_opt void* context, _In_opt_ void* context,
__out HANDLE* changeHandle _Out_ HANDLE* changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutUnsubscribeChanges0( FwpmCalloutUnsubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE changeHandle _Inout_ HANDLE changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmCalloutSubscriptionsGet0( FwpmCalloutSubscriptionsGet0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__deref_out_ecount(*numEntries) _Outptr_result_buffer_(*numEntries)
FWPM_CALLOUT_SUBSCRIPTION0*** entries, FWPM_CALLOUT_SUBSCRIPTION0*** entries,
__out UINT32* numEntries _Out_ UINT32* numEntries
); );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing filters. // Functions for managing filters.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
FwpmFilterAdd0( FwpmFilterAdd0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_FILTER0* filter, _In_ const FWPM_FILTER0* filter,
__in_opt PSECURITY_DESCRIPTOR sd, _In_opt_ PSECURITY_DESCRIPTOR sd,
__out_opt UINT64* id _Out_opt_ UINT64* id
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterDeleteById0( FwpmFilterDeleteById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id _In_ UINT64 id
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterDeleteByKey0( FwpmFilterDeleteByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key _In_ const GUID* key
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterGetById0( FwpmFilterGetById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__deref_out FWPM_FILTER0** filter _Outptr_ FWPM_FILTER0** filter
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterGetByKey0( FwpmFilterGetByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key, _In_ const GUID* key,
__deref_out FWPM_FILTER0** filter _Outptr_ FWPM_FILTER0** filter
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterCreateEnumHandle0( FwpmFilterCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const FWPM_FILTER_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const FWPM_FILTER_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterEnum0( FwpmFilterEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_FILTER0*** entries, _Outptr_result_buffer_(*numEntriesReturned) FWPM_FILTER0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterDestroyEnumHandle0( FwpmFilterDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterGetSecurityInfoByKey0( FwpmFilterGetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterSetSecurityInfoByKey0( FwpmFilterSetSecurityInfoByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const GUID* key, _In_opt_ const GUID* key,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
typedef void (CALLBACK *FWPM_FILTER_CHANGE_CALLBACK0)( typedef void (CALLBACK *FWPM_FILTER_CHANGE_CALLBACK0)(
__inout void* context, _Inout_ void* context,
__in const FWPM_FILTER_CHANGE0* change _In_ const FWPM_FILTER_CHANGE0* change
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterSubscribeChanges0( FwpmFilterSubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_FILTER_SUBSCRIPTION0* subscription, _In_ const FWPM_FILTER_SUBSCRIPTION0* subscription,
__in FWPM_FILTER_CHANGE_CALLBACK0 callback, _In_ FWPM_FILTER_CHANGE_CALLBACK0 callback,
__in_opt void* context, _In_opt_ void* context,
__out HANDLE* changeHandle _Out_ HANDLE* changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterUnsubscribeChanges0( FwpmFilterUnsubscribeChanges0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE changeHandle _Inout_ HANDLE changeHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmFilterSubscriptionsGet0( FwpmFilterSubscriptionsGet0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__deref_out_ecount(*numEntries) _Outptr_result_buffer_(*numEntries)
FWPM_FILTER_SUBSCRIPTION0*** entries, FWPM_FILTER_SUBSCRIPTION0*** entries,
__out UINT32* numEntries _Out_ UINT32* numEntries
); );
DWORD DWORD
WINAPI WINAPI
FwpmGetAppIdFromFileName0( FwpmGetAppIdFromFileName0(
__in PCWSTR fileName, _In_ PCWSTR fileName,
__deref_out FWP_BYTE_BLOB** appId _Outptr_ FWP_BYTE_BLOB** appId
); );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Helper functions for configuring an IPsec tunnel. // Helper functions for configuring an IPsec tunnel.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// Create a point-to-point tunnel. // Create a point-to-point tunnel.
#define FWPM_TUNNEL_FLAG_POINT_TO_POINT (0x00000001) #define FWPM_TUNNEL_FLAG_POINT_TO_POINT (0x00000001)
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
// Enable Virtual interface based IPsec tunnel mode. // Enable Virtual interface based IPsec tunnel mode.
#define FWPM_TUNNEL_FLAG_ENABLE_VIRTUAL_IF_TUNNELING (0x00000002) #define FWPM_TUNNEL_FLAG_ENABLE_VIRTUAL_IF_TUNNELING (0x00000002)
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
FwpmIPsecTunnelAdd0( FwpmIPsecTunnelAdd0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT32 flags, _In_ UINT32 flags,
__in_opt const FWPM_PROVIDER_CONTEXT0* mainModePolicy, _In_opt_ const FWPM_PROVIDER_CONTEXT0* mainModePolicy,
__in const FWPM_PROVIDER_CONTEXT0* tunnelPolicy, _In_ const FWPM_PROVIDER_CONTEXT0* tunnelPolicy,
__in UINT32 numFilterConditions, _In_ UINT32 numFilterConditions,
__in const FWPM_FILTER_CONDITION0* filterConditions, _In_reads_(numFilterConditions)
__in_opt PSECURITY_DESCRIPTOR sd const FWPM_FILTER_CONDITION0* filterConditions,
_In_opt_ PSECURITY_DESCRIPTOR sd
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
FwpmIPsecTunnelAdd1( FwpmIPsecTunnelAdd1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT32 flags, _In_ UINT32 flags,
__in_opt const FWPM_PROVIDER_CONTEXT1* mainModePolicy, _In_opt_ const FWPM_PROVIDER_CONTEXT1* mainModePolicy,
__in const FWPM_PROVIDER_CONTEXT1* tunnelPolicy, _In_ const FWPM_PROVIDER_CONTEXT1* tunnelPolicy,
__in UINT32 numFilterConditions, _In_ UINT32 numFilterConditions,
__in const FWPM_FILTER_CONDITION0* filterConditions, _In_reads_(numFilterConditions)
__in_opt const GUID* keyModKey, const FWPM_FILTER_CONDITION0* filterConditions,
__in_opt PSECURITY_DESCRIPTOR sd _In_opt_ const GUID* keyModKey,
_In_opt_ PSECURITY_DESCRIPTOR sd
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
FwpmIPsecTunnelAdd2(
_In_ HANDLE engineHandle,
_In_ UINT32 flags,
_In_opt_ const FWPM_PROVIDER_CONTEXT2* mainModePolicy,
_In_ const FWPM_PROVIDER_CONTEXT2* tunnelPolicy,
_In_ UINT32 numFilterConditions,
_In_reads_(numFilterConditions)
const FWPM_FILTER_CONDITION0* filterConditions,
_In_opt_ const GUID* keyModKey,
_In_opt_ PSECURITY_DESCRIPTOR sd
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
FwpmIPsecTunnelDeleteByKey0( FwpmIPsecTunnelDeleteByKey0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const GUID* key _In_ const GUID* key
); );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing IPsec. // Functions for managing IPsec.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
IPsecGetStatistics0( IPsecGetStatistics0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__out IPSEC_STATISTICS0* ipsecStatistics _Out_ IPSEC_STATISTICS0* ipsecStatistics
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecGetStatistics1( IPsecGetStatistics1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__out IPSEC_STATISTICS1* ipsecStatistics _Out_ IPSEC_STATISTICS1* ipsecStatistics
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextCreate0( IPsecSaContextCreate0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const IPSEC_TRAFFIC0* outboundTraffic, _In_ const IPSEC_TRAFFIC0* outboundTraffic,
__out_opt UINT64* inboundFilterId, _Out_opt_ UINT64* inboundFilterId,
__out UINT64* id _Out_ UINT64* id
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextCreate1( IPsecSaContextCreate1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const IPSEC_TRAFFIC1* outboundTraffic, _In_ const IPSEC_TRAFFIC1* outboundTraffic,
__in_opt const IPSEC_VIRTUAL_IF_TUNNEL_INFO0* virtualIfTunnelInfo, _In_opt_ const IPSEC_VIRTUAL_IF_TUNNEL_INFO0* virtualIfTunnelInfo,
__out_opt UINT64* inboundFilterId, _Out_opt_ UINT64* inboundFilterId,
__out UINT64* id _Out_ UINT64* id
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextDeleteById0( IPsecSaContextDeleteById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id _In_ UINT64 id
); );
DWORD DWORD
WINAPI WINAPI
IPsecSaContextGetById0( IPsecSaContextGetById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__deref_out IPSEC_SA_CONTEXT0** saContext _Outptr_ IPSEC_SA_CONTEXT0** saContext
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextGetById1( IPsecSaContextGetById1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__deref_out IPSEC_SA_CONTEXT1** saContext _Outptr_ IPSEC_SA_CONTEXT1** saContext
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextGetSpi0( IPsecSaContextGetSpi0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__in const IPSEC_GETSPI0* getSpi, _In_ const IPSEC_GETSPI0* getSpi,
__out IPSEC_SA_SPI* inboundSpi _Out_ IPSEC_SA_SPI* inboundSpi
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextGetSpi1( IPsecSaContextGetSpi1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__in const IPSEC_GETSPI1* getSpi, _In_ const IPSEC_GETSPI1* getSpi,
__out IPSEC_SA_SPI* inboundSpi _Out_ IPSEC_SA_SPI* inboundSpi
); );
DWORD DWORD
WINAPI WINAPI
IPsecSaContextSetSpi0( IPsecSaContextSetSpi0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__in const IPSEC_GETSPI1* getSpi, _In_ const IPSEC_GETSPI1* getSpi,
__in IPSEC_SA_SPI inboundSpi _In_ IPSEC_SA_SPI inboundSpi
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextAddInbound0( IPsecSaContextAddInbound0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__in const IPSEC_SA_BUNDLE0* inboundBundle _In_ const IPSEC_SA_BUNDLE0* inboundBundle
); );
DWORD DWORD
WINAPI WINAPI
IPsecSaContextAddOutbound0( IPsecSaContextAddOutbound0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__in const IPSEC_SA_BUNDLE0* outboundBundle _In_ const IPSEC_SA_BUNDLE0* outboundBundle
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextAddInbound1( IPsecSaContextAddInbound1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__in const IPSEC_SA_BUNDLE1* inboundBundle _In_ const IPSEC_SA_BUNDLE1* inboundBundle
); );
DWORD DWORD
WINAPI WINAPI
IPsecSaContextAddOutbound1( IPsecSaContextAddOutbound1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__in const IPSEC_SA_BUNDLE1* outboundBundle _In_ const IPSEC_SA_BUNDLE1* outboundBundle
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextExpire0( IPsecSaContextExpire0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id _In_ UINT64 id
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
// Flags indicating the specific field in the IPSEC_SA_CONTEXT data type that is // Flags indicating the specific field in the IPSEC_SA_CONTEXT data type that is
// being updated. // being updated.
// //
#define IPSEC_SA_DETAILS_UPDATE_TRAFFIC (0x01ui64) #define IPSEC_SA_DETAILS_UPDATE_TRAFFIC (0x01ui64)
#define IPSEC_SA_DETAILS_UPDATE_UDP_ENCAPSULATION (0x02ui64) #define IPSEC_SA_DETAILS_UPDATE_UDP_ENCAPSULATION (0x02ui64)
#define IPSEC_SA_BUNDLE_UPDATE_FLAGS (0x04ui64) #define IPSEC_SA_BUNDLE_UPDATE_FLAGS (0x04ui64)
#define IPSEC_SA_BUNDLE_UPDATE_NAP_CONTEXT (0x08ui64) #define IPSEC_SA_BUNDLE_UPDATE_NAP_CONTEXT (0x08ui64)
#define IPSEC_SA_BUNDLE_UPDATE_KEY_MODULE_STATE (0x10ui64) #define IPSEC_SA_BUNDLE_UPDATE_KEY_MODULE_STATE (0x10ui64)
#define IPSEC_SA_BUNDLE_UPDATE_PEER_V4_PRIVATE_ADDRESS (0x20ui64) #define IPSEC_SA_BUNDLE_UPDATE_PEER_V4_PRIVATE_ADDRESS (0x20ui64)
#define IPSEC_SA_BUNDLE_UPDATE_MM_SA_ID (0x40ui64) #define IPSEC_SA_BUNDLE_UPDATE_MM_SA_ID (0x40ui64)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextUpdate0( IPsecSaContextUpdate0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 flags, _In_ UINT64 flags,
__in const IPSEC_SA_CONTEXT1* newValues _In_ const IPSEC_SA_CONTEXT1* newValues
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextCreateEnumHandle0( IPsecSaContextCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const IPSEC_SA_CONTEXT_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const IPSEC_SA_CONTEXT_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
IPsecSaContextEnum0( IPsecSaContextEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) IPSEC_SA_CONTEXT0*** entries, _Outptr_result_buffer_(*numEntriesReturned) IPSEC_SA_CONTEXT0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextEnum1( IPsecSaContextEnum1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) IPSEC_SA_CONTEXT1*** entries, _Outptr_result_buffer_(*numEntriesReturned) IPSEC_SA_CONTEXT1*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaContextDestroyEnumHandle0( IPsecSaContextDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
#if (NTDDI_VERSION >= NTDDI_WIN8)
typedef void (CALLBACK *IPSEC_SA_CONTEXT_CALLBACK0)(
_Inout_ void *context,
_In_ const IPSEC_SA_CONTEXT_CHANGE0 *change
);
DWORD
WINAPI
IPsecSaContextSubscribe0(
_In_ HANDLE engineHandle,
_In_ const IPSEC_SA_CONTEXT_SUBSCRIPTION0 *subscription,
_In_ IPSEC_SA_CONTEXT_CALLBACK0 callback,
_In_opt_ void *context,
_Out_ HANDLE* eventsHandle
);
DWORD
WINAPI
IPsecSaContextUnsubscribe0(
_In_ HANDLE engineHandle,
_Inout_ HANDLE eventsHandle
);
DWORD
WINAPI
IPsecSaContextSubscriptionsGet0(
_In_ HANDLE engineHandle,
_Outptr_result_buffer_(*numEntries)
IPSEC_SA_CONTEXT_SUBSCRIPTION0*** entries,
_Out_ UINT32* numEntries
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
IPsecSaCreateEnumHandle0( IPsecSaCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const IPSEC_SA_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const IPSEC_SA_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
IPsecSaEnum0( IPsecSaEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) IPSEC_SA_DETAILS0*** entries, _Outptr_result_buffer_(*numEntriesReturned) IPSEC_SA_DETAILS0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaEnum1( IPsecSaEnum1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) IPSEC_SA_DETAILS1*** entries, _Outptr_result_buffer_(*numEntriesReturned) IPSEC_SA_DETAILS1*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IPsecSaDestroyEnumHandle0( IPsecSaDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
IPsecSaDbGetSecurityInfo0( IPsecSaDbGetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
IPsecSaDbSetSecurityInfo0( IPsecSaDbSetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing IPsec DoS Protection. // Functions for managing IPsec DoS Protection.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
IPsecDospGetStatistics0( IPsecDospGetStatistics0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__out IPSEC_DOSP_STATISTICS0* idpStatistics _Out_ IPSEC_DOSP_STATISTICS0* idpStatistics
); );
DWORD DWORD
WINAPI WINAPI
IPsecDospStateCreateEnumHandle0( IPsecDospStateCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const IPSEC_DOSP_STATE_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const IPSEC_DOSP_STATE_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
IPsecDospStateEnum0( IPsecDospStateEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntries) IPSEC_DOSP_STATE0*** entries, _Outptr_result_buffer_(*numEntries) IPSEC_DOSP_STATE0*** entries,
__out UINT32* numEntries _Out_ UINT32* numEntries
); );
DWORD DWORD
WINAPI WINAPI
IPsecDospStateDestroyEnumHandle0( IPsecDospStateDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
IPsecDospGetSecurityInfo0( IPsecDospGetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
IPsecDospSetSecurityInfo0( IPsecDospSetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for managing key managers.
//
///////////////////////////////////////////////////////////////////////////////
#if (NTDDI_VERSION >= NTDDI_WIN8)
typedef void ( CALLBACK * IPSEC_KEY_MANAGER_KEY_DICTATION_CHECK0)(
_In_ const IKEEXT_TRAFFIC0* ikeTraffic,
_Out_ BOOL* willDictateKey,
_Out_ UINT32* weight
);
typedef DWORD ( CALLBACK * IPSEC_KEY_MANAGER_DICTATE_KEY0)(
_Inout_ IPSEC_SA_DETAILS1* inboundSaDetails,
_Inout_ IPSEC_SA_DETAILS1* outboundSaDetails,
_Out_ BOOL* keyingModuleGenKey
);
typedef void ( CALLBACK * IPSEC_KEY_MANAGER_NOTIFY_KEY0)(
_In_ const IPSEC_SA_DETAILS1* inboundSa,
_In_ const IPSEC_SA_DETAILS1* outboundSa
);
typedef struct _IPSEC_KEY_MANAGER_CALLBACKS0 {
GUID reserved;
UINT32 flags;
IPSEC_KEY_MANAGER_KEY_DICTATION_CHECK0 keyDictationCheck;
IPSEC_KEY_MANAGER_DICTATE_KEY0 keyDictation;
IPSEC_KEY_MANAGER_NOTIFY_KEY0 keyNotify;
} IPSEC_KEY_MANAGER_CALLBACKS0;
DWORD
WINAPI
IPsecKeyManagerAddAndRegister0(
_In_ HANDLE engineHandle,
_In_ const IPSEC_KEY_MANAGER0* keyManager,
_In_ const IPSEC_KEY_MANAGER_CALLBACKS0* keyManagerCallbacks,
_Out_ HANDLE* keyMgmtHandle
);
DWORD
WINAPI
IPsecKeyManagerUnregisterAndDelete0(
_In_ HANDLE engineHandle,
_In_ HANDLE keyMgmtHandle
);
DWORD
WINAPI
IPsecKeyManagersGet0(
_In_ HANDLE engineHandle,
_Outptr_result_buffer_(*numEntries) IPSEC_KEY_MANAGER0*** entries,
_Out_ UINT32* numEntries
);
DWORD
WINAPI
IPsecKeyManagerGetSecurityInfoByKey0(
_In_ HANDLE engineHandle,
_Reserved_ const void* reserved,
_In_ SECURITY_INFORMATION securityInfo,
_Outptr_result_maybenull_ PSID* sidOwner,
_Outptr_result_maybenull_ PSID* sidGroup,
_Outptr_result_maybenull_ PACL* dacl,
_Outptr_result_maybenull_ PACL* sacl,
_Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
);
DWORD
WINAPI
IPsecKeyManagerSetSecurityInfoByKey0(
_In_ HANDLE engineHandle,
_Reserved_ const void* reserved,
_In_ SECURITY_INFORMATION securityInfo,
_In_opt_ const SID* sidOwner,
_In_opt_ const SID* sidGroup,
_In_opt_ const ACL* dacl,
_In_opt_ const ACL* sacl
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
///////////////////////////////////////////////////////////////////////////////
//
// Functions for managing IKE, Authip. // Functions for managing IKE, Authip.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
IkeextGetStatistics0( IkeextGetStatistics0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__out IKEEXT_STATISTICS0* ikeextStatistics _Out_ IKEEXT_STATISTICS0* ikeextStatistics
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IkeextGetStatistics1( IkeextGetStatistics1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__out IKEEXT_STATISTICS1* ikeextStatistics _Out_ IKEEXT_STATISTICS1* ikeextStatistics
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IkeextSaDeleteById0( IkeextSaDeleteById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id _In_ UINT64 id
); );
DWORD DWORD
WINAPI WINAPI
IkeextSaGetById0( IkeextSaGetById0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__deref_out IKEEXT_SA_DETAILS0** sa _Outptr_ IKEEXT_SA_DETAILS0** sa
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IkeextSaGetById1( IkeextSaGetById1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in UINT64 id, _In_ UINT64 id,
__in_opt GUID* saLookupContext, _In_opt_ GUID* saLookupContext,
__deref_out IKEEXT_SA_DETAILS1** sa _Outptr_ IKEEXT_SA_DETAILS1** sa
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
IkeextSaGetById2(
_In_ HANDLE engineHandle,
_In_ UINT64 id,
_In_opt_ GUID* saLookupContext,
_Outptr_ IKEEXT_SA_DETAILS2** sa
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
IkeextSaCreateEnumHandle0( IkeextSaCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const IKEEXT_SA_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const IKEEXT_SA_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
IkeextSaEnum0( IkeextSaEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) IKEEXT_SA_DETAILS0*** entries, _Outptr_result_buffer_(*numEntriesReturned) IKEEXT_SA_DETAILS0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
IkeextSaEnum1( IkeextSaEnum1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) IKEEXT_SA_DETAILS1*** entries, _Outptr_result_buffer_(*numEntriesReturned) IKEEXT_SA_DETAILS1*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
IkeextSaEnum2(
_In_ HANDLE engineHandle,
_In_ HANDLE enumHandle,
_In_ UINT32 numEntriesRequested,
_Outptr_result_buffer_(*numEntriesReturned) IKEEXT_SA_DETAILS2*** entries,
_Out_ UINT32* numEntriesReturned
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
IkeextSaDestroyEnumHandle0( IkeextSaDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
IkeextSaDbGetSecurityInfo0( IkeextSaDbGetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
IkeextSaDbSetSecurityInfo0( IkeextSaDbSetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for diagnostics. // Functions for diagnostics.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
FwpmNetEventCreateEnumHandle0( FwpmNetEventCreateEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in_opt const FWPM_NET_EVENT_ENUM_TEMPLATE0* enumTemplate, _In_opt_ const FWPM_NET_EVENT_ENUM_TEMPLATE0* enumTemplate,
__out HANDLE* enumHandle _Out_ HANDLE* enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmNetEventEnum0( FwpmNetEventEnum0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_NET_EVENT0*** entries, _Outptr_result_buffer_(*numEntriesReturned) FWPM_NET_EVENT0*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
DWORD DWORD
WINAPI WINAPI
FwpmNetEventEnum1( FwpmNetEventEnum1(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in HANDLE enumHandle, _In_ HANDLE enumHandle,
__in UINT32 numEntriesRequested, _In_ UINT32 numEntriesRequested,
__deref_out_ecount(*numEntriesReturned) FWPM_NET_EVENT1*** entries, _Outptr_result_buffer_(*numEntriesReturned) FWPM_NET_EVENT1*** entries,
__out UINT32* numEntriesReturned _Out_ UINT32* numEntriesReturned
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
FwpmNetEventEnum2(
_In_ HANDLE engineHandle,
_In_ HANDLE enumHandle,
_In_ UINT32 numEntriesRequested,
_Outptr_result_buffer_(*numEntriesReturned) FWPM_NET_EVENT2*** entries,
_Out_ UINT32* numEntriesReturned
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD DWORD
WINAPI WINAPI
FwpmNetEventDestroyEnumHandle0( FwpmNetEventDestroyEnumHandle0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE enumHandle _Inout_ HANDLE enumHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmNetEventsGetSecurityInfo0( FwpmNetEventsGetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__deref_out_opt PSID* sidOwner, _Outptr_result_maybenull_ PSID* sidOwner,
__deref_out_opt PSID* sidGroup, _Outptr_result_maybenull_ PSID* sidGroup,
__deref_out_opt PACL* dacl, _Outptr_result_maybenull_ PACL* dacl,
__deref_out_opt PACL* sacl, _Outptr_result_maybenull_ PACL* sacl,
__deref_out PSECURITY_DESCRIPTOR* securityDescriptor _Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
); );
DWORD DWORD
WINAPI WINAPI
FwpmNetEventsSetSecurityInfo0( FwpmNetEventsSetSecurityInfo0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in SECURITY_INFORMATION securityInfo, _In_ SECURITY_INFORMATION securityInfo,
__in_opt const SID* sidOwner, _In_opt_ const SID* sidOwner,
__in_opt const SID* sidGroup, _In_opt_ const SID* sidGroup,
__in_opt const ACL* dacl, _In_opt_ const ACL* dacl,
__in_opt const ACL* sacl _In_opt_ const ACL* sacl
); );
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
typedef void (CALLBACK *FWPM_NET_EVENT_CALLBACK0)( typedef void (CALLBACK *FWPM_NET_EVENT_CALLBACK0)(
__inout void* context, _Inout_ void* context,
__in const FWPM_NET_EVENT1* event _In_ const FWPM_NET_EVENT1* event
); );
DWORD DWORD
WINAPI WINAPI
FwpmNetEventSubscribe0( FwpmNetEventSubscribe0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__in const FWPM_NET_EVENT_SUBSCRIPTION0* subscription, _In_ const FWPM_NET_EVENT_SUBSCRIPTION0* subscription,
__in FWPM_NET_EVENT_CALLBACK0 callback, _In_ FWPM_NET_EVENT_CALLBACK0 callback,
__in_opt void* context, _In_opt_ void* context,
__out HANDLE* eventsHandle _Out_ HANDLE* eventsHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmNetEventUnsubscribe0( FwpmNetEventUnsubscribe0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__inout HANDLE eventsHandle _Inout_ HANDLE eventsHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmNetEventSubscriptionsGet0( FwpmNetEventSubscriptionsGet0(
__in HANDLE engineHandle, _In_ HANDLE engineHandle,
__deref_out_ecount(*numEntries) _Outptr_result_buffer_(*numEntries)
FWPM_NET_EVENT_SUBSCRIPTION0*** entries, FWPM_NET_EVENT_SUBSCRIPTION0*** entries,
__out UINT32* numEntries _Out_ UINT32* numEntries
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
typedef void (CALLBACK *FWPM_NET_EVENT_CALLBACK1)(
_Inout_ void* context,
_In_ const FWPM_NET_EVENT2* event
);
DWORD
WINAPI
FwpmNetEventSubscribe1(
_In_ HANDLE engineHandle,
_In_ const FWPM_NET_EVENT_SUBSCRIPTION0* subscription,
_In_ FWPM_NET_EVENT_CALLBACK1 callback,
_In_opt_ void* context,
_Out_ HANDLE* eventsHandle
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#if (NTDDI_VERSION >= NTDDI_WIN7) #if (NTDDI_VERSION >= NTDDI_WIN7)
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
// //
// Functions for tracking system ports. // Functions for tracking system ports.
// //
/////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////
DWORD DWORD
WINAPI WINAPI
FwpmSystemPortsGet0( FwpmSystemPortsGet0(
__in_opt HANDLE engineHandle, _In_opt_ HANDLE engineHandle,
__deref_out FWPM_SYSTEM_PORTS0** sysPorts _Outptr_ FWPM_SYSTEM_PORTS0** sysPorts
); );
typedef void (CALLBACK *FWPM_SYSTEM_PORTS_CALLBACK0)( typedef void (CALLBACK *FWPM_SYSTEM_PORTS_CALLBACK0)(
__inout void* context, _Inout_ void* context,
__in const FWPM_SYSTEM_PORTS0* sysPorts _In_ const FWPM_SYSTEM_PORTS0* sysPorts
); );
DWORD DWORD
WINAPI WINAPI
FwpmSystemPortsSubscribe0( FwpmSystemPortsSubscribe0(
__in_opt HANDLE engineHandle, _In_opt_ HANDLE engineHandle,
__reserved void* reserved, _Reserved_ void* reserved,
__in FWPM_SYSTEM_PORTS_CALLBACK0 callback, _In_ FWPM_SYSTEM_PORTS_CALLBACK0 callback,
__in_opt void* context, _In_opt_ void* context,
__out HANDLE* sysPortsHandle _Out_ HANDLE* sysPortsHandle
); );
DWORD DWORD
WINAPI WINAPI
FwpmSystemPortsUnsubscribe0( FwpmSystemPortsUnsubscribe0(
__in_opt HANDLE engineHandle, _In_opt_ HANDLE engineHandle,
__inout HANDLE sysPortsHandle _Inout_ HANDLE sysPortsHandle
); );
#endif // (NTDDI_VERSION >= NTDDI_WIN7) #endif // (NTDDI_VERSION >= NTDDI_WIN7)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
FwpmConnectionGetById0(
_In_ HANDLE engineHandle,
_In_ UINT64 id,
_Outptr_ FWPM_CONNECTION0** connection
);
DWORD
WINAPI
FwpmConnectionEnum0(
_In_ HANDLE engineHandle,
_In_ HANDLE enumHandle,
_In_ UINT32 numEntriesRequested,
_Outptr_result_buffer_(*numEntriesReturned) FWPM_CONNECTION0*** entries,
_Out_ UINT32 *numEntriesReturned
);
DWORD
WINAPI
FwpmConnectionCreateEnumHandle0(
_In_ HANDLE engineHandle,
_In_opt_ const FWPM_CONNECTION_ENUM_TEMPLATE0 *enumTemplate,
_Out_ HANDLE *enumHandle
);
DWORD
WINAPI
FwpmConnectionDestroyEnumHandle0(
_In_ HANDLE engineHandle,
_In_ HANDLE enumHandle
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
FwpmConnectionGetSecurityInfo0(
_In_ HANDLE engineHandle,
_In_ SECURITY_INFORMATION securityInfo,
_Outptr_result_maybenull_ PSID* sidOwner,
_Outptr_result_maybenull_ PSID* sidGroup,
_Outptr_result_maybenull_ PACL* dacl,
_Outptr_result_maybenull_ PACL* sacl,
_Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
);
DWORD
WINAPI
FwpmConnectionSetSecurityInfo0(
_In_ HANDLE engineHandle,
_In_ SECURITY_INFORMATION securityInfo,
_In_opt_ const SID* sidOwner,
_In_opt_ const SID* sidGroup,
_In_opt_ const ACL* dacl,
_In_opt_ const ACL* sacl
);
#if (NTDDI_VERSION >= NTDDI_WIN8)
typedef void (CALLBACK *FWPM_CONNECTION_CALLBACK0)(
_Inout_ void* context,
_In_ FWPM_CONNECTION_EVENT_TYPE eventType,
_In_ const FWPM_CONNECTION0* connection
);
DWORD
WINAPI
FwpmConnectionSubscribe0(
_In_ HANDLE engineHandle,
_In_ const FWPM_CONNECTION_SUBSCRIPTION0* subscription,
_In_ FWPM_CONNECTION_CALLBACK0 callback,
_In_opt_ void* context,
_Out_ HANDLE* eventsHandle
);
DWORD
WINAPI
FwpmConnectionUnsubscribe0(
_In_ HANDLE engineHandle,
_Inout_ HANDLE eventsHandle
);
DWORD
WINAPI
FwpmConnectionSubscriptionsGet0(
_In_ HANDLE engineHandle,
_Outptr_result_buffer_(*numEntries)
FWPM_CONNECTION_SUBSCRIPTION0*** entries,
_Out_ UINT32* numEntries
);
///////////////////////////////////////////////////////////////////////////////
//
// Functions for vSwitch events.
//
///////////////////////////////////////////////////////////////////////////////
typedef DWORD (CALLBACK *FWPM_VSWITCH_EVENT_CALLBACK0)(
_Inout_ void* context,
_In_ const FWPM_VSWITCH_EVENT0* vSwitchEvent
);
DWORD
WINAPI
FwpmvSwitchEventSubscribe0(
_In_ HANDLE engineHandle,
_In_ const FWPM_VSWITCH_EVENT_SUBSCRIPTION0* subscription,
_In_ FWPM_VSWITCH_EVENT_CALLBACK0 callback,
_In_opt_ void* context,
_Out_ HANDLE* subscriptionHandle
);
DWORD
WINAPI
FwpmvSwitchEventUnsubscribe0(
_In_ HANDLE engineHandle,
_Inout_ HANDLE subscriptionHandle
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#if (NTDDI_VERSION >= NTDDI_WIN8)
DWORD
WINAPI
FwpmvSwitchEventsGetSecurityInfo0(
_In_ HANDLE engineHandle,
_In_ SECURITY_INFORMATION securityInfo,
_Outptr_result_maybenull_ PSID* sidOwner,
_Outptr_result_maybenull_ PSID* sidGroup,
_Outptr_result_maybenull_ PACL* dacl,
_Outptr_result_maybenull_ PACL* sacl,
_Outptr_ PSECURITY_DESCRIPTOR* securityDescriptor
);
DWORD
WINAPI
FwpmvSwitchEventsSetSecurityInfo0(
_In_ HANDLE engineHandle,
_In_ SECURITY_INFORMATION securityInfo,
_In_opt_ const SID* sidOwner,
_In_opt_ const SID* sidGroup,
_In_opt_ const ACL* dacl,
_In_opt_ const ACL* sacl
);
#endif // (NTDDI_VERSION >= NTDDI_WIN8)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif // FWPMX_H #endif // FWPMX_H
#endif // GUID_DEFS_ONLY #endif // GUID_DEFS_ONLY
#endif // (NTDDI_VERSION >= NTDDI_WIN6) #endif // (NTDDI_VERSION >= NTDDI_WIN6)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
 End of changes. 196 change blocks. 
610 lines changed or deleted 1414 lines changed or added

This html diff was produced by rfcdiff 1.41.